# HG changeset patch # User Edouard Tisserant # Date 1617954426 -7200 # Node ID d5b2369a103f65599b1764ff08157924dc2e5ee6 # Parent 60a8531efa458504000369edbafb974945d63c70# Parent 2b00f90c688891e4a4827658a7bb4c592a9a70eb Merged default in SVGHMI diff -r 2b00f90c6888 -r d5b2369a103f .hgignore --- a/.hgignore Fri Apr 09 09:45:28 2021 +0200 +++ b/.hgignore Fri Apr 09 09:47:06 2021 +0200 @@ -1,5 +1,7 @@ .project +.svghmithumbs + .directory .pytest_cache .cache diff -r 2b00f90c6888 -r d5b2369a103f BeremizIDE.py --- a/BeremizIDE.py Fri Apr 09 09:45:28 2021 +0200 +++ b/BeremizIDE.py Fri Apr 09 09:47:06 2021 +0200 @@ -122,86 +122,87 @@ self.risecall = risecall # to prevent rapid fire on rising log panel self.rising_timer = 0 - self.lock = Lock() + self.StackLock = Lock() self.YieldLock = Lock() self.RefreshLock = Lock() self.TimerAccessLock = Lock() self.stack = [] self.LastRefreshTime = gettime() self.LastRefreshTimer = None + self.refreshPending = False def write(self, s, style=None): - if self.lock.acquire(): - self.stack.append((s, style)) - self.lock.release() - current_time = gettime() - self.TimerAccessLock.acquire() - if self.LastRefreshTimer: + self.StackLock.acquire() + self.stack.append((s, style)) + self.StackLock.release() + current_time = gettime() + with self.TimerAccessLock: + if self.LastRefreshTimer is not None: self.LastRefreshTimer.cancel() self.LastRefreshTimer = None - self.TimerAccessLock.release() - if current_time - self.LastRefreshTime > REFRESH_PERIOD and self.RefreshLock.acquire(False): - self._should_write() - else: - self.TimerAccessLock.acquire() - self.LastRefreshTimer = Timer(REFRESH_PERIOD, self._timer_expired) - self.LastRefreshTimer.start() - self.TimerAccessLock.release() + elapsed = current_time - self.LastRefreshTime + if elapsed > REFRESH_PERIOD: + self._should_write() + else: + with self.TimerAccessLock: + if self.LastRefreshTimer is None: + self.LastRefreshTimer = Timer(REFRESH_PERIOD - elapsed, self._timer_expired) + self.LastRefreshTimer.start() def _timer_expired(self): - if self.RefreshLock.acquire(False): - self._should_write() - else: - self.TimerAccessLock.acquire() - self.LastRefreshTimer = Timer(REFRESH_PERIOD, self._timer_expired) - self.LastRefreshTimer.start() - self.TimerAccessLock.release() + self._should_write() + with self.TimerAccessLock: + self.LastRefreshTimer = None def _should_write(self): - app = wx.GetApp() - if app is not None: - wx.CallAfter(self._write) - if MainThread == currentThread().ident: + app = wx.GetApp() if app is not None: + self._write() if self.YieldLock.acquire(0): app.Yield() self.YieldLock.release() + else: + with self.RefreshLock: + if not self.refreshPending: + self.refreshPending = True + wx.CallAfter(self._write) def _write(self): if self.output: - self.output.Freeze() - self.lock.acquire() - for s, style in self.stack: - if style is None: - style = self.black_white - if style != self.black_white: - self.output.StartStyling(self.output.GetLength(), 0xff) - - # Temporary deactivate read only mode on StyledTextCtrl for - # adding text. It seems that text modifications, even - # programmatically, are disabled in StyledTextCtrl when read - # only is active - start_pos = self.output.GetLength() - self.output.SetReadOnly(False) - self.output.AppendText(s) - self.output.SetReadOnly(True) - text_len = self.output.GetLength() - start_pos - - if style != self.black_white: - self.output.SetStyling(text_len, style) - self.stack = [] - self.lock.release() - self.output.Thaw() - self.LastRefreshTime = gettime() - try: - self.RefreshLock.release() - except Exception: - pass - newtime = time.time() - if newtime - self.rising_timer > 1: - self.risecall(self.output) - self.rising_timer = newtime + with self.RefreshLock: + self.output.Freeze() + self.output.AnnotationClearAll() + self.StackLock.acquire() + for s, style in self.stack: + if style is None: + style = self.black_white + if style != self.black_white: + self.output.StartStyling(self.output.GetLength(), 0xff) + + # Temporary deactivate read only mode on StyledTextCtrl for + # adding text. It seems that text modifications, even + # programmatically, are disabled in StyledTextCtrl when read + # only is active + start_pos = self.output.GetLength() + self.output.SetReadOnly(False) + self.output.AppendText(s) + self.output.SetReadOnly(True) + text_len = self.output.GetLength() - start_pos + + if style != self.black_white: + self.output.SetStyling(text_len, style) + self.stack = [] + self.StackLock.release() + self.output.ScrollToEnd() + self.output.Thaw() + self.LastRefreshTime = gettime() + newtime = time.time() + if newtime - self.rising_timer > 1: + self.risecall(self.output) + self.rising_timer = newtime + self.refreshPending = False + def write_warning(self, s): self.write(s, self.red_white) @@ -220,6 +221,16 @@ def isatty(self): return False + def progress(self, text): + l = self.output.GetLineCount()-2 + self.output.AnnotationSetText(l, text) + self.output.AnnotationSetVisible(wx.stc.STC_ANNOTATION_BOXED) + self.output.AnnotationSetStyle(l, self.black_white) + if self.YieldLock.acquire(0): + app = wx.GetApp() + app.Yield() + self.YieldLock.release() + ID_FILEMENURECENTPROJECTS = wx.NewId() @@ -325,6 +336,7 @@ ("Run", wx.WXK_F5), ("Transfer", wx.WXK_F6), ("Connect", wx.WXK_F7), + ("Clean", wx.WXK_F9), ("Build", wx.WXK_F11)]: def OnMethodGen(obj, meth): def OnMethod(evt): diff -r 2b00f90c6888 -r d5b2369a103f PLCGenerator.py --- a/PLCGenerator.py Fri Apr 09 09:45:28 2021 +0200 +++ b/PLCGenerator.py Fri Apr 09 09:47:06 2021 +0200 @@ -458,10 +458,12 @@ return resrce # Generate the entire program for current project - def GenerateProgram(self): + def GenerateProgram(self, log): + log("Collecting data types") # Find all data types defined for datatype in self.Project.getdataTypes(): self.DatatypeComputed[datatype.getname()] = False + log("Collecting POUs") # Find all data types defined for pou in self.Project.getpous(): self.PouComputed[pou.getname()] = False @@ -471,12 +473,15 @@ self.Program += [("TYPE\n", ())] # Generate every data types defined for datatype_name in self.DatatypeComputed.keys(): + log("Generate Data Type %s"%datatype_name) self.GenerateDataType(datatype_name) self.Program += [("END_TYPE\n\n", ())] # Generate every POUs defined for pou_name in self.PouComputed.keys(): + log("Generate POU %s"%pou_name) self.GeneratePouProgram(pou_name) # Generate every configurations defined + log("Generate Config(s)") for config in self.Project.getconfigurations(): self.Program += self.GenerateConfiguration(config) @@ -1762,5 +1767,12 @@ def GenerateCurrentProgram(controler, project, errors, warnings): generator = ProgramGenerator(controler, project, errors, warnings) - generator.GenerateProgram() + if hasattr(controler, "logger"): + def log(txt): + controler.logger.write(" "+txt+"\n") + else: + def log(txt): + pass + + generator.GenerateProgram(log) return generator.GetGeneratedProgram() diff -r 2b00f90c6888 -r d5b2369a103f ProjectController.py --- a/ProjectController.py Fri Apr 09 09:45:28 2021 +0200 +++ b/ProjectController.py Fri Apr 09 09:47:06 2021 +0200 @@ -99,11 +99,12 @@ class Iec2CSettings(object): - def __init__(self): + def __init__(self, controler): self.iec2c = None self.iec2c_buildopts = None self.ieclib_path = self.findLibPath() self.ieclib_c_path = self.findLibCPath() + self.controler = controler def findObject(self, paths, test): path = None @@ -155,11 +156,11 @@ try: # Invoke compiler. # Output files are listed to stdout, errors to stderr - _status, result, _err_result = ProcessLogger(None, buildcmd, + _status, result, _err_result = ProcessLogger(self.controler.logger, buildcmd, no_stdout=True, no_stderr=True).spin() except Exception: - self.logger.write_error(_("Couldn't launch IEC compiler to determine compatible options.\n")) + self.controler.logger.write_error(_("Couldn't launch IEC compiler to determine compatible options.\n")) return buildopt for opt in options: @@ -242,7 +243,7 @@ ConfigTreeNode.__init__(self) if ProjectController.iec2c_cfg is None: - ProjectController.iec2c_cfg = Iec2CSettings() + ProjectController.iec2c_cfg = Iec2CSettings(self) self.MandatoryParams = None self._builder = None diff -r 2b00f90c6888 -r d5b2369a103f XSLTransform.py --- a/XSLTransform.py Fri Apr 09 09:45:28 2021 +0200 +++ b/XSLTransform.py Fri Apr 09 09:47:06 2021 +0200 @@ -17,8 +17,8 @@ etree.XMLParser()), extensions={("beremiz", name): call for name, call in xsltext}) - def transform(self, root, **kwargs): - res = self.xslt(root, **{k: etree.XSLT.strparam(v) for k, v in kwargs.iteritems()}) + def transform(self, root, profile_run=False, **kwargs): + res = self.xslt(root, profile_run=profile_run, **{k: etree.XSLT.strparam(v) for k, v in kwargs.iteritems()}) # print(self.xslt.error_log) return res diff -r 2b00f90c6888 -r d5b2369a103f controls/DurationCellEditor.py --- a/controls/DurationCellEditor.py Fri Apr 09 09:45:28 2021 +0200 +++ b/controls/DurationCellEditor.py Fri Apr 09 09:47:06 2021 +0200 @@ -122,21 +122,18 @@ self.CellControl.SetValue(self.Table.GetValueByName(row, self.Colname)) self.CellControl.SetFocus() - def EndEditInternal(self, row, col, grid, old_duration): - duration = self.CellControl.GetValue() - changed = duration != old_duration + def EndEdit(self, row, col, grid, oldval): + value = self.CellControl.GetValue() + changed = value != oldval if changed: - self.Table.SetValueByName(row, self.Colname, duration) + return value + else: + return None + + def ApplyEdit(self, row, col, grid): + value = self.CellControl.GetValue() + self.Table.SetValueByName(row, self.Colname, value) self.CellControl.Disable() - return changed - - if wx.VERSION >= (3, 0, 0): - def EndEdit(self, row, col, grid, oldval): - return self.EndEditInternal(row, col, grid, oldval) - else: - def EndEdit(self, row, col, grid): - oldval = self.Table.GetValueByName(row, self.Colname) - return self.EndEditInternal(row, col, grid, oldval) def SetSize(self, rect): self.CellControl.SetDimensions(rect.x + 1, rect.y, diff -r 2b00f90c6888 -r d5b2369a103f docutil/docsvg.py --- a/docutil/docsvg.py Fri Apr 09 09:45:28 2021 +0200 +++ b/docutil/docsvg.py Fri Apr 09 09:47:06 2021 +0200 @@ -24,61 +24,38 @@ from __future__ import absolute_import -import os +import wx import subprocess -import wx - def get_inkscape_path(): - """ Return the Inkscape path """ + """ Return the Inkscape binary path """ + if wx.Platform == '__WXMSW__': from six.moves import winreg + inkcmd = None try: - svgexepath = winreg.QueryValue(winreg.HKEY_LOCAL_MACHINE, - 'Software\\Classes\\svgfile\\shell\\Inkscape\\command') + inkcmd = winreg.QueryValue(winreg.HKEY_LOCAL_MACHINE, + 'Software\\Classes\\svgfile\\shell\\Inkscape\\command') except OSError: try: - svgexepath = winreg.QueryValue(winreg.HKEY_LOCAL_MACHINE, + inkcmd = winreg.QueryValue(winreg.HKEY_LOCAL_MACHINE, 'Software\\Classes\\inkscape.svg\\shell\\open\\command') - except Exception: + except OSError: return None - svgexepath = svgexepath.replace('"%1"', '').strip() - return svgexepath.replace('"', '') + return inkcmd.replace('"%1"', '').strip().replace('"', '') + else: - # TODO: search for inkscape in $PATH - svgexepath = os.path.join("/usr/bin", "inkscape") - if os.path.exists(svgexepath): - return svgexepath - return None - - -def open_win_svg(svgexepath, svgfile): - """ Open Inkscape on Windows platform """ - popenargs = [svgexepath] - if svgfile is not None: - popenargs.append(svgfile) - subprocess.Popen(popenargs) - - -def open_lin_svg(svgexepath, svgfile): - """ Open Inkscape on Linux platform """ - if os.path.isfile("/usr/bin/inkscape"): - os.system("%s %s &" % (svgexepath, svgfile)) - + try: + return subprocess.check_output("command -v inkscape", shell=True).strip() + except subprocess.CalledProcessError: + return None def open_svg(svgfile): """ Generic function to open SVG file """ - if wx.Platform == '__WXMSW__': - try: - open_win_svg(get_inkscape_path(), svgfile) - except Exception: - wx.MessageBox("Inkscape is not found or installed !") - return None + + inkpath = get_inkscape_path() + if inkpath is None: + wx.MessageBox("Inkscape is not found or installed !") else: - svgexepath=get_inkscape_path() - if os.path.isfile(svgexepath): - open_lin_svg(svgexepath, svgfile) - else: - wx.MessageBox("Inkscape is not found or installed !") - return None + subprocess.Popen([inkpath,svgfile]) diff -r 2b00f90c6888 -r d5b2369a103f features.py --- a/features.py Fri Apr 09 09:45:28 2021 +0200 +++ b/features.py Fri Apr 09 09:47:06 2021 +0200 @@ -12,7 +12,8 @@ ('Native', 'NativeLib.NativeLibrary', True), ('Python', 'py_ext.PythonLibrary', True), ('Etherlab', 'etherlab.EthercatMaster.EtherlabLibrary', False), - ('SVGUI', 'svgui.SVGUILibrary', False)] + ('SVGUI', 'svgui.SVGUILibrary', False), + ('SVGHMI', 'svghmi.SVGHMILibrary', False)] catalog = [ ('canfestival', _('CANopen support'), _('Map located variables over CANopen'), 'canfestival.canfestival.RootClass'), @@ -22,6 +23,7 @@ ('c_ext', _('C extension'), _('Add C code accessing located variables synchronously'), 'c_ext.CFile'), ('py_ext', _('Python file'), _('Add Python code executed asynchronously'), 'py_ext.PythonFile'), ('wxglade_hmi', _('WxGlade GUI'), _('Add a simple WxGlade based GUI.'), 'wxglade_hmi.WxGladeHMI'), - ('svgui', _('SVGUI'), _('Experimental web based HMI'), 'svgui.SVGUI')] + ('svgui', _('SVGUI'), _('Experimental web based HMI'), 'svgui.SVGUI'), + ('svghmi', _('SVGHMI'), _('SVG based HMI'), 'svghmi.SVGHMI')] file_editors = [] diff -r 2b00f90c6888 -r d5b2369a103f images/AddFont.png Binary file images/AddFont.png has changed diff -r 2b00f90c6888 -r d5b2369a103f images/DelFont.png Binary file images/DelFont.png has changed diff -r 2b00f90c6888 -r d5b2369a103f images/EditPO.png Binary file images/EditPO.png has changed diff -r 2b00f90c6888 -r d5b2369a103f images/EditSVG.png Binary file images/EditSVG.png has changed diff -r 2b00f90c6888 -r d5b2369a103f images/ImportSVG.png Binary file images/ImportSVG.png has changed diff -r 2b00f90c6888 -r d5b2369a103f images/OpenPOT.png Binary file images/OpenPOT.png has changed diff -r 2b00f90c6888 -r d5b2369a103f images/SVGHMI.png Binary file images/SVGHMI.png has changed diff -r 2b00f90c6888 -r d5b2369a103f images/icons.svg --- a/images/icons.svg Fri Apr 09 09:45:28 2021 +0200 +++ b/images/icons.svg Fri Apr 09 09:47:06 2021 +0200 @@ -15,7 +15,7 @@ height="1052.3622" id="svg2" sodipodi:version="0.32" - inkscape:version="0.91 r13725" + inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)" sodipodi:docname="icons.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape"> <metadata @@ -31,8 +31,8 @@ </rdf:RDF> </metadata> <sodipodi:namedview - inkscape:window-height="874" - inkscape:window-width="1600" + inkscape:window-height="2096" + inkscape:window-width="3840" inkscape:pageshadow="2" inkscape:pageopacity="0" guidetolerance="10.0" @@ -42,13 +42,13 @@ bordercolor="#666666" pagecolor="#ffffff" id="base" - showgrid="false" - inkscape:zoom="5.6568543" - inkscape:cx="766.02087" - inkscape:cy="916.07252" - inkscape:window-x="0" - inkscape:window-y="24" - inkscape:current-layer="g10453" + showgrid="true" + inkscape:zoom="32" + inkscape:cx="1126.6889" + inkscape:cy="857.99192" + inkscape:window-x="1600" + inkscape:window-y="27" + inkscape:current-layer="svg2" showguides="true" inkscape:guide-bbox="true" inkscape:window-maximized="1" @@ -79570,26 +79570,6 @@ y2="140.96875" /> <linearGradient inkscape:collect="always" - xlink:href="#linearGradient1513" - id="linearGradient16526" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.07859244,0,0,0.07859244,-648.89236,261.66181)" - x1="131.52188" - y1="198.01724" - x2="131.52188" - y2="41.586746" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient1291" - id="linearGradient16528" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.3316761,0,0,0.3316761,48.927852,9.2318583)" - x1="75.847473" - y1="79.6325" - x2="109.0923" - y2="124.12687" /> - <linearGradient - inkscape:collect="always" xlink:href="#linearGradient40830" id="linearGradient16530" gradientUnits="userSpaceOnUse" @@ -79600,26 +79580,6 @@ y2="361.11316" /> <linearGradient inkscape:collect="always" - xlink:href="#linearGradient1291" - id="linearGradient16532" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.3316761,0,0,0.3316761,48.927852,9.2318583)" - x1="75.847473" - y1="79.6325" - x2="109.0923" - y2="124.12687" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient1513" - id="linearGradient16534" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.54799142,0,0,0.54799142,-31.948506,-0.05487363)" - x1="131.52188" - y1="198.01724" - x2="131.52188" - y2="41.586746" /> - <linearGradient - inkscape:collect="always" xlink:href="#linearGradient9136" id="linearGradient16604" gradientUnits="userSpaceOnUse" @@ -87463,6 +87423,894 @@ style="stop-color:#a6a3a3" offset="1" /> </linearGradient> + <linearGradient + gradientUnits="userSpaceOnUse" + id="linearGradient5785"> + <stop + id="stop5787" + offset="0" + style="stop-color:#c0cdf9;stop-opacity:1" /> + <stop + id="stop5789" + offset="1" + style="stop-color:#07092d;stop-opacity:0.28804347" /> + </linearGradient> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath9086"> + <path + inkscape:connector-curvature="0" + d="m 54.100001,12.5 -41.2,42.2 c -15.6,15.6 10.1,14.3 19.4,20.2 4.3,2.8 -13.8,6.4 -10.1,10.1 3.6,3.7 21.7,7.1 25.3,10.7 3.6,3.7 -7.3,7.6 -3.7,11.3 3.5,3.7 11.9,0.2 13.4,8.6 1.1,6.2 15.4,3.1 21.8,-2.2 4,-3.4 -6.9,-3.4 -3.3,-7.1 9,-9.1 17,-4.1 20.3,-12.5 1.8,-4.5 -13.6,-7.7 -9.5,-10.6 C 96.300001,76.3 132.3,72.8 115.7,56.2 L 73.000001,12.5 c -5.3,-5 -14,-5 -18.9,0 z m -9.9,64.7 c 0.9,0 30.8,4 19.3,7.1 -4.4,1.2 -24.6,-7.1 -19.3,-7.1 z M 101.4,93.8 c 0,2.1 16.3,3.3 15.4,-0.5 -1.3,-6.4 -13.6,-5.9 -15.4,0.5 z m -69.499999,11.1 c 3.7,3.2 9.3,-0.7 11.1,-5.2 -3.6,-4.7 -16.9,0.3 -11.1,5.2 z m 67.5,-6.7 c -4.6,4.2 0.799999,8.6 5.299999,5.7 1.2,-0.8 -0.1,-4.7 -5.299999,-5.7 z" + id="use9088" + style="fill:#ffffff;fill-opacity:1" /> + </clipPath> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5785" + id="linearGradient34847" + gradientUnits="userSpaceOnUse" + x1="82.118591" + y1="20" + x2="60" + y2="40" /> + <linearGradient + gradientUnits="userSpaceOnUse" + y2="60" + x2="58" + y1="35" + x1="33" + xlink:href="#linearGradient5177" + id="shinySpecular-4" + gradientTransform="matrix(5.7784872,0,0,5.7784872,-5980.4438,-1116.0341)" /> + <linearGradient + gradientTransform="matrix(5.7259005,0,0,5.7259005,-5978.2159,-1110.2479)" + gradientUnits="userSpaceOnUse" + y2="50" + x2="90" + y1="20" + x1="60" + xlink:href="#linearGradient5177" + id="IcecapTip-6" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient5177" + id="radialGradient9177" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(8.9899616,0,0,6.0175208,-11824.041,-2353.2052)" + cx="116.3104" + cy="250.8974" + fx="116.3104" + fy="250.8974" + r="30.599581" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient5177" + id="radialGradient8574" + cx="132.44431" + cy="251.994" + fx="132.44431" + fy="251.994" + r="30.599581" + gradientTransform="matrix(11.470427,0,0,7.6778487,-12152.565,-2771.5974)" + gradientUnits="userSpaceOnUse" /> + <filter + style="color-interpolation-filters:sRGB" + inkscape:collect="always" + id="filter8732" + x="-0.078079157" + width="1.156158" + y="-0.1142206" + height="1.228441"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="1.9579068" + id="feGaussianBlur8734" /> + </filter> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient5177" + id="radialGradient8744" + cx="210.25" + cy="168.5" + fx="210.25" + fy="168.5" + r="34.25" + gradientTransform="matrix(5.7259005,0,0,2.4241042,-11391.735,-1670.3333)" + gradientUnits="userSpaceOnUse" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient5177" + id="radialGradient8768" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(5.7259005,0,0,2.4241042,-11391.735,-1678.6038)" + cx="217.5" + cy="182.08189" + fx="217.5" + fy="182.08189" + r="34.25" /> + <filter + style="color-interpolation-filters:sRGB" + inkscape:collect="always" + id="filter8764" + x="-0.074262142" + width="1.148524" + y="-0.1754123" + height="1.350825"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="2.1195652" + id="feGaussianBlur8766" /> + </filter> + <linearGradient + gradientTransform="matrix(5.7259005,0,0,5.7259005,-11397.642,-2234.9563)" + inkscape:collect="always" + xlink:href="#linearGradient5177" + id="linearGradient8912" + x1="231.625" + y1="195.1875" + x2="231.75" + y2="201.5" + gradientUnits="userSpaceOnUse" /> + <linearGradient + gradientTransform="matrix(5.7259005,0,0,5.7259005,-8744.5247,-1535.4606)" + inkscape:collect="always" + xlink:href="#linearGradient5177" + id="linearGradient8910" + x1="231.3765" + y1="195.62131" + x2="231.3765" + y2="200.0714" + gradientUnits="userSpaceOnUse" /> + <filter + style="color-interpolation-filters:sRGB" + inkscape:collect="always" + id="filter8906" + x="-0.085441329" + width="1.1708831" + y="-0.27823201" + height="1.556464"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.56515877" + id="feGaussianBlur8908" /> + </filter> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient5177" + id="radialGradient8922" + cx="228.2188" + cy="204.83231" + fx="228.2188" + fy="204.83231" + r="14.09375" + gradientTransform="matrix(5.7259005,0,0,0.84597605,-11391.735,-1230.4619)" + gradientUnits="userSpaceOnUse" /> + <filter + style="color-interpolation-filters:sRGB" + inkscape:collect="always" + id="filter8980" + x="-0.069862768" + width="1.139725" + y="-0.47285891" + height="1.9457181"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.82052366" + id="feGaussianBlur8982" /> + </filter> + <linearGradient + gradientTransform="matrix(5.7259005,0,0,5.7259005,-21260.56,-6715.6693)" + inkscape:collect="always" + xlink:href="#linearGradient5177" + id="linearGradient8990" + gradientUnits="userSpaceOnUse" + x1="231.625" + y1="195.1875" + x2="231.75" + y2="201.5" /> + <linearGradient + gradientTransform="matrix(5.7259005,0,0,5.7259005,-16071.815,-3619.1669)" + inkscape:collect="always" + xlink:href="#linearGradient5177" + id="linearGradient8992-5" + gradientUnits="userSpaceOnUse" + x1="231.3765" + y1="195.62131" + x2="231.3765" + y2="200.0714" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient5177" + id="radialGradient8994" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(5.7259005,0,0,0.84597605,-21254.65,-5711.1746)" + cx="228.2188" + cy="204.83231" + fx="228.2188" + fy="204.83231" + r="14.09375" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient8998-3" + id="radialGradient9004" + cx="89.875" + cy="187.8694" + fx="89.875" + fy="187.8694" + r="22.75" + gradientTransform="matrix(5.7259005,0,0,2.3309247,-11391.735,-1563.8552)" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + id="linearGradient8998-3"> + <stop + style="stop-color:#ffffff;stop-opacity:0.33004926" + offset="0" + id="stop9000-5" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop9002" /> + </linearGradient> + <linearGradient + gradientTransform="matrix(5.7259005,0,0,5.7259005,-12270.758,-5787.1996)" + inkscape:collect="always" + xlink:href="#linearGradient5177" + id="linearGradient9023" + gradientUnits="userSpaceOnUse" + x1="231.625" + y1="195.1875" + x2="231.75" + y2="201.5" /> + <linearGradient + gradientTransform="matrix(5.7259005,0,0,5.7259005,-9392.9811,-3184.716)" + inkscape:collect="always" + xlink:href="#linearGradient5177" + id="linearGradient9025" + gradientUnits="userSpaceOnUse" + x1="231.3765" + y1="195.62131" + x2="231.3765" + y2="200.0714" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient5177" + id="radialGradient9046" + cx="90.28125" + cy="230.8363" + fx="90.28125" + fy="230.8363" + r="10.46875" + gradientTransform="matrix(6.7856216,-1.8801464,0.70345953,2.5388489,-11648.905,-1356.0934)" + gradientUnits="userSpaceOnUse" /> + <filter + style="color-interpolation-filters:sRGB" + inkscape:collect="always" + id="filter9068" + x="-0.076179281" + width="1.152359" + y="-0.1655701" + height="1.33114"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.66458488" + id="feGaussianBlur9070" /> + </filter> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient5177" + id="radialGradient11553" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(9.8608767,0,0,9.70527,-6261.0486,-1194.4496)" + cx="68.39994" + cy="21.22575" + fx="68.39994" + fy="21.22575" + r="54.783401" /> + <filter + style="color-interpolation-filters:sRGB" + inkscape:collect="always" + id="filter9298"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.32610678" + id="feGaussianBlur9300" /> + </filter> + <linearGradient + gradientTransform="matrix(5.7259005,0,0,5.7259005,-12298.981,-2355.5883)" + inkscape:collect="always" + xlink:href="#linearGradient5177" + id="linearGradient5905" + x1="95.5" + y1="208.1644" + x2="153.5" + y2="223.5" + gradientUnits="userSpaceOnUse" /> + <filter + style="color-interpolation-filters:sRGB" + inkscape:collect="always" + id="filter5983-5" + x="-0.082508981" + width="1.165018" + y="-0.1223357" + height="1.244671"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="3.6868363" + id="feGaussianBlur5985-9" /> + </filter> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5793-6" + id="linearGradient5801" + x1="57.225201" + y1="76.246338" + x2="53.63158" + y2="84.480324" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(5.0688965,0,0,5.0688965,-5948.5717,-1060.9937)" /> + <linearGradient + inkscape:collect="always" + id="linearGradient5793-6"> + <stop + style="stop-color:#eeeeec;stop-opacity:1;" + offset="0" + id="stop5795-2" /> + <stop + style="stop-color:#eeeeec;stop-opacity:0;" + offset="1" + id="stop5797-1" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient5177" + id="radialGradient5811" + cx="181.22729" + cy="214.55119" + fx="181.22729" + fy="214.55119" + r="22.4664" + gradientTransform="matrix(7.7386864,0,0,9.8346406,-12663.753,-3237.1234)" + gradientUnits="userSpaceOnUse" /> + <filter + style="color-interpolation-filters:sRGB" + inkscape:collect="always" + id="filter5845"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="1.2409356" + id="feGaussianBlur5847" /> + </filter> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5177" + id="linearGradient5822" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.8216739,0,0,2.8216739,-6012.5735,-1169.5102)" + x1="73.712097" + y1="180.47569" + x2="82.754066" + y2="187.6597" /> + <linearGradient + id="SVGID_1_" + gradientUnits="userSpaceOnUse" + x1="-181.87601" + y1="-131.1924" + x2="-180.46919" + y2="-106.7261" + gradientTransform="matrix(3.9184,-0.804,0.804,3.9184,-3496.4145,-421.19799)"> + <stop + offset="0" + style="stop-color:#F6B884" + id="stop36526" /> + <stop + offset="0.618" + style="stop-color:#C28555" + id="stop36528" /> + <stop + offset="1" + style="stop-color:#64441F" + id="stop36530" /> + </linearGradient> + <linearGradient + id="SVGID_2_" + gradientUnits="userSpaceOnUse" + x1="-219.83501" + y1="-129.60741" + x2="-164.7644" + y2="-71.945099" + gradientTransform="matrix(3.9184,-0.804,0.804,3.9184,-3496.4145,-421.19799)"> + <stop + offset="0" + style="stop-color:#F4E06F" + id="stop36535" /> + <stop + offset="0.618" + style="stop-color:#E5BD87" + id="stop36537" /> + <stop + offset="1" + style="stop-color:#C48E30" + id="stop36539" /> + </linearGradient> + <linearGradient + id="SVGID_3_" + gradientUnits="userSpaceOnUse" + x1="-195.72749" + y1="-102.4658" + x2="-143.77361" + y2="-57.727699" + gradientTransform="matrix(3.8484,-0.7896,0.786,3.8312,-3512.5761,-433.21719)"> + <stop + offset="0" + style="stop-color:#FFFFFF" + id="stop36544" /> + <stop + offset="0.1433" + style="stop-color:#F1F7FA" + id="stop36546" /> + <stop + offset="0.4148" + style="stop-color:#CCE1EE" + id="stop36548" /> + <stop + offset="0.7826" + style="stop-color:#90BEDB" + id="stop36550" /> + <stop + offset="1" + style="stop-color:#6AA7CE" + id="stop36552" /> + </linearGradient> + <radialGradient + id="SVGID_4_" + cx="-193.9976" + cy="-116.5547" + r="6.9024" + gradientTransform="matrix(3.7092,-1.4972,1.4972,3.7092,-3474.4101,-583.23399)" + gradientUnits="userSpaceOnUse"> + <stop + offset="0" + style="stop-color:#000000" + id="stop36559" /> + <stop + offset="1" + style="stop-color:#E8E9EB" + id="stop36561" /> + </radialGradient> + <radialGradient + id="SVGID_5_" + cx="-185.3008" + cy="-114.6089" + r="6.9032001" + gradientTransform="matrix(3.7092,-1.4972,1.4972,3.7092,-3474.4101,-583.23399)" + gradientUnits="userSpaceOnUse"> + <stop + offset="0" + style="stop-color:#000000" + id="stop36566" /> + <stop + offset="1" + style="stop-color:#E8E9EB" + id="stop36568" /> + </radialGradient> + <radialGradient + id="SVGID_6_" + cx="-176.4561" + cy="-112.6304" + r="6.9050002" + gradientTransform="matrix(3.7092,-1.4972,1.4972,3.7092,-3474.4101,-583.23399)" + gradientUnits="userSpaceOnUse"> + <stop + offset="0" + style="stop-color:#000000" + id="stop36573" /> + <stop + offset="1" + style="stop-color:#E8E9EB" + id="stop36575" /> + </radialGradient> + <radialGradient + id="SVGID_7_" + cx="-167.541" + cy="-110.6318" + r="6.8985" + gradientTransform="matrix(3.7092,-1.4972,1.4972,3.7092,-3474.4101,-583.23399)" + gradientUnits="userSpaceOnUse"> + <stop + offset="0" + style="stop-color:#000000" + id="stop36580" /> + <stop + offset="1" + style="stop-color:#E8E9EB" + id="stop36582" /> + </radialGradient> + <radialGradient + id="SVGID_8_" + cx="-159.0049" + cy="-108.7241" + r="6.9022002" + gradientTransform="matrix(3.7092,-1.4972,1.4972,3.7092,-3474.4101,-583.23399)" + gradientUnits="userSpaceOnUse"> + <stop + offset="0" + style="stop-color:#000000" + id="stop36587" /> + <stop + offset="1" + style="stop-color:#E8E9EB" + id="stop36589" /> + </radialGradient> + <radialGradient + gradientTransform="matrix(4,0,0,4,-4411.3157,-775.59279)" + id="SVGID_9_" + cx="29.5098" + cy="-2.7704999" + r="15.0273" + gradientUnits="userSpaceOnUse"> + <stop + offset="0" + style="stop-color:#000000" + id="stop36594" /> + <stop + offset="0.6236" + style="stop-color:#E8E9EB" + id="stop36596" /> + <stop + offset="1" + style="stop-color:#000000" + id="stop36598" /> + </radialGradient> + <radialGradient + gradientTransform="matrix(4,0,0,4,-4411.3157,-775.59279)" + id="SVGID_10_" + cx="38.373001" + cy="-4.2505002" + r="15.0315" + gradientUnits="userSpaceOnUse"> + <stop + offset="0" + style="stop-color:#000000" + id="stop36603" /> + <stop + offset="0.6236" + style="stop-color:#E8E9EB" + id="stop36605" /> + <stop + offset="1" + style="stop-color:#000000" + id="stop36607" /> + </radialGradient> + <radialGradient + gradientTransform="matrix(4,0,0,4,-4411.3157,-775.59279)" + id="SVGID_11_" + cx="47.125999" + cy="-5.6122999" + r="15.0274" + gradientUnits="userSpaceOnUse"> + <stop + offset="0" + style="stop-color:#000000" + id="stop36612" /> + <stop + offset="0.6236" + style="stop-color:#E8E9EB" + id="stop36614" /> + <stop + offset="1" + style="stop-color:#000000" + id="stop36616" /> + </radialGradient> + <radialGradient + gradientTransform="matrix(4,0,0,4,-4411.3157,-775.59279)" + id="SVGID_12_" + cx="20.2139" + cy="-1.1957999" + r="14.9423" + gradientUnits="userSpaceOnUse"> + <stop + offset="0" + style="stop-color:#000000" + id="stop36621" /> + <stop + offset="0.6236" + style="stop-color:#E8E9EB" + id="stop36623" /> + <stop + offset="1" + style="stop-color:#000000" + id="stop36625" /> + </radialGradient> + <radialGradient + gradientTransform="matrix(4,0,0,4,-4411.3157,-775.59279)" + id="SVGID_13_" + cx="11.4766" + cy="-0.1392" + r="15.7954" + gradientUnits="userSpaceOnUse"> + <stop + offset="0" + style="stop-color:#000000" + id="stop36630" /> + <stop + offset="0.6236" + style="stop-color:#E8E9EB" + id="stop36632" /> + <stop + offset="1" + style="stop-color:#000000" + id="stop36634" /> + </radialGradient> + <linearGradient + gradientTransform="matrix(-0.3176,-3.9872,3.9872,-0.3176,2734.8531,-7322.0528)" + y2="-1860.6862" + x2="-1547.8977" + y1="-1857.6021" + x1="-1549.6245" + gradientUnits="userSpaceOnUse" + id="SVGID_14_"> + <stop + id="stop36653" + style="stop-color:#CC772F" + offset="0" /> + <stop + id="stop36655" + style="stop-color:#E98E38" + offset="0.309" /> + <stop + id="stop36657" + style="stop-color:#EDCE27" + offset="1" /> + </linearGradient> + <linearGradient + gradientTransform="matrix(-0.3176,-3.9872,3.9872,-0.3176,2734.8531,-7322.0528)" + y2="-1843.4415" + x2="-1523.4501" + y1="-1846.4146" + x1="-1521.8286" + gradientUnits="userSpaceOnUse" + id="SVGID_15_"> + <stop + id="stop36828" + style="stop-color:#FFFFFF" + offset="0" /> + <stop + id="stop36830" + style="stop-color:#9FA4AB" + offset="1" /> + </linearGradient> + <linearGradient + gradientTransform="matrix(-0.3176,-3.9872,3.9872,-0.3176,2734.8531,-7322.0528)" + y2="-1845.8735" + x2="-1523.0596" + y1="-1845.8735" + x1="-1526.4932" + gradientUnits="userSpaceOnUse" + id="SVGID_16_"> + <stop + id="stop36835" + style="stop-color:#FFFFFF" + offset="0" /> + <stop + id="stop36837" + style="stop-color:#9FA4AB" + offset="1" /> + </linearGradient> + <linearGradient + gradientTransform="matrix(-0.3176,-3.9872,3.9872,-0.3176,2734.8531,-7322.0528)" + y2="-1845.1729" + x2="-1521.835" + y1="-1845.1729" + x1="-1525.1694" + gradientUnits="userSpaceOnUse" + id="SVGID_17_"> + <stop + id="stop36842" + style="stop-color:#FFFFFF" + offset="0" /> + <stop + id="stop36844" + style="stop-color:#9FA4AB" + offset="1" /> + </linearGradient> + <linearGradient + gradientTransform="matrix(-0.3176,-3.9872,3.9872,-0.3176,2734.8531,-7322.0528)" + y2="-1844.4126" + x2="-1520.4072" + y1="-1844.4126" + x1="-1523.8447" + gradientUnits="userSpaceOnUse" + id="SVGID_18_"> + <stop + id="stop36849" + style="stop-color:#FFFFFF" + offset="0" /> + <stop + id="stop36851" + style="stop-color:#9FA4AB" + offset="1" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#SVGID_1_" + id="linearGradient40579" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(3.9184,-0.804,0.804,3.9184,-3736.4145,-421.19799)" + x1="-181.87601" + y1="-131.1924" + x2="-180.46919" + y2="-106.7261" /> + <linearGradient + inkscape:collect="always" + xlink:href="#SVGID_2_" + id="linearGradient40581" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(3.9184,-0.804,0.804,3.9184,-3736.4145,-421.19799)" + x1="-219.83501" + y1="-129.60741" + x2="-164.7644" + y2="-71.945099" /> + <radialGradient + inkscape:collect="always" + xlink:href="#SVGID_4_" + id="radialGradient40583" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(3.7092,-1.4972,1.4972,3.7092,-3714.4101,-583.23399)" + cx="-193.9976" + cy="-116.5547" + r="6.9024" /> + <radialGradient + inkscape:collect="always" + xlink:href="#SVGID_5_" + id="radialGradient40585" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(3.7092,-1.4972,1.4972,3.7092,-3714.4101,-583.23399)" + cx="-185.3008" + cy="-114.6089" + r="6.9032001" /> + <radialGradient + inkscape:collect="always" + xlink:href="#SVGID_6_" + id="radialGradient40587" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(3.7092,-1.4972,1.4972,3.7092,-3714.4101,-583.23399)" + cx="-176.4561" + cy="-112.6304" + r="6.9050002" /> + <radialGradient + inkscape:collect="always" + xlink:href="#SVGID_7_" + id="radialGradient40589" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(3.7092,-1.4972,1.4972,3.7092,-3714.4101,-583.23399)" + cx="-167.541" + cy="-110.6318" + r="6.8985" /> + <radialGradient + inkscape:collect="always" + xlink:href="#SVGID_8_" + id="radialGradient40591" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(3.7092,-1.4972,1.4972,3.7092,-3714.4101,-583.23399)" + cx="-159.0049" + cy="-108.7241" + r="6.9022002" /> + <linearGradient + inkscape:collect="always" + xlink:href="#SVGID_14_" + id="linearGradient40593" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.3176,-3.9872,3.9872,-0.3176,2494.8531,-7322.0528)" + x1="-1549.6245" + y1="-1857.6021" + x2="-1547.8977" + y2="-1860.6862" /> + <linearGradient + inkscape:collect="always" + xlink:href="#SVGID_15_" + id="linearGradient40595" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.3176,-3.9872,3.9872,-0.3176,2494.8531,-7322.0528)" + x1="-1521.8286" + y1="-1846.4146" + x2="-1523.4501" + y2="-1843.4415" /> + <linearGradient + inkscape:collect="always" + xlink:href="#SVGID_16_" + id="linearGradient40597" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.3176,-3.9872,3.9872,-0.3176,2494.8531,-7322.0528)" + x1="-1526.4932" + y1="-1845.8735" + x2="-1523.0596" + y2="-1845.8735" /> + <linearGradient + inkscape:collect="always" + xlink:href="#SVGID_17_" + id="linearGradient40599" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.3176,-3.9872,3.9872,-0.3176,2494.8531,-7322.0528)" + x1="-1525.1694" + y1="-1845.1729" + x2="-1521.835" + y2="-1845.1729" /> + <linearGradient + inkscape:collect="always" + xlink:href="#SVGID_18_" + id="linearGradient40601" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.3176,-3.9872,3.9872,-0.3176,2494.8531,-7322.0528)" + x1="-1523.8447" + y1="-1844.4126" + x2="-1520.4072" + y2="-1844.4126" /> + <linearGradient + inkscape:collect="always" + xlink:href="#SVGID_1_" + id="linearGradient40971" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(3.9184,-0.804,0.804,3.9184,-3496.4145,-421.19799)" + x1="-181.87601" + y1="-131.1924" + x2="-180.46919" + y2="-106.7261" /> + <linearGradient + inkscape:collect="always" + xlink:href="#SVGID_2_" + id="linearGradient40973" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(3.9184,-0.804,0.804,3.9184,-3496.4145,-421.19799)" + x1="-219.83501" + y1="-129.60741" + x2="-164.7644" + y2="-71.945099" /> + <radialGradient + inkscape:collect="always" + xlink:href="#SVGID_4_" + id="radialGradient40975" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(3.7092,-1.4972,1.4972,3.7092,-3474.4101,-583.23399)" + cx="-193.9976" + cy="-116.5547" + r="6.9024" /> + <radialGradient + inkscape:collect="always" + xlink:href="#SVGID_5_" + id="radialGradient40977" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(3.7092,-1.4972,1.4972,3.7092,-3474.4101,-583.23399)" + cx="-185.3008" + cy="-114.6089" + r="6.9032001" /> + <radialGradient + inkscape:collect="always" + xlink:href="#SVGID_6_" + id="radialGradient40979" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(3.7092,-1.4972,1.4972,3.7092,-3474.4101,-583.23399)" + cx="-176.4561" + cy="-112.6304" + r="6.9050002" /> + <radialGradient + inkscape:collect="always" + xlink:href="#SVGID_7_" + id="radialGradient40981" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(3.7092,-1.4972,1.4972,3.7092,-3474.4101,-583.23399)" + cx="-167.541" + cy="-110.6318" + r="6.8985" /> + <radialGradient + inkscape:collect="always" + xlink:href="#SVGID_8_" + id="radialGradient40983" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(3.7092,-1.4972,1.4972,3.7092,-3474.4101,-583.23399)" + cx="-159.0049" + cy="-108.7241" + r="6.9022002" /> </defs> <g id="g19063" @@ -87589,51 +88437,51 @@ style="display:inline" transform="matrix(0.2172196,0,0,0.2172196,-847.87529,381.18375)" id="LED4_off"> - <path - sodipodi:type="arc" + <circle style="fill:url(#radialGradient17762);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.25654912;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" id="path10124" - sodipodi:cx="38.638336" + transform="matrix(1.5916608,0,0,1.5916608,-4.534839,45.738269)" + d="M 51.012705,1.7575644 A 12.374369,12.374369 0 0 1 38.638336,14.131933 12.374369,12.374369 0 0 1 26.263968,1.7575644 12.374369,12.374369 0 0 1 38.638336,-10.616804 12.374369,12.374369 0 0 1 51.012705,1.7575644 Z" + sodipodi:type="arc" + sodipodi:ry="12.374369" + sodipodi:rx="12.374369" sodipodi:cy="1.7575644" - sodipodi:rx="12.374369" - sodipodi:ry="12.374369" - d="M 51.012705,1.7575644 A 12.374369,12.374369 0 0 1 38.638336,14.131933 12.374369,12.374369 0 0 1 26.263968,1.7575644 12.374369,12.374369 0 0 1 38.638336,-10.616804 12.374369,12.374369 0 0 1 51.012705,1.7575644 Z" - transform="matrix(1.5916608,0,0,1.5916608,-4.534839,45.738269)" /> - <path - sodipodi:type="arc" + sodipodi:cx="38.638336" /> + <circle style="fill:url(#radialGradient17764);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" id="path10126" - sodipodi:cx="38.638336" + transform="translate(18.32595,46.778151)" + d="M 51.012705,1.7575644 A 12.374369,12.374369 0 0 1 38.638336,14.131933 12.374369,12.374369 0 0 1 26.263968,1.7575644 12.374369,12.374369 0 0 1 38.638336,-10.616804 12.374369,12.374369 0 0 1 51.012705,1.7575644 Z" + sodipodi:type="arc" + sodipodi:ry="12.374369" + sodipodi:rx="12.374369" sodipodi:cy="1.7575644" - sodipodi:rx="12.374369" - sodipodi:ry="12.374369" - d="M 51.012705,1.7575644 A 12.374369,12.374369 0 0 1 38.638336,14.131933 12.374369,12.374369 0 0 1 26.263968,1.7575644 12.374369,12.374369 0 0 1 38.638336,-10.616804 12.374369,12.374369 0 0 1 51.012705,1.7575644 Z" - transform="translate(18.32595,46.778151)" /> + sodipodi:cx="38.638336" /> </g> <g style="display:inline" id="LED4_on" transform="matrix(0.2172196,0,0,0.2172196,-856.56407,380.74931)"> - <path + <circle transform="translate(58.32595,48.778151)" + id="path10096" + style="fill:#46e837;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" d="M 51.012705,1.7575644 A 12.374369,12.374369 0 0 1 38.638336,14.131933 12.374369,12.374369 0 0 1 26.263968,1.7575644 12.374369,12.374369 0 0 1 38.638336,-10.616804 12.374369,12.374369 0 0 1 51.012705,1.7575644 Z" + sodipodi:type="arc" sodipodi:ry="12.374369" sodipodi:rx="12.374369" sodipodi:cy="1.7575644" - sodipodi:cx="38.638336" - id="path10096" - style="fill:#46e837;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" - sodipodi:type="arc" /> - <path + sodipodi:cx="38.638336" /> + <circle transform="matrix(0.9170232,0,0,0.9170232,61.532035,48.923988)" + id="path10098" + style="fill:url(#radialGradient17766);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible" d="M 51.012705,1.7575644 A 12.374369,12.374369 0 0 1 38.638336,14.131933 12.374369,12.374369 0 0 1 26.263968,1.7575644 12.374369,12.374369 0 0 1 38.638336,-10.616804 12.374369,12.374369 0 0 1 51.012705,1.7575644 Z" + sodipodi:type="arc" sodipodi:ry="12.374369" sodipodi:rx="12.374369" sodipodi:cy="1.7575644" - sodipodi:cx="38.638336" - id="path10098" - style="fill:url(#radialGradient17766);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible" - sodipodi:type="arc" /> + sodipodi:cx="38.638336" /> </g> </g> <text @@ -87646,12 +88494,12 @@ x="33.295933" id="tspan16193" sodipodi:role="line" - style="font-size:12.76095104px;line-height:1.25">%% Build Clean editPLC HMIEditor ImportFile ManageFolder ImportDEF ImportSVG NetworkEdit ShowMaster ExportSlave Run ShowIECcode Stop Unknown %%</tspan></text> + style="font-size:12.76095104px;line-height:1.25">%% Build Clean editPLC HMIEditor ImportFile ManageFolder ImportSVG NetworkEdit ShowMaster ExportSlave Run ShowIECcode Stop EditSVG OpenPOT EditPO AddFont DelFont %%</tspan></text> <rect - style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" id="Unknown" y="191.36218" - x="882" + x="808" height="24" width="24" /> <g @@ -87768,12 +88616,12 @@ inkscape:connector-curvature="0" /> </g> <g - transform="translate(1869.0897,-400.03854)" + transform="translate(1795.0897,-400.03854)" id="g16620"> <g id="g16343"> <rect - style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" id="Run" y="591.4007" x="-1061.0897" @@ -87787,12 +88635,12 @@ inkscape:connector-curvature="0" /> </g> <g - transform="translate(1652.1847,-369.94418)" + transform="translate(1578.1847,-369.94418)" id="g16552"> <g id="g16340"> <rect - style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" id="NetworkEdit" y="561.30634" x="-1061.1847" @@ -87809,10 +88657,10 @@ style="fill:url(#linearGradient16604);fill-opacity:1;fill-rule:evenodd;stroke:none" id="path10587" transform="translate(155,579.35335)" - d="m -512.21875,33.03125 -313.84375,124.40625 0,4.15625 116.15625,-45.9375 36,14.1875 1.34375,-3.46875 -32.28125,-12.75 47.875,-19.03125 27.3125,-10.8125 36,14.21875 1.34375,-3.46875 -32.28125,-12.75 113.78125,-45.25 -1.40625,-3.5 z" + d="M -512.21875,33.03125 -826.0625,157.4375 v 4.15625 l 116.15625,-45.9375 36,14.1875 1.34375,-3.46875 -32.28125,-12.75 47.875,-19.03125 27.3125,-10.8125 36,14.21875 1.34375,-3.46875 -32.28125,-12.75 113.78125,-45.25 z" inkscape:connector-curvature="0" /> <path - style="fill:none;stroke:url(#linearGradient16606);stroke-width:1.0106318;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + style="fill:none;stroke:url(#linearGradient16606);stroke-width:1.0106318;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path8200" d="M -660.24451,734.57791 -356.6252,614.08615" inkscape:connector-curvature="0" /> @@ -87820,7 +88668,7 @@ id="g5077" transform="matrix(0.09090112,0,0,0.09090112,-708.74866,934.66705)"> <rect - style="fill:#3d993d;fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" + style="display:inline;overflow:visible;visibility:visible;fill:#3d993d;fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" id="rect5079" transform="matrix(0.926956,0.375171,0,1,0,0)" y="-2666.4033" @@ -87828,7 +88676,7 @@ height="419.39819" width="996.81232" /> <rect - style="fill:url(#linearGradient16608);fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" + style="display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient16608);fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" id="rect5081" transform="matrix(0.929224,-0.369517,0,1,0,0)" y="-1753.9264" @@ -87836,7 +88684,7 @@ height="420.25934" width="593.28876" /> <rect - style="fill:url(#linearGradient16610);fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" + style="display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient16610);fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" id="rect5083" transform="matrix(0.926288,0.376817,-0.92919,0.369603,0,0)" y="-4162.4521" @@ -87847,32 +88695,32 @@ id="g5085" transform="matrix(1,0.428039,0,1,508,-889.8732)"> <path - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none" id="path5087" - d="m -171.2884,-1442.3646 -22.25763,0 c -39.75086,0 -68.40846,33.3509 -68.40846,73.8129 0,40.6753 28.72871,74.0973 68.40846,74.0973 l 22.25763,0 0,-35.5554 -15.43101,0 c -20.76431,0 -36.83532,-12.5154 -36.83532,-38.5419 0,-26.0265 16.07101,-38.2576 36.83532,-38.2576 l 15.43101,0 0,-35.5553 z" + d="m -171.2884,-1442.3646 h -22.25763 c -39.75086,0 -68.40846,33.3509 -68.40846,73.8129 0,40.6753 28.72871,74.0973 68.40846,74.0973 h 22.25763 v -35.5554 h -15.43101 c -20.76431,0 -36.83532,-12.5154 -36.83532,-38.5419 0,-26.0265 16.07101,-38.2576 36.83532,-38.2576 h 15.43101 z" inkscape:connector-curvature="0" /> <path - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none" id="path5089" - d="m -103.37772,-1294.4544 0,-99.0572 c 0,-11.0221 5.831076,-17.991 14.791019,-17.991 9.102165,0 15.07546,7.1111 15.07546,17.991 l 0,13.7244 -23.110964,0 0,33.422 23.110964,0 0,51.9108 36.977543,0 0,-97.3505 c 0,-31.7154 -21.048755,-53.1197 -52.053003,-53.1197 -30.933139,0 -51.768559,21.4754 -51.768559,53.1197 l 0,97.3505 36.97754,0 z" + d="m -103.37772,-1294.4544 v -99.0572 c 0,-11.0221 5.831076,-17.991 14.791019,-17.991 9.102165,0 15.07546,7.1111 15.07546,17.991 v 13.7244 h -23.110964 v 33.422 h 23.110964 v 51.9108 h 36.977543 v -97.3505 c 0,-31.7154 -21.048755,-53.1197 -52.053003,-53.1197 -30.933139,0 -51.768559,21.4754 -51.768559,53.1197 v 97.3505 z" inkscape:connector-curvature="0" /> <path - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none" id="path5091" - d="m 34.576962,-1294.4544 0,-86.755 0,0 34.346449,65.9907 c 9.67105,18.8443 16.711005,23.3243 26.239834,23.3243 9.244385,0 19.768765,-8.0355 19.768765,-21.6177 l 0,-128.8525 -36.977545,0 0,78.0795 -0.568885,0 -32.853125,-65.2085 c -5.475521,-10.8088 -12.87103,-15.431 -25.386506,-15.431 -12.4443653,0 -21.5465298,8.3911 -21.5465298,20.1243 l 0,130.3459 36.9775428,0 z" + d="m 34.576962,-1294.4544 v -86.755 0 l 34.346449,65.9907 c 9.67105,18.8443 16.711005,23.3243 26.239834,23.3243 9.244385,0 19.768765,-8.0355 19.768765,-21.6177 v -128.8525 H 77.954465 v 78.0795 H 77.38558 l -32.853125,-65.2085 c -5.475521,-10.8088 -12.87103,-15.431 -25.386506,-15.431 -12.4443653,0 -21.5465298,8.3911 -21.5465298,20.1243 v 130.3459 z" inkscape:connector-curvature="0" /> <path - style="font-size:173.54040527px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Exmouth" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:173.54040527px;line-height:125%;font-family:Exmouth;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none" id="path5093" - d="m 252.34055,-1353.787 9.40576,-1.1015 c 6.66579,-8.0217 12.00419,-12.0325 16.0152,-12.0326 2.71141,10e-5 4.0672,1.1016 4.06735,3.3047 -1.5e-4,2.5422 -2.14681,4.9713 -6.43997,7.2873 -3.33312,1.8643 -6.6096,3.1071 -9.82944,3.7285 -1.46891,3.3895 -2.93767,6.8072 -4.4063,10.2531 -2.25977,4.5193 -4.60415,6.7789 -7.03313,6.7789 -0.56504,0 -1.35591,-0.028 -2.37262,-0.085 -1.01697,-0.057 -1.75135,-0.113 -2.20315,-0.1695 l -1.01684,-0.5084 c 0.11286,-1.2993 1.75109,-4.0108 4.91472,-8.1347 2.59845,-3.333 4.8016,-5.9315 6.60945,-7.7958 l -8.98207,1.1016 c -11.01587,18.9245 -22.28582,32.9625 -33.80988,42.114 -14.3488,11.4677 -31.01363,17.2015 -49.99455,17.2015 -7.45685,0 -13.72735,-0.9885 -18.81151,-2.9657 -7.23087,-2.8246 -10.84629,-7.3721 -10.84627,-13.6426 -2e-5,-2.1467 0.67787,-3.9261 2.03367,-5.3384 1.41226,-1.4688 3.16348,-2.2031 5.25367,-2.2032 1.41225,10e-5 2.62681,0.6215 3.64367,1.8642 1.0733,1.1864 1.60997,2.5139 1.60999,3.9827 -2e-5,1.2428 -0.42371,2.4573 -1.27104,3.6436 -0.90389,1.3558 -1.94897,2.0337 -3.13526,2.0337 -1.86422,0 -3.58719,-0.5649 -5.16892,-1.6947 1.69471,8.1912 10.42256,12.2868 26.18358,12.2868 11.75008,0 22.20091,-2.8811 31.35252,-8.6432 7.23077,-4.5757 14.57459,-11.6371 22.03149,-21.1841 6.38339,-8.9255 12.76686,-17.8229 19.15046,-26.692 -10.90287,0.6215 -21.32545,2.6551 -31.26778,6.101 -6.83549,2.3162 -9.94249,3.4743 -9.32102,3.4742 l -0.59315,0 -0.6779,-1.0168 0.76263,-1.0168 c 10.39427,-5.3101 24.5735,-8.5584 42.53774,-9.7447 5.47951,-7.2873 13.95315,-16.7213 25.42096,-28.302 12.37138,-12.5409 21.69238,-20.7604 27.96305,-24.6584 l 1.10158,-0.2542 0.67789,0.7626 -0.33895,0.9321 c -1.63841,1.9209 -4.03927,4.1805 -7.2026,6.779 -3.95453,3.2765 -6.46838,5.4232 -7.54155,6.4399 -11.80677,11.1854 -21.29725,23.5569 -28.47148,37.1146 m 27.11569,-9.321 c -1.5e-4,-1.0167 -0.50857,-1.5252 -1.52526,-1.5252 -1.86435,0 -4.0675,1.1581 -6.60944,3.4742 -2.14681,1.9207 -3.81329,3.8979 -4.99946,5.9315 1.97704,-0.3954 4.49089,-1.3839 7.54155,-2.9658 3.72825,-1.8641 5.59246,-3.5023 5.59261,-4.9147 m -34.31829,-48.3845 c -13.67094,10e-5 -26.57912,2.6269 -38.72459,7.8805 -15.59159,6.7225 -23.38734,16.0435 -23.38728,27.963 -6e-5,4.5759 2.4008,8.0501 7.2026,10.4226 3.72834,1.9208 8.13463,2.8811 13.2189,2.8811 7.68269,0 16.43879,-2.3161 26.26832,-6.9484 11.46756,-5.4231 17.20139,-11.5241 17.20152,-18.3031 -1.3e-4,-3.0504 -1.24293,-5.4231 -3.72841,-7.1179 -2.14678,-1.4687 -4.77361,-2.203 -7.8805,-2.2031 -13.1625,1e-4 -26.04244,5.6209 -38.63985,16.8625 -1.80779,1.9773 -4.60409,4.7736 -8.38892,8.3889 l -0.76263,0.085 -0.59315,-0.6779 0.25421,-0.9321 c 2.88097,-5.8185 9.9141,-11.6371 21.09939,-17.4557 10.67671,-5.5926 19.51754,-8.3889 26.52253,-8.389 3.61531,10e-5 6.75056,0.8193 9.40576,2.4574 3.16337,1.9208 4.74512,4.6041 4.74524,8.05 -1.2e-4,7.9653 -5.79045,14.8854 -17.37099,20.7604 -9.94251,5.0843 -19.32001,7.6264 -28.13252,7.6263 -5.81865,10e-5 -10.78986,-1.158 -14.91363,-3.4742 -5.08425,-2.8245 -7.62635,-6.9483 -7.62629,-12.3715 -6e-5,-4.8582 1.27099,-9.095 3.81315,-12.7105 8.86902,-12.6539 23.58491,-20.7321 44.14773,-24.2347 9.20792,-1.5251 26.69187,-2.2877 52.45191,-2.2878 6.43981,10e-5 16.07152,0.057 28.89515,0.1694 12.87975,0.057 22.51146,0.085 28.89516,0.085 5.19695,10e-5 9.12307,-0.5648 11.77837,-1.6948 1.86398,-0.7342 5.08396,-2.8526 9.65997,-6.3552 l 0.84736,-0.3389 0.9321,1.1863 -0.25421,0.8473 c -9.32124,10.0556 -24.77152,15.0832 -46.35087,15.0831 -7.90893,10e-5 -19.6873,-0.8755 -35.33514,-2.6268 -15.64815,-1.7511 -27.39827,-2.6267 -35.25039,-2.6268" + d="m 252.34055,-1353.787 9.40576,-1.1015 c 6.66579,-8.0217 12.00419,-12.0325 16.0152,-12.0326 2.71141,10e-5 4.0672,1.1016 4.06735,3.3047 -1.5e-4,2.5422 -2.14681,4.9713 -6.43997,7.2873 -3.33312,1.8643 -6.6096,3.1071 -9.82944,3.7285 -1.46891,3.3895 -2.93767,6.8072 -4.4063,10.2531 -2.25977,4.5193 -4.60415,6.7789 -7.03313,6.7789 -0.56504,0 -1.35591,-0.028 -2.37262,-0.085 -1.01697,-0.057 -1.75135,-0.113 -2.20315,-0.1695 l -1.01684,-0.5084 c 0.11286,-1.2993 1.75109,-4.0108 4.91472,-8.1347 2.59845,-3.333 4.8016,-5.9315 6.60945,-7.7958 l -8.98207,1.1016 c -11.01587,18.9245 -22.28582,32.9625 -33.80988,42.114 -14.3488,11.4677 -31.01363,17.2015 -49.99455,17.2015 -7.45685,0 -13.72735,-0.9885 -18.81151,-2.9657 -7.23087,-2.8246 -10.84629,-7.3721 -10.84627,-13.6426 -2e-5,-2.1467 0.67787,-3.9261 2.03367,-5.3384 1.41226,-1.4688 3.16348,-2.2031 5.25367,-2.2032 1.41225,10e-5 2.62681,0.6215 3.64367,1.8642 1.0733,1.1864 1.60997,2.5139 1.60999,3.9827 -2e-5,1.2428 -0.42371,2.4573 -1.27104,3.6436 -0.90389,1.3558 -1.94897,2.0337 -3.13526,2.0337 -1.86422,0 -3.58719,-0.5649 -5.16892,-1.6947 1.69471,8.1912 10.42256,12.2868 26.18358,12.2868 11.75008,0 22.20091,-2.8811 31.35252,-8.6432 7.23077,-4.5757 14.57459,-11.6371 22.03149,-21.1841 6.38339,-8.9255 12.76686,-17.8229 19.15046,-26.692 -10.90287,0.6215 -21.32545,2.6551 -31.26778,6.101 -6.83549,2.3162 -9.94249,3.4743 -9.32102,3.4742 h -0.59315 l -0.6779,-1.0168 0.76263,-1.0168 c 10.39427,-5.3101 24.5735,-8.5584 42.53774,-9.7447 5.47951,-7.2873 13.95315,-16.7213 25.42096,-28.302 12.37138,-12.5409 21.69238,-20.7604 27.96305,-24.6584 l 1.10158,-0.2542 0.67789,0.7626 -0.33895,0.9321 c -1.63841,1.9209 -4.03927,4.1805 -7.2026,6.779 -3.95453,3.2765 -6.46838,5.4232 -7.54155,6.4399 -11.80677,11.1854 -21.29725,23.5569 -28.47148,37.1146 m 27.11569,-9.321 c -1.5e-4,-1.0167 -0.50857,-1.5252 -1.52526,-1.5252 -1.86435,0 -4.0675,1.1581 -6.60944,3.4742 -2.14681,1.9207 -3.81329,3.8979 -4.99946,5.9315 1.97704,-0.3954 4.49089,-1.3839 7.54155,-2.9658 3.72825,-1.8641 5.59246,-3.5023 5.59261,-4.9147 m -34.31829,-48.3845 c -13.67094,10e-5 -26.57912,2.6269 -38.72459,7.8805 -15.59159,6.7225 -23.38734,16.0435 -23.38728,27.963 -6e-5,4.5759 2.4008,8.0501 7.2026,10.4226 3.72834,1.9208 8.13463,2.8811 13.2189,2.8811 7.68269,0 16.43879,-2.3161 26.26832,-6.9484 11.46756,-5.4231 17.20139,-11.5241 17.20152,-18.3031 -1.3e-4,-3.0504 -1.24293,-5.4231 -3.72841,-7.1179 -2.14678,-1.4687 -4.77361,-2.203 -7.8805,-2.2031 -13.1625,1e-4 -26.04244,5.6209 -38.63985,16.8625 -1.80779,1.9773 -4.60409,4.7736 -8.38892,8.3889 l -0.76263,0.085 -0.59315,-0.6779 0.25421,-0.9321 c 2.88097,-5.8185 9.9141,-11.6371 21.09939,-17.4557 10.67671,-5.5926 19.51754,-8.3889 26.52253,-8.389 3.61531,10e-5 6.75056,0.8193 9.40576,2.4574 3.16337,1.9208 4.74512,4.6041 4.74524,8.05 -1.2e-4,7.9653 -5.79045,14.8854 -17.37099,20.7604 -9.94251,5.0843 -19.32001,7.6264 -28.13252,7.6263 -5.81865,10e-5 -10.78986,-1.158 -14.91363,-3.4742 -5.08425,-2.8245 -7.62635,-6.9483 -7.62629,-12.3715 -6e-5,-4.8582 1.27099,-9.095 3.81315,-12.7105 8.86902,-12.6539 23.58491,-20.7321 44.14773,-24.2347 9.20792,-1.5251 26.69187,-2.2877 52.45191,-2.2878 6.43981,10e-5 16.07152,0.057 28.89515,0.1694 12.87975,0.057 22.51146,0.085 28.89516,0.085 5.19695,10e-5 9.12307,-0.5648 11.77837,-1.6948 1.86398,-0.7342 5.08396,-2.8526 9.65997,-6.3552 l 0.84736,-0.3389 0.9321,1.1863 -0.25421,0.8473 c -9.32124,10.0556 -24.77152,15.0832 -46.35087,15.0831 -7.90893,10e-5 -19.6873,-0.8755 -35.33514,-2.6268 -15.64815,-1.7511 -27.39827,-2.6267 -35.25039,-2.6268" inkscape:connector-curvature="0" /> <path - style="font-size:173.54040527px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Exmouth" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:173.54040527px;line-height:125%;font-family:Exmouth;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none" id="path5095" - d="m 600.625,-1391.1562 c -5.95832,0.301 -14.35188,5.2745 -25.1875,14.9062 -8.02176,7.2309 -17.34845,17.0349 -27.96875,29.4062 -5.64912,6.779 -11.28844,13.5649 -16.9375,20.3438 -2.59859,2.9941 -6.21148,6.0865 -10.84375,9.25 -4.06735,2.5986 -34.41191,25.3656 -39.3125,23.5312 -0.53337,-0.1997 -1.26798,-0.5781 -1.375,-1.0937 -0.23834,-1.1483 4.197,-6.4241 12.21875,-15.4063 4.97118,-5.4231 9.935,-10.858 14.90625,-16.2812 l -9.75,0 c -4.5193,5.2537 -7.46274,8.5878 -8.875,10 0.39541,-1.2993 0.56247,-2.4518 0.5625,-3.4688 -3e-5,-4.3497 -2.82569,-6.5312 -8.53125,-6.5312 -6.89191,0 -14.34728,2.7391 -22.3125,8.2188 -4.33149,2.9726 -7.43298,5.34 -9.59375,8.4687 10e-6,10e-5 -2.70434,0.8207 -4.625,1.7813 -1.92072,0.9603 -3.63101,1.4377 -5.15625,1.4374 -1.07335,0 -2.05892,-0.3593 -2.90625,-1.0937 8.24766,-6.6659 12.37496,-12.2618 12.375,-16.7813 -3e-5,-1.4687 -0.71877,-2.1874 -2.1875,-2.1874 -2.82458,10e-5 -5.96032,2.1444 -9.40625,6.4374 -3.33299,4.0675 -5.00002,7.5627 -5,10.5 -2e-5,2e-4 0.12376,0.5577 0.40625,1.6876 -11.01576,9.6599 -19.74753,14.5 -26.1875,14.5 -2.14665,0 -3.21874,-0.5145 -3.21875,-1.5313 10e-6,-1.1299 3.17303,-4.7428 9.5,-10.8437 6.32699,-6.1575 9.49998,-10.9976 9.5,-14.5 -10e-6,-4.0673 -1.62377,-6.0938 -4.84375,-6.0938 -2.37262,0 -6.9771,2.5779 -13.8125,7.7188 -5.81503,4.3374 -15.57478,13.2562 -21.6875,17.375 -7.68278,5.1972 -13.32205,7.7006 -16.9375,7.5312 L 362,-1294.8125 c 0.113,-1.1863 4.16577,-6.3056 12.1875,-15.3437 4.91471,-5.4798 9.83528,-10.9206 14.75,-16.3438 l -9.5625,0 c -5.93156,5.0842 -28.68563,25.426 -52.46875,32.625 -0.003,-10e-5 -0.0285,0 -0.0312,0 -0.007,0 -0.024,-9e-4 -0.0312,0 -0.0231,0 -0.0692,10e-4 -0.0937,0 -0.0162,0 -0.0475,0 -0.0625,0 -0.25291,-0.045 -0.55309,-0.2262 -0.75,-0.375 -0.0709,-0.056 -0.14178,-0.1228 -0.1875,-0.1875 -0.0137,-0.021 -0.0479,-0.068 -0.0625,-0.094 -0.0102,-0.025 -0.0259,-0.068 -0.0312,-0.094 1.1e-4,0 -5e-5,-0.028 0,-0.031 -2.7e-4,0 9e-5,-0.027 0,-0.031 10e-5,0 -2.9e-4,-0.026 0,-0.031 0.11886,-1.3111 6.11893,-8.3387 17,-20.5937 6.77891,-7.5132 13.5648,-15.0179 20.34375,-22.5313 7.66156,0.1978 12.06535,-0.09 13.15625,-0.8437 0.005,-0.01 0.0259,-0.026 0.0312,-0.031 0.0286,-0.026 0.0701,-0.067 0.0937,-0.094 0.003,0 0.028,-0.028 0.0312,-0.031 0.0301,-0.041 0.0768,-0.1117 0.0937,-0.1562 -10e-6,0 1.9e-4,-0.028 0,-0.031 l -1.125,-1.1876 -10.65625,0 14.90625,-16.5312 -9.90625,0 -14.75,16.5312 c -4.01396,-0.1416 -6.52566,0.1253 -7.5,0.8126 -0.10498,0.077 -0.20936,0.1857 -0.28125,0.2812 -0.0339,0.048 -0.0712,0.1095 -0.0937,0.1562 l 1.4375,1.125 4.40625,0 c -7.23085,8.0784 -28.18662,24.3812 -35.03125,28.5626 -6.79906,4.1534 -9.98436,4.8857 -12.1875,5.2812 2.03366,-3.333 3.06249,-6.989 3.0625,-11 -10e-6,-1.0168 -0.16106,-2.5228 -0.5,-4.5 -0.28246,-1.9772 -0.43751,-3.4832 -0.4375,-4.5 -10e-6,-1.5253 0.0805,-2.7582 0.25,-3.7188 3.50243,-2.8244 6.15502,-4.9314 7.90625,-6.3437 l -1.2813,-1.4383 c -0.003,10e-5 -0.0246,0 -0.0312,0 -0.003,-2e-4 -0.0285,0 -0.0312,0 -1.22688,0.4067 -7.82546,4.867 -19.78125,13.375 -10.91202,7.7653 -23.07076,16.4159 -30.75,21.5 -8.13471,5.4231 -14.88335,8.125 -20.25,8.125 -1.42992,0 -2.46833,-0.3306 -3.09375,-0.9688 -0.46922,-0.4943 -0.71875,-1.1889 -0.71875,-2.0624 1e-5,-4.0674 2.70189,-7.5192 8.125,-10.3438 5.02771,-2.2031 10.06604,-4.3845 15.09375,-6.5312 5.42312,-2.5987 8.12499,-5.5793 8.125,-8.9688 -10e-6,-2.9375 -1.78482,-4.4062 -5.34375,-4.4062 -6.21401,0 -13.00593,2.9431 -20.40625,8.875 -7.73925,6.2139 -11.62496,12.3677 -11.625,18.4687 3e-5,5.7056 3.72469,8.5625 11.125,8.5625 5.87507,0 16.51546,-5.5586 31.9375,-16.6875 0,0 25.61056,-17.7692 27.53125,-19.125 -7.00488,22.088 -15.34604,33.1251 -25.0625,33.125 -1.65102,0 -2.79395,-0.3633 -3.375,-1.0937 -0.0392,-0.051 -0.0909,-0.1329 -0.125,-0.1876 -0.18308,-0.3026 -0.28337,-0.6549 -0.3125,-1.0624 4.18035,0.1129 6.25001,-1.6284 6.25,-5.1876 1e-5,-2.0901 -1.19587,-3.125 -3.625,-3.125 -3.72839,1e-4 -5.59372,2.2247 -5.59375,6.6876 2e-5,4.2932 2.70187,6.4377 8.125,6.4374 6.77893,0 14.3641,-3.7306 22.78125,-11.1874 1.92069,-0.113 7.43056,-1.8252 11.3125,-3.7813 3.93186,-1.9813 16.21387,-10.4086 21.75,-14.25 -3.44595,3.446 -6.8978,6.8978 -10.34375,10.3437 -3.89786,4.5193 -5.84373,8.8017 -5.84375,12.8126 2e-5,3.5588 1.74779,5.3052 5.25,5.3437 11.23201,0.125 37.90549,-20.5574 40.15625,-22.2187 -3.89787,4.8583 -5.92427,7.3988 -6.09375,7.625 -2.20313,3.22 -3.3125,6.2382 -3.3125,9.0624 1e-5,3.672 1.74156,5.5314 5.1875,5.5313 2.76807,0 8.64294,-2.3797 17.625,-7.125 8.30152,-4.3268 18.00607,-13.323 22.78125,-17.875 6.04454,-5.762 10.3329,-8.613 12.875,-8.5 l 1.1875,0.875 c 3.8e-4,0.011 -10e-6,0.051 0,0.062 -0.002,0 -0.0242,0.024 -0.0312,0.031 -0.37172,0.832 -3.50081,4.2378 -9.375,10.2188 -6.214,6.327 -9.31248,11.2476 -9.3125,14.75 10e-6,4.8583 2.69585,7.2815 8.0625,7.2812 6.21401,0 15.38566,-4.9637 27.53125,-14.9062 1.41225,1.2993 2.9615,1.9688 4.65625,1.9688 2.70944,0 5.45731,-0.8337 8.25,-2.4376 -1.10458,2.2633 -1.625,4.5637 -1.625,6.9063 2e-5,5.8751 2.98073,8.8125 8.96875,8.8125 5.76209,0 12.82682,-3.2967 21.1875,-9.9062 -0.50842,1.4123 -0.75,2.881 -0.75,4.4062 -1e-5,3.6155 1.67303,5.4375 5.0625,5.4375 10.11059,0 35.97718,-20.524 38.40625,-22.2187 -3.84137,4.7453 -5.90503,7.286 -6.1875,7.625 -2.20314,3.22 -3.31249,6.2379 -3.3125,9.0624 2e-5,3.672 1.78481,5.5314 5.34375,5.5313 3.27649,0 9.23187,-2.256 17.875,-6.7187 7.40754,-4.4699 11.50601,-7.8449 14.34375,-10.375 L 544,-1309.375 c -0.005,0 -0.0248,0 -0.0312,0 -0.50984,0.2448 -4.56438,2.9961 -12.15625,8.2188 -7.28734,5.0276 -13.19428,6.6274 -17.3125,7.2812 -0.86863,0.1379 -1.68286,-0.1505 -1.4375,-0.9375 0.4599,-1.4752 1.3101,-2.4411 1.875,-3.0625 5.36665,-6.4964 10.76435,-12.935 16.1875,-19.375 6.55294,-7.8522 12.31001,-13.9999 17.28125,-18.4062 2.20312,-1.8643 8.98905,-6.1153 20.34375,-12.7813 11.75007,-6.8918 20.32678,-12.6057 25.75,-17.125 8.41708,-7.0048 12.6249,-13.4373 12.625,-19.3125 -8e-5,-1.6381 -0.59502,-3.1009 -1.78125,-4.3438 -1.1299,-1.2991 -2.51808,-1.9374 -4.15625,-1.9374 -0.18713,0 -0.3703,-0.01 -0.5625,0 z m -0.625,2.2187 c 0.23304,-0.017 0.46109,0 0.6875,0 2.82447,10e-5 4.24994,1.3511 4.25,4.0625 -8e-5,5.9882 -7.61646,14.4098 -22.8125,25.3125 -3.78495,2.7116 -14.34482,9.4603 -31.6875,20.25 11.80658,-15.648 19.42899,-25.4146 22.875,-29.3125 11.39149,-13.0811 20.29184,-19.8525 26.6875,-20.3125 z m -120.0625,64.9063 c 0.0321,0 0.0619,0 0.0937,0 0.20046,-0.016 0.40309,0 0.59375,0 3.27646,-1e-4 4.90622,1.4316 4.90625,4.3124 -2e-5,4.8583 -4.28837,10.578 -12.875,17.1876 -8.30418,6.327 -15.00955,9.4999 -20.09375,9.5 -1.29046,0 -2.23885,-0.3011 -2.84375,-0.875 -0.0161,-0.016 -0.0469,-0.046 -0.0625,-0.063 -0.46945,-0.5029 -0.71874,-1.2314 -0.71875,-2.125 2e-5,-3.9543 4.25111,-9.5937 12.78125,-16.9374 8.06676,-6.9449 14.14303,-10.6227 18.21875,-11 z m -213.90625,0.7812 c 0.0333,0 0.0606,0 0.0937,0 0.012,-6e-4 0.0512,-7e-4 0.0625,0 0.004,10e-5 0.0273,10e-5 0.0312,0 0.012,-5e-4 0.0512,-6e-4 0.0625,0 0.004,10e-5 0.0273,10e-5 0.0312,0 0.012,-4e-4 0.0512,-5e-4 0.0625,0 0.004,10e-5 0.0272,10e-5 0.0312,0 0.012,-4e-4 0.0512,-4e-4 0.0625,0 0.004,10e-5 0.0272,10e-5 0.0312,0 0.13863,-0.01 0.27032,0 0.40625,0 1.24279,10e-5 1.87497,0.6382 1.875,1.9375 -2e-5,3.3895 -6.35202,7.1945 -19.0625,11.375 6.63026,-8.2614 12.08362,-12.7437 16.3125,-13.3125 z" + d="m 600.625,-1391.1562 c -5.95832,0.301 -14.35188,5.2745 -25.1875,14.9062 -8.02176,7.2309 -17.34845,17.0349 -27.96875,29.4062 -5.64912,6.779 -11.28844,13.5649 -16.9375,20.3438 -2.59859,2.9941 -6.21148,6.0865 -10.84375,9.25 -4.06735,2.5986 -34.41191,25.3656 -39.3125,23.5312 -0.53337,-0.1997 -1.26798,-0.5781 -1.375,-1.0937 -0.23834,-1.1483 4.197,-6.4241 12.21875,-15.4063 4.97118,-5.4231 9.935,-10.858 14.90625,-16.2812 h -9.75 c -4.5193,5.2537 -7.46274,8.5878 -8.875,10 0.39541,-1.2993 0.56247,-2.4518 0.5625,-3.4688 -3e-5,-4.3497 -2.82569,-6.5312 -8.53125,-6.5312 -6.89191,0 -14.34728,2.7391 -22.3125,8.2188 -4.33149,2.9726 -7.43298,5.34 -9.59375,8.4687 10e-6,10e-5 -2.70434,0.8207 -4.625,1.7813 -1.92072,0.9603 -3.63101,1.4377 -5.15625,1.4374 -1.07335,0 -2.05892,-0.3593 -2.90625,-1.0937 8.24766,-6.6659 12.37496,-12.2618 12.375,-16.7813 -3e-5,-1.4687 -0.71877,-2.1874 -2.1875,-2.1874 -2.82458,10e-5 -5.96032,2.1444 -9.40625,6.4374 -3.33299,4.0675 -5.00002,7.5627 -5,10.5 -2e-5,2e-4 0.12376,0.5577 0.40625,1.6876 -11.01576,9.6599 -19.74753,14.5 -26.1875,14.5 -2.14665,0 -3.21874,-0.5145 -3.21875,-1.5313 10e-6,-1.1299 3.17303,-4.7428 9.5,-10.8437 6.32699,-6.1575 9.49998,-10.9976 9.5,-14.5 -10e-6,-4.0673 -1.62377,-6.0938 -4.84375,-6.0938 -2.37262,0 -6.9771,2.5779 -13.8125,7.7188 -5.81503,4.3374 -15.57478,13.2562 -21.6875,17.375 -7.68278,5.1972 -13.32205,7.7006 -16.9375,7.5312 L 362,-1294.8125 c 0.113,-1.1863 4.16577,-6.3056 12.1875,-15.3437 4.91471,-5.4798 9.83528,-10.9206 14.75,-16.3438 h -9.5625 c -5.93156,5.0842 -28.68563,25.426 -52.46875,32.625 -0.003,-10e-5 -0.0285,0 -0.0312,0 -0.007,0 -0.024,-9e-4 -0.0312,0 -0.0231,0 -0.0692,10e-4 -0.0937,0 -0.0162,0 -0.0475,0 -0.0625,0 -0.25291,-0.045 -0.55309,-0.2262 -0.75,-0.375 -0.0709,-0.056 -0.14178,-0.1228 -0.1875,-0.1875 -0.0137,-0.021 -0.0479,-0.068 -0.0625,-0.094 -0.0102,-0.025 -0.0259,-0.068 -0.0312,-0.094 1.1e-4,0 -5e-5,-0.028 0,-0.031 -2.7e-4,0 9e-5,-0.027 0,-0.031 10e-5,0 -2.9e-4,-0.026 0,-0.031 0.11886,-1.3111 6.11893,-8.3387 17,-20.5937 6.77891,-7.5132 13.5648,-15.0179 20.34375,-22.5313 7.66156,0.1978 12.06535,-0.09 13.15625,-0.8437 0.005,-0.01 0.0259,-0.026 0.0312,-0.031 0.0286,-0.026 0.0701,-0.067 0.0937,-0.094 0.003,0 0.028,-0.028 0.0312,-0.031 0.0301,-0.041 0.0768,-0.1117 0.0937,-0.1562 -10e-6,0 1.9e-4,-0.028 0,-0.031 l -1.125,-1.1876 H 364.625 l 14.90625,-16.5312 H 369.625 l -14.75,16.5312 c -4.01396,-0.1416 -6.52566,0.1253 -7.5,0.8126 -0.10498,0.077 -0.20936,0.1857 -0.28125,0.2812 -0.0339,0.048 -0.0712,0.1095 -0.0937,0.1562 l 1.4375,1.125 h 4.40625 c -7.23085,8.0784 -28.18662,24.3812 -35.03125,28.5626 -6.79906,4.1534 -9.98436,4.8857 -12.1875,5.2812 2.03366,-3.333 3.06249,-6.989 3.0625,-11 -10e-6,-1.0168 -0.16106,-2.5228 -0.5,-4.5 -0.28246,-1.9772 -0.43751,-3.4832 -0.4375,-4.5 -10e-6,-1.5253 0.0805,-2.7582 0.25,-3.7188 3.50243,-2.8244 6.15502,-4.9314 7.90625,-6.3437 l -1.2813,-1.4383 c -0.003,10e-5 -0.0246,0 -0.0312,0 -0.003,-2e-4 -0.0285,0 -0.0312,0 -1.22688,0.4067 -7.82546,4.867 -19.78125,13.375 -10.91202,7.7653 -23.07076,16.4159 -30.75,21.5 -8.13471,5.4231 -14.88335,8.125 -20.25,8.125 -1.42992,0 -2.46833,-0.3306 -3.09375,-0.9688 -0.46922,-0.4943 -0.71875,-1.1889 -0.71875,-2.0624 1e-5,-4.0674 2.70189,-7.5192 8.125,-10.3438 5.02771,-2.2031 10.06604,-4.3845 15.09375,-6.5312 5.42312,-2.5987 8.12499,-5.5793 8.125,-8.9688 -10e-6,-2.9375 -1.78482,-4.4062 -5.34375,-4.4062 -6.21401,0 -13.00593,2.9431 -20.40625,8.875 -7.73925,6.2139 -11.62496,12.3677 -11.625,18.4687 3e-5,5.7056 3.72469,8.5625 11.125,8.5625 5.87507,0 16.51546,-5.5586 31.9375,-16.6875 0,0 25.61056,-17.7692 27.53125,-19.125 -7.00488,22.088 -15.34604,33.1251 -25.0625,33.125 -1.65102,0 -2.79395,-0.3633 -3.375,-1.0937 -0.0392,-0.051 -0.0909,-0.1329 -0.125,-0.1876 -0.18308,-0.3026 -0.28337,-0.6549 -0.3125,-1.0624 4.18035,0.1129 6.25001,-1.6284 6.25,-5.1876 1e-5,-2.0901 -1.19587,-3.125 -3.625,-3.125 -3.72839,1e-4 -5.59372,2.2247 -5.59375,6.6876 2e-5,4.2932 2.70187,6.4377 8.125,6.4374 6.77893,0 14.3641,-3.7306 22.78125,-11.1874 1.92069,-0.113 7.43056,-1.8252 11.3125,-3.7813 3.93186,-1.9813 16.21387,-10.4086 21.75,-14.25 -3.44595,3.446 -6.8978,6.8978 -10.34375,10.3437 -3.89786,4.5193 -5.84373,8.8017 -5.84375,12.8126 2e-5,3.5588 1.74779,5.3052 5.25,5.3437 11.23201,0.125 37.90549,-20.5574 40.15625,-22.2187 -3.89787,4.8583 -5.92427,7.3988 -6.09375,7.625 -2.20313,3.22 -3.3125,6.2382 -3.3125,9.0624 1e-5,3.672 1.74156,5.5314 5.1875,5.5313 2.76807,0 8.64294,-2.3797 17.625,-7.125 8.30152,-4.3268 18.00607,-13.323 22.78125,-17.875 6.04454,-5.762 10.3329,-8.613 12.875,-8.5 l 1.1875,0.875 c 3.8e-4,0.011 -10e-6,0.051 0,0.062 -0.002,0 -0.0242,0.024 -0.0312,0.031 -0.37172,0.832 -3.50081,4.2378 -9.375,10.2188 -6.214,6.327 -9.31248,11.2476 -9.3125,14.75 10e-6,4.8583 2.69585,7.2815 8.0625,7.2812 6.21401,0 15.38566,-4.9637 27.53125,-14.9062 1.41225,1.2993 2.9615,1.9688 4.65625,1.9688 2.70944,0 5.45731,-0.8337 8.25,-2.4376 -1.10458,2.2633 -1.625,4.5637 -1.625,6.9063 2e-5,5.8751 2.98073,8.8125 8.96875,8.8125 5.76209,0 12.82682,-3.2967 21.1875,-9.9062 -0.50842,1.4123 -0.75,2.881 -0.75,4.4062 -1e-5,3.6155 1.67303,5.4375 5.0625,5.4375 10.11059,0 35.97718,-20.524 38.40625,-22.2187 -3.84137,4.7453 -5.90503,7.286 -6.1875,7.625 -2.20314,3.22 -3.31249,6.2379 -3.3125,9.0624 2e-5,3.672 1.78481,5.5314 5.34375,5.5313 3.27649,0 9.23187,-2.256 17.875,-6.7187 7.40754,-4.4699 11.50601,-7.8449 14.34375,-10.375 L 544,-1309.375 c -0.005,0 -0.0248,0 -0.0312,0 -0.50984,0.2448 -4.56438,2.9961 -12.15625,8.2188 -7.28734,5.0276 -13.19428,6.6274 -17.3125,7.2812 -0.86863,0.1379 -1.68286,-0.1505 -1.4375,-0.9375 0.4599,-1.4752 1.3101,-2.4411 1.875,-3.0625 5.36665,-6.4964 10.76435,-12.935 16.1875,-19.375 6.55294,-7.8522 12.31001,-13.9999 17.28125,-18.4062 2.20312,-1.8643 8.98905,-6.1153 20.34375,-12.7813 11.75007,-6.8918 20.32678,-12.6057 25.75,-17.125 8.41708,-7.0048 12.6249,-13.4373 12.625,-19.3125 -8e-5,-1.6381 -0.59502,-3.1009 -1.78125,-4.3438 -1.1299,-1.2991 -2.51808,-1.9374 -4.15625,-1.9374 -0.18713,0 -0.3703,-0.01 -0.5625,0 z m -0.625,2.2187 c 0.23304,-0.017 0.46109,0 0.6875,0 2.82447,10e-5 4.24994,1.3511 4.25,4.0625 -8e-5,5.9882 -7.61646,14.4098 -22.8125,25.3125 -3.78495,2.7116 -14.34482,9.4603 -31.6875,20.25 11.80658,-15.648 19.42899,-25.4146 22.875,-29.3125 11.39149,-13.0811 20.29184,-19.8525 26.6875,-20.3125 z m -120.0625,64.9063 c 0.0321,0 0.0619,0 0.0937,0 0.20046,-0.016 0.40309,0 0.59375,0 3.27646,-1e-4 4.90622,1.4316 4.90625,4.3124 -2e-5,4.8583 -4.28837,10.578 -12.875,17.1876 -8.30418,6.327 -15.00955,9.4999 -20.09375,9.5 -1.29046,0 -2.23885,-0.3011 -2.84375,-0.875 -0.0161,-0.016 -0.0469,-0.046 -0.0625,-0.063 -0.46945,-0.5029 -0.71874,-1.2314 -0.71875,-2.125 2e-5,-3.9543 4.25111,-9.5937 12.78125,-16.9374 8.06676,-6.9449 14.14303,-10.6227 18.21875,-11 z m -213.90625,0.7812 c 0.0333,0 0.0606,0 0.0937,0 0.012,-6e-4 0.0512,-7e-4 0.0625,0 0.004,10e-5 0.0273,10e-5 0.0312,0 0.012,-5e-4 0.0512,-6e-4 0.0625,0 0.004,10e-5 0.0273,10e-5 0.0312,0 0.012,-4e-4 0.0512,-5e-4 0.0625,0 0.004,10e-5 0.0272,10e-5 0.0312,0 0.012,-4e-4 0.0512,-4e-4 0.0625,0 0.004,10e-5 0.0272,10e-5 0.0312,0 0.13863,-0.01 0.27032,0 0.40625,0 1.24279,10e-5 1.87497,0.6382 1.875,1.9375 -2e-5,3.3895 -6.35202,7.1945 -19.0625,11.375 6.63026,-8.2614 12.08362,-12.7437 16.3125,-13.3125 z" inkscape:connector-curvature="0" /> <path - style="font-size:173.54040527px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Exmouth" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:173.54040527px;line-height:125%;font-family:Exmouth;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none" id="path5097" d="m 406.81523,-1346.1607 c -0.7909,1.9773 -2.62686,3.898 -5.50787,5.7621 -2.09019,-1.4122 -3.75668,-3.2199 -4.99946,-5.4231 1.07331,-2.3726 2.79628,-4.2085 5.16893,-5.5079 1.75119,0.8474 3.53066,2.5704 5.3384,5.1689" inkscape:connector-curvature="0" /> @@ -87889,7 +88737,7 @@ y="892.03345" x="633.36249">Master</tspan></text> <path - style="fill:none;stroke:#ffffff;stroke-width:1.18643951;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + style="fill:none;stroke:#ffffff;stroke-width:1.18643951;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path8204" d="m -424.19823,680.94807 -50.47123,-19.81068" inkscape:connector-curvature="0" /> @@ -87897,7 +88745,7 @@ id="g8206" transform="matrix(-0.05230834,0,0,0.05230834,-370.7166,804.48617)"> <rect - style="fill:url(#linearGradient16612);fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" + style="display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient16612);fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" id="rect8208" transform="matrix(0.926956,0.375171,0,1,0,0)" y="-2666.4033" @@ -87905,7 +88753,7 @@ height="419.39819" width="996.81232" /> <rect - style="fill:#3d993d;fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" + style="display:inline;overflow:visible;visibility:visible;fill:#3d993d;fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" id="rect8210" transform="matrix(0.929224,-0.369517,0,1,0,0)" y="-1753.9264" @@ -87913,7 +88761,7 @@ height="420.25934" width="593.28876" /> <rect - style="fill:url(#linearGradient16614);fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" + style="display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient16614);fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" id="rect8212" transform="matrix(0.926288,0.376817,-0.92919,0.369603,0,0)" y="-4162.4521" @@ -87924,32 +88772,32 @@ id="g8214" transform="matrix(-1,-0.473054,0,1,853.1705,-734.3579)"> <path - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none" id="path8216" - d="m -171.2884,-1442.3646 -22.25763,0 c -39.75086,0 -68.40846,33.3509 -68.40846,73.8129 0,40.6753 28.72871,74.0973 68.40846,74.0973 l 22.25763,0 0,-35.5554 -15.43101,0 c -20.76431,0 -36.83532,-12.5154 -36.83532,-38.5419 0,-26.0265 16.07101,-38.2576 36.83532,-38.2576 l 15.43101,0 0,-35.5553 z" + d="m -171.2884,-1442.3646 h -22.25763 c -39.75086,0 -68.40846,33.3509 -68.40846,73.8129 0,40.6753 28.72871,74.0973 68.40846,74.0973 h 22.25763 v -35.5554 h -15.43101 c -20.76431,0 -36.83532,-12.5154 -36.83532,-38.5419 0,-26.0265 16.07101,-38.2576 36.83532,-38.2576 h 15.43101 z" inkscape:connector-curvature="0" /> <path - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none" id="path8218" - d="m -103.37772,-1294.4544 0,-99.0572 c 0,-11.0221 5.831076,-17.991 14.791019,-17.991 9.102165,0 15.07546,7.1111 15.07546,17.991 l 0,13.7244 -23.110964,0 0,33.422 23.110964,0 0,51.9108 36.977543,0 0,-97.3505 c 0,-31.7154 -21.048755,-53.1197 -52.053003,-53.1197 -30.933139,0 -51.768559,21.4754 -51.768559,53.1197 l 0,97.3505 36.97754,0 z" + d="m -103.37772,-1294.4544 v -99.0572 c 0,-11.0221 5.831076,-17.991 14.791019,-17.991 9.102165,0 15.07546,7.1111 15.07546,17.991 v 13.7244 h -23.110964 v 33.422 h 23.110964 v 51.9108 h 36.977543 v -97.3505 c 0,-31.7154 -21.048755,-53.1197 -52.053003,-53.1197 -30.933139,0 -51.768559,21.4754 -51.768559,53.1197 v 97.3505 z" inkscape:connector-curvature="0" /> <path - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none" id="path8220" - d="m 34.576962,-1294.4544 0,-86.755 0,0 34.346449,65.9907 c 9.67105,18.8443 16.711005,23.3243 26.239834,23.3243 9.244385,0 19.768765,-8.0355 19.768765,-21.6177 l 0,-128.8525 -36.977545,0 0,78.0795 -0.568885,0 -32.853125,-65.2085 c -5.475521,-10.8088 -12.87103,-15.431 -25.386506,-15.431 -12.4443653,0 -21.5465298,8.3911 -21.5465298,20.1243 l 0,130.3459 36.9775428,0 z" + d="m 34.576962,-1294.4544 v -86.755 0 l 34.346449,65.9907 c 9.67105,18.8443 16.711005,23.3243 26.239834,23.3243 9.244385,0 19.768765,-8.0355 19.768765,-21.6177 v -128.8525 H 77.954465 v 78.0795 H 77.38558 l -32.853125,-65.2085 c -5.475521,-10.8088 -12.87103,-15.431 -25.386506,-15.431 -12.4443653,0 -21.5465298,8.3911 -21.5465298,20.1243 v 130.3459 z" inkscape:connector-curvature="0" /> <path - style="font-size:173.54040527px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Exmouth" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:173.54040527px;line-height:125%;font-family:Exmouth;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none" id="path8222" - d="m 252.34055,-1353.787 9.40576,-1.1015 c 6.66579,-8.0217 12.00419,-12.0325 16.0152,-12.0326 2.71141,10e-5 4.0672,1.1016 4.06735,3.3047 -1.5e-4,2.5422 -2.14681,4.9713 -6.43997,7.2873 -3.33312,1.8643 -6.6096,3.1071 -9.82944,3.7285 -1.46891,3.3895 -2.93767,6.8072 -4.4063,10.2531 -2.25977,4.5193 -4.60415,6.7789 -7.03313,6.7789 -0.56504,0 -1.35591,-0.028 -2.37262,-0.085 -1.01697,-0.057 -1.75135,-0.113 -2.20315,-0.1695 l -1.01684,-0.5084 c 0.11286,-1.2993 1.75109,-4.0108 4.91472,-8.1347 2.59845,-3.333 4.8016,-5.9315 6.60945,-7.7958 l -8.98207,1.1016 c -11.01587,18.9245 -22.28582,32.9625 -33.80988,42.114 -14.3488,11.4677 -31.01363,17.2015 -49.99455,17.2015 -7.45685,0 -13.72735,-0.9885 -18.81151,-2.9657 -7.23087,-2.8246 -10.84629,-7.3721 -10.84627,-13.6426 -2e-5,-2.1467 0.67787,-3.9261 2.03367,-5.3384 1.41226,-1.4688 3.16348,-2.2031 5.25367,-2.2032 1.41225,10e-5 2.62681,0.6215 3.64367,1.8642 1.0733,1.1864 1.60997,2.5139 1.60999,3.9827 -2e-5,1.2428 -0.42371,2.4573 -1.27104,3.6436 -0.90389,1.3558 -1.94897,2.0337 -3.13526,2.0337 -1.86422,0 -3.58719,-0.5649 -5.16892,-1.6947 1.69471,8.1912 10.42256,12.2868 26.18358,12.2868 11.75008,0 22.20091,-2.8811 31.35252,-8.6432 7.23077,-4.5757 14.57459,-11.6371 22.03149,-21.1841 6.38339,-8.9255 12.76686,-17.8229 19.15046,-26.692 -10.90287,0.6215 -21.32545,2.6551 -31.26778,6.101 -6.83549,2.3162 -9.94249,3.4743 -9.32102,3.4742 l -0.59315,0 -0.6779,-1.0168 0.76263,-1.0168 c 10.39427,-5.3101 24.5735,-8.5584 42.53774,-9.7447 5.47951,-7.2873 13.95315,-16.7213 25.42096,-28.302 12.37138,-12.5409 21.69238,-20.7604 27.96305,-24.6584 l 1.10158,-0.2542 0.67789,0.7626 -0.33895,0.9321 c -1.63841,1.9209 -4.03927,4.1805 -7.2026,6.779 -3.95453,3.2765 -6.46838,5.4232 -7.54155,6.4399 -11.80677,11.1854 -21.29725,23.5569 -28.47148,37.1146 m 27.11569,-9.321 c -1.5e-4,-1.0167 -0.50857,-1.5252 -1.52526,-1.5252 -1.86435,0 -4.0675,1.1581 -6.60944,3.4742 -2.14681,1.9207 -3.81329,3.8979 -4.99946,5.9315 1.97704,-0.3954 4.49089,-1.3839 7.54155,-2.9658 3.72825,-1.8641 5.59246,-3.5023 5.59261,-4.9147 m -34.31829,-48.3845 c -13.67094,10e-5 -26.57912,2.6269 -38.72459,7.8805 -15.59159,6.7225 -23.38734,16.0435 -23.38728,27.963 -6e-5,4.5759 2.4008,8.0501 7.2026,10.4226 3.72834,1.9208 8.13463,2.8811 13.2189,2.8811 7.68269,0 16.43879,-2.3161 26.26832,-6.9484 11.46756,-5.4231 17.20139,-11.5241 17.20152,-18.3031 -1.3e-4,-3.0504 -1.24293,-5.4231 -3.72841,-7.1179 -2.14678,-1.4687 -4.77361,-2.203 -7.8805,-2.2031 -13.1625,1e-4 -26.04244,5.6209 -38.63985,16.8625 -1.80779,1.9773 -4.60409,4.7736 -8.38892,8.3889 l -0.76263,0.085 -0.59315,-0.6779 0.25421,-0.9321 c 2.88097,-5.8185 9.9141,-11.6371 21.09939,-17.4557 10.67671,-5.5926 19.51754,-8.3889 26.52253,-8.389 3.61531,10e-5 6.75056,0.8193 9.40576,2.4574 3.16337,1.9208 4.74512,4.6041 4.74524,8.05 -1.2e-4,7.9653 -5.79045,14.8854 -17.37099,20.7604 -9.94251,5.0843 -19.32001,7.6264 -28.13252,7.6263 -5.81865,10e-5 -10.78986,-1.158 -14.91363,-3.4742 -5.08425,-2.8245 -7.62635,-6.9483 -7.62629,-12.3715 -6e-5,-4.8582 1.27099,-9.095 3.81315,-12.7105 8.86902,-12.6539 23.58491,-20.7321 44.14773,-24.2347 9.20792,-1.5251 26.69187,-2.2877 52.45191,-2.2878 6.43981,10e-5 16.07152,0.057 28.89515,0.1694 12.87975,0.057 22.51146,0.085 28.89516,0.085 5.19695,10e-5 9.12307,-0.5648 11.77837,-1.6948 1.86398,-0.7342 5.08396,-2.8526 9.65997,-6.3552 l 0.84736,-0.3389 0.9321,1.1863 -0.25421,0.8473 c -9.32124,10.0556 -24.77152,15.0832 -46.35087,15.0831 -7.90893,10e-5 -19.6873,-0.8755 -35.33514,-2.6268 -15.64815,-1.7511 -27.39827,-2.6267 -35.25039,-2.6268" + d="m 252.34055,-1353.787 9.40576,-1.1015 c 6.66579,-8.0217 12.00419,-12.0325 16.0152,-12.0326 2.71141,10e-5 4.0672,1.1016 4.06735,3.3047 -1.5e-4,2.5422 -2.14681,4.9713 -6.43997,7.2873 -3.33312,1.8643 -6.6096,3.1071 -9.82944,3.7285 -1.46891,3.3895 -2.93767,6.8072 -4.4063,10.2531 -2.25977,4.5193 -4.60415,6.7789 -7.03313,6.7789 -0.56504,0 -1.35591,-0.028 -2.37262,-0.085 -1.01697,-0.057 -1.75135,-0.113 -2.20315,-0.1695 l -1.01684,-0.5084 c 0.11286,-1.2993 1.75109,-4.0108 4.91472,-8.1347 2.59845,-3.333 4.8016,-5.9315 6.60945,-7.7958 l -8.98207,1.1016 c -11.01587,18.9245 -22.28582,32.9625 -33.80988,42.114 -14.3488,11.4677 -31.01363,17.2015 -49.99455,17.2015 -7.45685,0 -13.72735,-0.9885 -18.81151,-2.9657 -7.23087,-2.8246 -10.84629,-7.3721 -10.84627,-13.6426 -2e-5,-2.1467 0.67787,-3.9261 2.03367,-5.3384 1.41226,-1.4688 3.16348,-2.2031 5.25367,-2.2032 1.41225,10e-5 2.62681,0.6215 3.64367,1.8642 1.0733,1.1864 1.60997,2.5139 1.60999,3.9827 -2e-5,1.2428 -0.42371,2.4573 -1.27104,3.6436 -0.90389,1.3558 -1.94897,2.0337 -3.13526,2.0337 -1.86422,0 -3.58719,-0.5649 -5.16892,-1.6947 1.69471,8.1912 10.42256,12.2868 26.18358,12.2868 11.75008,0 22.20091,-2.8811 31.35252,-8.6432 7.23077,-4.5757 14.57459,-11.6371 22.03149,-21.1841 6.38339,-8.9255 12.76686,-17.8229 19.15046,-26.692 -10.90287,0.6215 -21.32545,2.6551 -31.26778,6.101 -6.83549,2.3162 -9.94249,3.4743 -9.32102,3.4742 h -0.59315 l -0.6779,-1.0168 0.76263,-1.0168 c 10.39427,-5.3101 24.5735,-8.5584 42.53774,-9.7447 5.47951,-7.2873 13.95315,-16.7213 25.42096,-28.302 12.37138,-12.5409 21.69238,-20.7604 27.96305,-24.6584 l 1.10158,-0.2542 0.67789,0.7626 -0.33895,0.9321 c -1.63841,1.9209 -4.03927,4.1805 -7.2026,6.779 -3.95453,3.2765 -6.46838,5.4232 -7.54155,6.4399 -11.80677,11.1854 -21.29725,23.5569 -28.47148,37.1146 m 27.11569,-9.321 c -1.5e-4,-1.0167 -0.50857,-1.5252 -1.52526,-1.5252 -1.86435,0 -4.0675,1.1581 -6.60944,3.4742 -2.14681,1.9207 -3.81329,3.8979 -4.99946,5.9315 1.97704,-0.3954 4.49089,-1.3839 7.54155,-2.9658 3.72825,-1.8641 5.59246,-3.5023 5.59261,-4.9147 m -34.31829,-48.3845 c -13.67094,10e-5 -26.57912,2.6269 -38.72459,7.8805 -15.59159,6.7225 -23.38734,16.0435 -23.38728,27.963 -6e-5,4.5759 2.4008,8.0501 7.2026,10.4226 3.72834,1.9208 8.13463,2.8811 13.2189,2.8811 7.68269,0 16.43879,-2.3161 26.26832,-6.9484 11.46756,-5.4231 17.20139,-11.5241 17.20152,-18.3031 -1.3e-4,-3.0504 -1.24293,-5.4231 -3.72841,-7.1179 -2.14678,-1.4687 -4.77361,-2.203 -7.8805,-2.2031 -13.1625,1e-4 -26.04244,5.6209 -38.63985,16.8625 -1.80779,1.9773 -4.60409,4.7736 -8.38892,8.3889 l -0.76263,0.085 -0.59315,-0.6779 0.25421,-0.9321 c 2.88097,-5.8185 9.9141,-11.6371 21.09939,-17.4557 10.67671,-5.5926 19.51754,-8.3889 26.52253,-8.389 3.61531,10e-5 6.75056,0.8193 9.40576,2.4574 3.16337,1.9208 4.74512,4.6041 4.74524,8.05 -1.2e-4,7.9653 -5.79045,14.8854 -17.37099,20.7604 -9.94251,5.0843 -19.32001,7.6264 -28.13252,7.6263 -5.81865,10e-5 -10.78986,-1.158 -14.91363,-3.4742 -5.08425,-2.8245 -7.62635,-6.9483 -7.62629,-12.3715 -6e-5,-4.8582 1.27099,-9.095 3.81315,-12.7105 8.86902,-12.6539 23.58491,-20.7321 44.14773,-24.2347 9.20792,-1.5251 26.69187,-2.2877 52.45191,-2.2878 6.43981,10e-5 16.07152,0.057 28.89515,0.1694 12.87975,0.057 22.51146,0.085 28.89516,0.085 5.19695,10e-5 9.12307,-0.5648 11.77837,-1.6948 1.86398,-0.7342 5.08396,-2.8526 9.65997,-6.3552 l 0.84736,-0.3389 0.9321,1.1863 -0.25421,0.8473 c -9.32124,10.0556 -24.77152,15.0832 -46.35087,15.0831 -7.90893,10e-5 -19.6873,-0.8755 -35.33514,-2.6268 -15.64815,-1.7511 -27.39827,-2.6267 -35.25039,-2.6268" inkscape:connector-curvature="0" /> <path - style="font-size:173.54040527px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Exmouth" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:173.54040527px;line-height:125%;font-family:Exmouth;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none" id="path8224" - d="m 600.625,-1391.1562 c -5.95832,0.301 -14.35188,5.2745 -25.1875,14.9062 -8.02176,7.2309 -17.34845,17.0349 -27.96875,29.4062 -5.64912,6.779 -11.28844,13.5649 -16.9375,20.3438 -2.59859,2.9941 -6.21148,6.0865 -10.84375,9.25 -4.06735,2.5986 -34.41191,25.3656 -39.3125,23.5312 -0.53337,-0.1997 -1.26798,-0.5781 -1.375,-1.0937 -0.23834,-1.1483 4.197,-6.4241 12.21875,-15.4063 4.97118,-5.4231 9.935,-10.858 14.90625,-16.2812 l -9.75,0 c -4.5193,5.2537 -7.46274,8.5878 -8.875,10 0.39541,-1.2993 0.56247,-2.4518 0.5625,-3.4688 -3e-5,-4.3497 -2.82569,-6.5312 -8.53125,-6.5312 -6.89191,0 -14.34728,2.7391 -22.3125,8.2188 -4.33149,2.9726 -7.43298,5.34 -9.59375,8.4687 10e-6,10e-5 -2.70434,0.8207 -4.625,1.7813 -1.92072,0.9603 -3.63101,1.4377 -5.15625,1.4374 -1.07335,0 -2.05892,-0.3593 -2.90625,-1.0937 8.24766,-6.6659 12.37496,-12.2618 12.375,-16.7813 -3e-5,-1.4687 -0.71877,-2.1874 -2.1875,-2.1874 -2.82458,10e-5 -5.96032,2.1444 -9.40625,6.4374 -3.33299,4.0675 -5.00002,7.5627 -5,10.5 -2e-5,2e-4 0.12376,0.5577 0.40625,1.6876 -11.01576,9.6599 -19.74753,14.5 -26.1875,14.5 -2.14665,0 -3.21874,-0.5145 -3.21875,-1.5313 10e-6,-1.1299 3.17303,-4.7428 9.5,-10.8437 6.32699,-6.1575 9.49998,-10.9976 9.5,-14.5 -10e-6,-4.0673 -1.62377,-6.0938 -4.84375,-6.0938 -2.37262,0 -6.9771,2.5779 -13.8125,7.7188 -5.81503,4.3374 -15.57478,13.2562 -21.6875,17.375 -7.68278,5.1972 -13.32205,7.7006 -16.9375,7.5312 L 362,-1294.8125 c 0.113,-1.1863 4.16577,-6.3056 12.1875,-15.3437 4.91471,-5.4798 9.83528,-10.9206 14.75,-16.3438 l -9.5625,0 c -5.93156,5.0842 -28.68563,25.426 -52.46875,32.625 -0.003,-10e-5 -0.0285,0 -0.0312,0 -0.007,0 -0.024,-9e-4 -0.0312,0 -0.0231,0 -0.0692,10e-4 -0.0937,0 -0.0162,0 -0.0475,0 -0.0625,0 -0.25291,-0.045 -0.55309,-0.2262 -0.75,-0.375 -0.0709,-0.056 -0.14178,-0.1228 -0.1875,-0.1875 -0.0137,-0.021 -0.0479,-0.068 -0.0625,-0.094 -0.0102,-0.025 -0.0259,-0.068 -0.0312,-0.094 1.1e-4,0 -5e-5,-0.028 0,-0.031 -2.7e-4,0 9e-5,-0.027 0,-0.031 10e-5,0 -2.9e-4,-0.026 0,-0.031 0.11886,-1.3111 6.11893,-8.3387 17,-20.5937 6.77891,-7.5132 13.5648,-15.0179 20.34375,-22.5313 7.66156,0.1978 12.06535,-0.09 13.15625,-0.8437 0.005,-0.01 0.0259,-0.026 0.0312,-0.031 0.0286,-0.026 0.0701,-0.067 0.0937,-0.094 0.003,0 0.028,-0.028 0.0312,-0.031 0.0301,-0.041 0.0768,-0.1117 0.0937,-0.1562 -10e-6,0 1.9e-4,-0.028 0,-0.031 l -1.125,-1.1876 -10.65625,0 14.90625,-16.5312 -9.90625,0 -14.75,16.5312 c -4.01396,-0.1416 -6.52566,0.1253 -7.5,0.8126 -0.10498,0.077 -0.20936,0.1857 -0.28125,0.2812 -0.0339,0.048 -0.0712,0.1095 -0.0937,0.1562 l 1.4375,1.125 4.40625,0 c -7.23085,8.0784 -28.18662,24.3812 -35.03125,28.5626 -6.79906,4.1534 -9.98436,4.8857 -12.1875,5.2812 2.03366,-3.333 3.06249,-6.989 3.0625,-11 -10e-6,-1.0168 -0.16106,-2.5228 -0.5,-4.5 -0.28246,-1.9772 -0.43751,-3.4832 -0.4375,-4.5 -10e-6,-1.5253 0.0805,-2.7582 0.25,-3.7188 3.50243,-2.8244 6.15502,-4.9314 7.90625,-6.3437 l -1.2813,-1.4383 c -0.003,10e-5 -0.0246,0 -0.0312,0 -0.003,-2e-4 -0.0285,0 -0.0312,0 -1.22688,0.4067 -7.82546,4.867 -19.78125,13.375 -10.91202,7.7653 -23.07076,16.4159 -30.75,21.5 -8.13471,5.4231 -14.88335,8.125 -20.25,8.125 -1.42992,0 -2.46833,-0.3306 -3.09375,-0.9688 -0.46922,-0.4943 -0.71875,-1.1889 -0.71875,-2.0624 1e-5,-4.0674 2.70189,-7.5192 8.125,-10.3438 5.02771,-2.2031 10.06604,-4.3845 15.09375,-6.5312 5.42312,-2.5987 8.12499,-5.5793 8.125,-8.9688 -10e-6,-2.9375 -1.78482,-4.4062 -5.34375,-4.4062 -6.21401,0 -13.00593,2.9431 -20.40625,8.875 -7.73925,6.2139 -11.62496,12.3677 -11.625,18.4687 3e-5,5.7056 3.72469,8.5625 11.125,8.5625 5.87507,0 16.51546,-5.5586 31.9375,-16.6875 0,0 25.61056,-17.7692 27.53125,-19.125 -7.00488,22.088 -15.34604,33.1251 -25.0625,33.125 -1.65102,0 -2.79395,-0.3633 -3.375,-1.0937 -0.0392,-0.051 -0.0909,-0.1329 -0.125,-0.1876 -0.18308,-0.3026 -0.28337,-0.6549 -0.3125,-1.0624 4.18035,0.1129 6.25001,-1.6284 6.25,-5.1876 1e-5,-2.0901 -1.19587,-3.125 -3.625,-3.125 -3.72839,1e-4 -5.59372,2.2247 -5.59375,6.6876 2e-5,4.2932 2.70187,6.4377 8.125,6.4374 6.77893,0 14.3641,-3.7306 22.78125,-11.1874 1.92069,-0.113 7.43056,-1.8252 11.3125,-3.7813 3.93186,-1.9813 16.21387,-10.4086 21.75,-14.25 -3.44595,3.446 -6.8978,6.8978 -10.34375,10.3437 -3.89786,4.5193 -5.84373,8.8017 -5.84375,12.8126 2e-5,3.5588 1.74779,5.3052 5.25,5.3437 11.23201,0.125 37.90549,-20.5574 40.15625,-22.2187 -3.89787,4.8583 -5.92427,7.3988 -6.09375,7.625 -2.20313,3.22 -3.3125,6.2382 -3.3125,9.0624 1e-5,3.672 1.74156,5.5314 5.1875,5.5313 2.76807,0 8.64294,-2.3797 17.625,-7.125 8.30152,-4.3268 18.00607,-13.323 22.78125,-17.875 6.04454,-5.762 10.3329,-8.613 12.875,-8.5 l 1.1875,0.875 c 3.8e-4,0.011 -10e-6,0.051 0,0.062 -0.002,0 -0.0242,0.024 -0.0312,0.031 -0.37172,0.832 -3.50081,4.2378 -9.375,10.2188 -6.214,6.327 -9.31248,11.2476 -9.3125,14.75 10e-6,4.8583 2.69585,7.2815 8.0625,7.2812 6.21401,0 15.38566,-4.9637 27.53125,-14.9062 1.41225,1.2993 2.9615,1.9688 4.65625,1.9688 2.70944,0 5.45731,-0.8337 8.25,-2.4376 -1.10458,2.2633 -1.625,4.5637 -1.625,6.9063 2e-5,5.8751 2.98073,8.8125 8.96875,8.8125 5.76209,0 12.82682,-3.2967 21.1875,-9.9062 -0.50842,1.4123 -0.75,2.881 -0.75,4.4062 -1e-5,3.6155 1.67303,5.4375 5.0625,5.4375 10.11059,0 35.97718,-20.524 38.40625,-22.2187 -3.84137,4.7453 -5.90503,7.286 -6.1875,7.625 -2.20314,3.22 -3.31249,6.2379 -3.3125,9.0624 2e-5,3.672 1.78481,5.5314 5.34375,5.5313 3.27649,0 9.23187,-2.256 17.875,-6.7187 7.40754,-4.4699 11.50601,-7.8449 14.34375,-10.375 L 544,-1309.375 c -0.005,0 -0.0248,0 -0.0312,0 -0.50984,0.2448 -4.56438,2.9961 -12.15625,8.2188 -7.28734,5.0276 -13.19428,6.6274 -17.3125,7.2812 -0.86863,0.1379 -1.68286,-0.1505 -1.4375,-0.9375 0.4599,-1.4752 1.3101,-2.4411 1.875,-3.0625 5.36665,-6.4964 10.76435,-12.935 16.1875,-19.375 6.55294,-7.8522 12.31001,-13.9999 17.28125,-18.4062 2.20312,-1.8643 8.98905,-6.1153 20.34375,-12.7813 11.75007,-6.8918 20.32678,-12.6057 25.75,-17.125 8.41708,-7.0048 12.6249,-13.4373 12.625,-19.3125 -8e-5,-1.6381 -0.59502,-3.1009 -1.78125,-4.3438 -1.1299,-1.2991 -2.51808,-1.9374 -4.15625,-1.9374 -0.18713,0 -0.3703,-0.01 -0.5625,0 z m -0.625,2.2187 c 0.23304,-0.017 0.46109,0 0.6875,0 2.82447,10e-5 4.24994,1.3511 4.25,4.0625 -8e-5,5.9882 -7.61646,14.4098 -22.8125,25.3125 -3.78495,2.7116 -14.34482,9.4603 -31.6875,20.25 11.80658,-15.648 19.42899,-25.4146 22.875,-29.3125 11.39149,-13.0811 20.29184,-19.8525 26.6875,-20.3125 z m -120.0625,64.9063 c 0.0321,0 0.0619,0 0.0937,0 0.20046,-0.016 0.40309,0 0.59375,0 3.27646,-1e-4 4.90622,1.4316 4.90625,4.3124 -2e-5,4.8583 -4.28837,10.578 -12.875,17.1876 -8.30418,6.327 -15.00955,9.4999 -20.09375,9.5 -1.29046,0 -2.23885,-0.3011 -2.84375,-0.875 -0.0161,-0.016 -0.0469,-0.046 -0.0625,-0.063 -0.46945,-0.5029 -0.71874,-1.2314 -0.71875,-2.125 2e-5,-3.9543 4.25111,-9.5937 12.78125,-16.9374 8.06676,-6.9449 14.14303,-10.6227 18.21875,-11 z m -213.90625,0.7812 c 0.0333,0 0.0606,0 0.0937,0 0.012,-6e-4 0.0512,-7e-4 0.0625,0 0.004,10e-5 0.0273,10e-5 0.0312,0 0.012,-5e-4 0.0512,-6e-4 0.0625,0 0.004,10e-5 0.0273,10e-5 0.0312,0 0.012,-4e-4 0.0512,-5e-4 0.0625,0 0.004,10e-5 0.0272,10e-5 0.0312,0 0.012,-4e-4 0.0512,-4e-4 0.0625,0 0.004,10e-5 0.0272,10e-5 0.0312,0 0.13863,-0.01 0.27032,0 0.40625,0 1.24279,10e-5 1.87497,0.6382 1.875,1.9375 -2e-5,3.3895 -6.35202,7.1945 -19.0625,11.375 6.63026,-8.2614 12.08362,-12.7437 16.3125,-13.3125 z" + d="m 600.625,-1391.1562 c -5.95832,0.301 -14.35188,5.2745 -25.1875,14.9062 -8.02176,7.2309 -17.34845,17.0349 -27.96875,29.4062 -5.64912,6.779 -11.28844,13.5649 -16.9375,20.3438 -2.59859,2.9941 -6.21148,6.0865 -10.84375,9.25 -4.06735,2.5986 -34.41191,25.3656 -39.3125,23.5312 -0.53337,-0.1997 -1.26798,-0.5781 -1.375,-1.0937 -0.23834,-1.1483 4.197,-6.4241 12.21875,-15.4063 4.97118,-5.4231 9.935,-10.858 14.90625,-16.2812 h -9.75 c -4.5193,5.2537 -7.46274,8.5878 -8.875,10 0.39541,-1.2993 0.56247,-2.4518 0.5625,-3.4688 -3e-5,-4.3497 -2.82569,-6.5312 -8.53125,-6.5312 -6.89191,0 -14.34728,2.7391 -22.3125,8.2188 -4.33149,2.9726 -7.43298,5.34 -9.59375,8.4687 10e-6,10e-5 -2.70434,0.8207 -4.625,1.7813 -1.92072,0.9603 -3.63101,1.4377 -5.15625,1.4374 -1.07335,0 -2.05892,-0.3593 -2.90625,-1.0937 8.24766,-6.6659 12.37496,-12.2618 12.375,-16.7813 -3e-5,-1.4687 -0.71877,-2.1874 -2.1875,-2.1874 -2.82458,10e-5 -5.96032,2.1444 -9.40625,6.4374 -3.33299,4.0675 -5.00002,7.5627 -5,10.5 -2e-5,2e-4 0.12376,0.5577 0.40625,1.6876 -11.01576,9.6599 -19.74753,14.5 -26.1875,14.5 -2.14665,0 -3.21874,-0.5145 -3.21875,-1.5313 10e-6,-1.1299 3.17303,-4.7428 9.5,-10.8437 6.32699,-6.1575 9.49998,-10.9976 9.5,-14.5 -10e-6,-4.0673 -1.62377,-6.0938 -4.84375,-6.0938 -2.37262,0 -6.9771,2.5779 -13.8125,7.7188 -5.81503,4.3374 -15.57478,13.2562 -21.6875,17.375 -7.68278,5.1972 -13.32205,7.7006 -16.9375,7.5312 L 362,-1294.8125 c 0.113,-1.1863 4.16577,-6.3056 12.1875,-15.3437 4.91471,-5.4798 9.83528,-10.9206 14.75,-16.3438 h -9.5625 c -5.93156,5.0842 -28.68563,25.426 -52.46875,32.625 -0.003,-10e-5 -0.0285,0 -0.0312,0 -0.007,0 -0.024,-9e-4 -0.0312,0 -0.0231,0 -0.0692,10e-4 -0.0937,0 -0.0162,0 -0.0475,0 -0.0625,0 -0.25291,-0.045 -0.55309,-0.2262 -0.75,-0.375 -0.0709,-0.056 -0.14178,-0.1228 -0.1875,-0.1875 -0.0137,-0.021 -0.0479,-0.068 -0.0625,-0.094 -0.0102,-0.025 -0.0259,-0.068 -0.0312,-0.094 1.1e-4,0 -5e-5,-0.028 0,-0.031 -2.7e-4,0 9e-5,-0.027 0,-0.031 10e-5,0 -2.9e-4,-0.026 0,-0.031 0.11886,-1.3111 6.11893,-8.3387 17,-20.5937 6.77891,-7.5132 13.5648,-15.0179 20.34375,-22.5313 7.66156,0.1978 12.06535,-0.09 13.15625,-0.8437 0.005,-0.01 0.0259,-0.026 0.0312,-0.031 0.0286,-0.026 0.0701,-0.067 0.0937,-0.094 0.003,0 0.028,-0.028 0.0312,-0.031 0.0301,-0.041 0.0768,-0.1117 0.0937,-0.1562 -10e-6,0 1.9e-4,-0.028 0,-0.031 l -1.125,-1.1876 H 364.625 l 14.90625,-16.5312 H 369.625 l -14.75,16.5312 c -4.01396,-0.1416 -6.52566,0.1253 -7.5,0.8126 -0.10498,0.077 -0.20936,0.1857 -0.28125,0.2812 -0.0339,0.048 -0.0712,0.1095 -0.0937,0.1562 l 1.4375,1.125 h 4.40625 c -7.23085,8.0784 -28.18662,24.3812 -35.03125,28.5626 -6.79906,4.1534 -9.98436,4.8857 -12.1875,5.2812 2.03366,-3.333 3.06249,-6.989 3.0625,-11 -10e-6,-1.0168 -0.16106,-2.5228 -0.5,-4.5 -0.28246,-1.9772 -0.43751,-3.4832 -0.4375,-4.5 -10e-6,-1.5253 0.0805,-2.7582 0.25,-3.7188 3.50243,-2.8244 6.15502,-4.9314 7.90625,-6.3437 l -1.2813,-1.4383 c -0.003,10e-5 -0.0246,0 -0.0312,0 -0.003,-2e-4 -0.0285,0 -0.0312,0 -1.22688,0.4067 -7.82546,4.867 -19.78125,13.375 -10.91202,7.7653 -23.07076,16.4159 -30.75,21.5 -8.13471,5.4231 -14.88335,8.125 -20.25,8.125 -1.42992,0 -2.46833,-0.3306 -3.09375,-0.9688 -0.46922,-0.4943 -0.71875,-1.1889 -0.71875,-2.0624 1e-5,-4.0674 2.70189,-7.5192 8.125,-10.3438 5.02771,-2.2031 10.06604,-4.3845 15.09375,-6.5312 5.42312,-2.5987 8.12499,-5.5793 8.125,-8.9688 -10e-6,-2.9375 -1.78482,-4.4062 -5.34375,-4.4062 -6.21401,0 -13.00593,2.9431 -20.40625,8.875 -7.73925,6.2139 -11.62496,12.3677 -11.625,18.4687 3e-5,5.7056 3.72469,8.5625 11.125,8.5625 5.87507,0 16.51546,-5.5586 31.9375,-16.6875 0,0 25.61056,-17.7692 27.53125,-19.125 -7.00488,22.088 -15.34604,33.1251 -25.0625,33.125 -1.65102,0 -2.79395,-0.3633 -3.375,-1.0937 -0.0392,-0.051 -0.0909,-0.1329 -0.125,-0.1876 -0.18308,-0.3026 -0.28337,-0.6549 -0.3125,-1.0624 4.18035,0.1129 6.25001,-1.6284 6.25,-5.1876 1e-5,-2.0901 -1.19587,-3.125 -3.625,-3.125 -3.72839,1e-4 -5.59372,2.2247 -5.59375,6.6876 2e-5,4.2932 2.70187,6.4377 8.125,6.4374 6.77893,0 14.3641,-3.7306 22.78125,-11.1874 1.92069,-0.113 7.43056,-1.8252 11.3125,-3.7813 3.93186,-1.9813 16.21387,-10.4086 21.75,-14.25 -3.44595,3.446 -6.8978,6.8978 -10.34375,10.3437 -3.89786,4.5193 -5.84373,8.8017 -5.84375,12.8126 2e-5,3.5588 1.74779,5.3052 5.25,5.3437 11.23201,0.125 37.90549,-20.5574 40.15625,-22.2187 -3.89787,4.8583 -5.92427,7.3988 -6.09375,7.625 -2.20313,3.22 -3.3125,6.2382 -3.3125,9.0624 1e-5,3.672 1.74156,5.5314 5.1875,5.5313 2.76807,0 8.64294,-2.3797 17.625,-7.125 8.30152,-4.3268 18.00607,-13.323 22.78125,-17.875 6.04454,-5.762 10.3329,-8.613 12.875,-8.5 l 1.1875,0.875 c 3.8e-4,0.011 -10e-6,0.051 0,0.062 -0.002,0 -0.0242,0.024 -0.0312,0.031 -0.37172,0.832 -3.50081,4.2378 -9.375,10.2188 -6.214,6.327 -9.31248,11.2476 -9.3125,14.75 10e-6,4.8583 2.69585,7.2815 8.0625,7.2812 6.21401,0 15.38566,-4.9637 27.53125,-14.9062 1.41225,1.2993 2.9615,1.9688 4.65625,1.9688 2.70944,0 5.45731,-0.8337 8.25,-2.4376 -1.10458,2.2633 -1.625,4.5637 -1.625,6.9063 2e-5,5.8751 2.98073,8.8125 8.96875,8.8125 5.76209,0 12.82682,-3.2967 21.1875,-9.9062 -0.50842,1.4123 -0.75,2.881 -0.75,4.4062 -1e-5,3.6155 1.67303,5.4375 5.0625,5.4375 10.11059,0 35.97718,-20.524 38.40625,-22.2187 -3.84137,4.7453 -5.90503,7.286 -6.1875,7.625 -2.20314,3.22 -3.31249,6.2379 -3.3125,9.0624 2e-5,3.672 1.78481,5.5314 5.34375,5.5313 3.27649,0 9.23187,-2.256 17.875,-6.7187 7.40754,-4.4699 11.50601,-7.8449 14.34375,-10.375 L 544,-1309.375 c -0.005,0 -0.0248,0 -0.0312,0 -0.50984,0.2448 -4.56438,2.9961 -12.15625,8.2188 -7.28734,5.0276 -13.19428,6.6274 -17.3125,7.2812 -0.86863,0.1379 -1.68286,-0.1505 -1.4375,-0.9375 0.4599,-1.4752 1.3101,-2.4411 1.875,-3.0625 5.36665,-6.4964 10.76435,-12.935 16.1875,-19.375 6.55294,-7.8522 12.31001,-13.9999 17.28125,-18.4062 2.20312,-1.8643 8.98905,-6.1153 20.34375,-12.7813 11.75007,-6.8918 20.32678,-12.6057 25.75,-17.125 8.41708,-7.0048 12.6249,-13.4373 12.625,-19.3125 -8e-5,-1.6381 -0.59502,-3.1009 -1.78125,-4.3438 -1.1299,-1.2991 -2.51808,-1.9374 -4.15625,-1.9374 -0.18713,0 -0.3703,-0.01 -0.5625,0 z m -0.625,2.2187 c 0.23304,-0.017 0.46109,0 0.6875,0 2.82447,10e-5 4.24994,1.3511 4.25,4.0625 -8e-5,5.9882 -7.61646,14.4098 -22.8125,25.3125 -3.78495,2.7116 -14.34482,9.4603 -31.6875,20.25 11.80658,-15.648 19.42899,-25.4146 22.875,-29.3125 11.39149,-13.0811 20.29184,-19.8525 26.6875,-20.3125 z m -120.0625,64.9063 c 0.0321,0 0.0619,0 0.0937,0 0.20046,-0.016 0.40309,0 0.59375,0 3.27646,-1e-4 4.90622,1.4316 4.90625,4.3124 -2e-5,4.8583 -4.28837,10.578 -12.875,17.1876 -8.30418,6.327 -15.00955,9.4999 -20.09375,9.5 -1.29046,0 -2.23885,-0.3011 -2.84375,-0.875 -0.0161,-0.016 -0.0469,-0.046 -0.0625,-0.063 -0.46945,-0.5029 -0.71874,-1.2314 -0.71875,-2.125 2e-5,-3.9543 4.25111,-9.5937 12.78125,-16.9374 8.06676,-6.9449 14.14303,-10.6227 18.21875,-11 z m -213.90625,0.7812 c 0.0333,0 0.0606,0 0.0937,0 0.012,-6e-4 0.0512,-7e-4 0.0625,0 0.004,10e-5 0.0273,10e-5 0.0312,0 0.012,-5e-4 0.0512,-6e-4 0.0625,0 0.004,10e-5 0.0273,10e-5 0.0312,0 0.012,-4e-4 0.0512,-5e-4 0.0625,0 0.004,10e-5 0.0272,10e-5 0.0312,0 0.012,-4e-4 0.0512,-4e-4 0.0625,0 0.004,10e-5 0.0272,10e-5 0.0312,0 0.13863,-0.01 0.27032,0 0.40625,0 1.24279,10e-5 1.87497,0.6382 1.875,1.9375 -2e-5,3.3895 -6.35202,7.1945 -19.0625,11.375 6.63026,-8.2614 12.08362,-12.7437 16.3125,-13.3125 z" inkscape:connector-curvature="0" /> <path - style="font-size:173.54040527px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Exmouth" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:173.54040527px;line-height:125%;font-family:Exmouth;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none" id="path8226" d="m 406.81523,-1346.1607 c -0.7909,1.9773 -2.62686,3.898 -5.50787,5.7621 -2.09019,-1.4122 -3.75668,-3.2199 -4.99946,-5.4231 1.07331,-2.3726 2.79628,-4.2085 5.16893,-5.5079 1.75119,0.8474 3.53066,2.5704 5.3384,5.1689" inkscape:connector-curvature="0" /> @@ -87966,7 +88814,7 @@ y="462.98654" x="-1088.8175">Slave</tspan></text> <path - style="fill:none;stroke:#ffffff;stroke-width:1.18643951;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + style="fill:none;stroke:#ffffff;stroke-width:1.18643951;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path8299" d="m -504.19823,712.94807 -50.47123,-19.81068" inkscape:connector-curvature="0" /> @@ -87974,7 +88822,7 @@ id="g8301" transform="matrix(-0.05230834,0,0,0.05230834,-450.7166,836.48617)"> <rect - style="fill:url(#linearGradient16616);fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" + style="display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient16616);fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" id="rect8303" transform="matrix(0.926956,0.375171,0,1,0,0)" y="-2666.4033" @@ -87982,7 +88830,7 @@ height="419.39819" width="996.81232" /> <rect - style="fill:#3d993d;fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" + style="display:inline;overflow:visible;visibility:visible;fill:#3d993d;fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" id="rect8305" transform="matrix(0.929224,-0.369517,0,1,0,0)" y="-1753.9264" @@ -87990,7 +88838,7 @@ height="420.25934" width="593.28876" /> <rect - style="fill:url(#linearGradient16618);fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" + style="display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient16618);fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" id="rect8307" transform="matrix(0.926288,0.376817,-0.92919,0.369603,0,0)" y="-4162.4521" @@ -88001,32 +88849,32 @@ id="g8309" transform="matrix(-1,-0.473054,0,1,853.1705,-734.3579)"> <path - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none" id="path8311" - d="m -171.2884,-1442.3646 -22.25763,0 c -39.75086,0 -68.40846,33.3509 -68.40846,73.8129 0,40.6753 28.72871,74.0973 68.40846,74.0973 l 22.25763,0 0,-35.5554 -15.43101,0 c -20.76431,0 -36.83532,-12.5154 -36.83532,-38.5419 0,-26.0265 16.07101,-38.2576 36.83532,-38.2576 l 15.43101,0 0,-35.5553 z" + d="m -171.2884,-1442.3646 h -22.25763 c -39.75086,0 -68.40846,33.3509 -68.40846,73.8129 0,40.6753 28.72871,74.0973 68.40846,74.0973 h 22.25763 v -35.5554 h -15.43101 c -20.76431,0 -36.83532,-12.5154 -36.83532,-38.5419 0,-26.0265 16.07101,-38.2576 36.83532,-38.2576 h 15.43101 z" inkscape:connector-curvature="0" /> <path - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none" id="path8313" - d="m -103.37772,-1294.4544 0,-99.0572 c 0,-11.0221 5.831076,-17.991 14.791019,-17.991 9.102165,0 15.07546,7.1111 15.07546,17.991 l 0,13.7244 -23.110964,0 0,33.422 23.110964,0 0,51.9108 36.977543,0 0,-97.3505 c 0,-31.7154 -21.048755,-53.1197 -52.053003,-53.1197 -30.933139,0 -51.768559,21.4754 -51.768559,53.1197 l 0,97.3505 36.97754,0 z" + d="m -103.37772,-1294.4544 v -99.0572 c 0,-11.0221 5.831076,-17.991 14.791019,-17.991 9.102165,0 15.07546,7.1111 15.07546,17.991 v 13.7244 h -23.110964 v 33.422 h 23.110964 v 51.9108 h 36.977543 v -97.3505 c 0,-31.7154 -21.048755,-53.1197 -52.053003,-53.1197 -30.933139,0 -51.768559,21.4754 -51.768559,53.1197 v 97.3505 z" inkscape:connector-curvature="0" /> <path - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none" id="path8315" - d="m 34.576962,-1294.4544 0,-86.755 0,0 34.346449,65.9907 c 9.67105,18.8443 16.711005,23.3243 26.239834,23.3243 9.244385,0 19.768765,-8.0355 19.768765,-21.6177 l 0,-128.8525 -36.977545,0 0,78.0795 -0.568885,0 -32.853125,-65.2085 c -5.475521,-10.8088 -12.87103,-15.431 -25.386506,-15.431 -12.4443653,0 -21.5465298,8.3911 -21.5465298,20.1243 l 0,130.3459 36.9775428,0 z" + d="m 34.576962,-1294.4544 v -86.755 0 l 34.346449,65.9907 c 9.67105,18.8443 16.711005,23.3243 26.239834,23.3243 9.244385,0 19.768765,-8.0355 19.768765,-21.6177 v -128.8525 H 77.954465 v 78.0795 H 77.38558 l -32.853125,-65.2085 c -5.475521,-10.8088 -12.87103,-15.431 -25.386506,-15.431 -12.4443653,0 -21.5465298,8.3911 -21.5465298,20.1243 v 130.3459 z" inkscape:connector-curvature="0" /> <path - style="font-size:173.54040527px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Exmouth" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:173.54040527px;line-height:125%;font-family:Exmouth;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none" id="path8317" - d="m 252.34055,-1353.787 9.40576,-1.1015 c 6.66579,-8.0217 12.00419,-12.0325 16.0152,-12.0326 2.71141,10e-5 4.0672,1.1016 4.06735,3.3047 -1.5e-4,2.5422 -2.14681,4.9713 -6.43997,7.2873 -3.33312,1.8643 -6.6096,3.1071 -9.82944,3.7285 -1.46891,3.3895 -2.93767,6.8072 -4.4063,10.2531 -2.25977,4.5193 -4.60415,6.7789 -7.03313,6.7789 -0.56504,0 -1.35591,-0.028 -2.37262,-0.085 -1.01697,-0.057 -1.75135,-0.113 -2.20315,-0.1695 l -1.01684,-0.5084 c 0.11286,-1.2993 1.75109,-4.0108 4.91472,-8.1347 2.59845,-3.333 4.8016,-5.9315 6.60945,-7.7958 l -8.98207,1.1016 c -11.01587,18.9245 -22.28582,32.9625 -33.80988,42.114 -14.3488,11.4677 -31.01363,17.2015 -49.99455,17.2015 -7.45685,0 -13.72735,-0.9885 -18.81151,-2.9657 -7.23087,-2.8246 -10.84629,-7.3721 -10.84627,-13.6426 -2e-5,-2.1467 0.67787,-3.9261 2.03367,-5.3384 1.41226,-1.4688 3.16348,-2.2031 5.25367,-2.2032 1.41225,10e-5 2.62681,0.6215 3.64367,1.8642 1.0733,1.1864 1.60997,2.5139 1.60999,3.9827 -2e-5,1.2428 -0.42371,2.4573 -1.27104,3.6436 -0.90389,1.3558 -1.94897,2.0337 -3.13526,2.0337 -1.86422,0 -3.58719,-0.5649 -5.16892,-1.6947 1.69471,8.1912 10.42256,12.2868 26.18358,12.2868 11.75008,0 22.20091,-2.8811 31.35252,-8.6432 7.23077,-4.5757 14.57459,-11.6371 22.03149,-21.1841 6.38339,-8.9255 12.76686,-17.8229 19.15046,-26.692 -10.90287,0.6215 -21.32545,2.6551 -31.26778,6.101 -6.83549,2.3162 -9.94249,3.4743 -9.32102,3.4742 l -0.59315,0 -0.6779,-1.0168 0.76263,-1.0168 c 10.39427,-5.3101 24.5735,-8.5584 42.53774,-9.7447 5.47951,-7.2873 13.95315,-16.7213 25.42096,-28.302 12.37138,-12.5409 21.69238,-20.7604 27.96305,-24.6584 l 1.10158,-0.2542 0.67789,0.7626 -0.33895,0.9321 c -1.63841,1.9209 -4.03927,4.1805 -7.2026,6.779 -3.95453,3.2765 -6.46838,5.4232 -7.54155,6.4399 -11.80677,11.1854 -21.29725,23.5569 -28.47148,37.1146 m 27.11569,-9.321 c -1.5e-4,-1.0167 -0.50857,-1.5252 -1.52526,-1.5252 -1.86435,0 -4.0675,1.1581 -6.60944,3.4742 -2.14681,1.9207 -3.81329,3.8979 -4.99946,5.9315 1.97704,-0.3954 4.49089,-1.3839 7.54155,-2.9658 3.72825,-1.8641 5.59246,-3.5023 5.59261,-4.9147 m -34.31829,-48.3845 c -13.67094,10e-5 -26.57912,2.6269 -38.72459,7.8805 -15.59159,6.7225 -23.38734,16.0435 -23.38728,27.963 -6e-5,4.5759 2.4008,8.0501 7.2026,10.4226 3.72834,1.9208 8.13463,2.8811 13.2189,2.8811 7.68269,0 16.43879,-2.3161 26.26832,-6.9484 11.46756,-5.4231 17.20139,-11.5241 17.20152,-18.3031 -1.3e-4,-3.0504 -1.24293,-5.4231 -3.72841,-7.1179 -2.14678,-1.4687 -4.77361,-2.203 -7.8805,-2.2031 -13.1625,1e-4 -26.04244,5.6209 -38.63985,16.8625 -1.80779,1.9773 -4.60409,4.7736 -8.38892,8.3889 l -0.76263,0.085 -0.59315,-0.6779 0.25421,-0.9321 c 2.88097,-5.8185 9.9141,-11.6371 21.09939,-17.4557 10.67671,-5.5926 19.51754,-8.3889 26.52253,-8.389 3.61531,10e-5 6.75056,0.8193 9.40576,2.4574 3.16337,1.9208 4.74512,4.6041 4.74524,8.05 -1.2e-4,7.9653 -5.79045,14.8854 -17.37099,20.7604 -9.94251,5.0843 -19.32001,7.6264 -28.13252,7.6263 -5.81865,10e-5 -10.78986,-1.158 -14.91363,-3.4742 -5.08425,-2.8245 -7.62635,-6.9483 -7.62629,-12.3715 -6e-5,-4.8582 1.27099,-9.095 3.81315,-12.7105 8.86902,-12.6539 23.58491,-20.7321 44.14773,-24.2347 9.20792,-1.5251 26.69187,-2.2877 52.45191,-2.2878 6.43981,10e-5 16.07152,0.057 28.89515,0.1694 12.87975,0.057 22.51146,0.085 28.89516,0.085 5.19695,10e-5 9.12307,-0.5648 11.77837,-1.6948 1.86398,-0.7342 5.08396,-2.8526 9.65997,-6.3552 l 0.84736,-0.3389 0.9321,1.1863 -0.25421,0.8473 c -9.32124,10.0556 -24.77152,15.0832 -46.35087,15.0831 -7.90893,10e-5 -19.6873,-0.8755 -35.33514,-2.6268 -15.64815,-1.7511 -27.39827,-2.6267 -35.25039,-2.6268" + d="m 252.34055,-1353.787 9.40576,-1.1015 c 6.66579,-8.0217 12.00419,-12.0325 16.0152,-12.0326 2.71141,10e-5 4.0672,1.1016 4.06735,3.3047 -1.5e-4,2.5422 -2.14681,4.9713 -6.43997,7.2873 -3.33312,1.8643 -6.6096,3.1071 -9.82944,3.7285 -1.46891,3.3895 -2.93767,6.8072 -4.4063,10.2531 -2.25977,4.5193 -4.60415,6.7789 -7.03313,6.7789 -0.56504,0 -1.35591,-0.028 -2.37262,-0.085 -1.01697,-0.057 -1.75135,-0.113 -2.20315,-0.1695 l -1.01684,-0.5084 c 0.11286,-1.2993 1.75109,-4.0108 4.91472,-8.1347 2.59845,-3.333 4.8016,-5.9315 6.60945,-7.7958 l -8.98207,1.1016 c -11.01587,18.9245 -22.28582,32.9625 -33.80988,42.114 -14.3488,11.4677 -31.01363,17.2015 -49.99455,17.2015 -7.45685,0 -13.72735,-0.9885 -18.81151,-2.9657 -7.23087,-2.8246 -10.84629,-7.3721 -10.84627,-13.6426 -2e-5,-2.1467 0.67787,-3.9261 2.03367,-5.3384 1.41226,-1.4688 3.16348,-2.2031 5.25367,-2.2032 1.41225,10e-5 2.62681,0.6215 3.64367,1.8642 1.0733,1.1864 1.60997,2.5139 1.60999,3.9827 -2e-5,1.2428 -0.42371,2.4573 -1.27104,3.6436 -0.90389,1.3558 -1.94897,2.0337 -3.13526,2.0337 -1.86422,0 -3.58719,-0.5649 -5.16892,-1.6947 1.69471,8.1912 10.42256,12.2868 26.18358,12.2868 11.75008,0 22.20091,-2.8811 31.35252,-8.6432 7.23077,-4.5757 14.57459,-11.6371 22.03149,-21.1841 6.38339,-8.9255 12.76686,-17.8229 19.15046,-26.692 -10.90287,0.6215 -21.32545,2.6551 -31.26778,6.101 -6.83549,2.3162 -9.94249,3.4743 -9.32102,3.4742 h -0.59315 l -0.6779,-1.0168 0.76263,-1.0168 c 10.39427,-5.3101 24.5735,-8.5584 42.53774,-9.7447 5.47951,-7.2873 13.95315,-16.7213 25.42096,-28.302 12.37138,-12.5409 21.69238,-20.7604 27.96305,-24.6584 l 1.10158,-0.2542 0.67789,0.7626 -0.33895,0.9321 c -1.63841,1.9209 -4.03927,4.1805 -7.2026,6.779 -3.95453,3.2765 -6.46838,5.4232 -7.54155,6.4399 -11.80677,11.1854 -21.29725,23.5569 -28.47148,37.1146 m 27.11569,-9.321 c -1.5e-4,-1.0167 -0.50857,-1.5252 -1.52526,-1.5252 -1.86435,0 -4.0675,1.1581 -6.60944,3.4742 -2.14681,1.9207 -3.81329,3.8979 -4.99946,5.9315 1.97704,-0.3954 4.49089,-1.3839 7.54155,-2.9658 3.72825,-1.8641 5.59246,-3.5023 5.59261,-4.9147 m -34.31829,-48.3845 c -13.67094,10e-5 -26.57912,2.6269 -38.72459,7.8805 -15.59159,6.7225 -23.38734,16.0435 -23.38728,27.963 -6e-5,4.5759 2.4008,8.0501 7.2026,10.4226 3.72834,1.9208 8.13463,2.8811 13.2189,2.8811 7.68269,0 16.43879,-2.3161 26.26832,-6.9484 11.46756,-5.4231 17.20139,-11.5241 17.20152,-18.3031 -1.3e-4,-3.0504 -1.24293,-5.4231 -3.72841,-7.1179 -2.14678,-1.4687 -4.77361,-2.203 -7.8805,-2.2031 -13.1625,1e-4 -26.04244,5.6209 -38.63985,16.8625 -1.80779,1.9773 -4.60409,4.7736 -8.38892,8.3889 l -0.76263,0.085 -0.59315,-0.6779 0.25421,-0.9321 c 2.88097,-5.8185 9.9141,-11.6371 21.09939,-17.4557 10.67671,-5.5926 19.51754,-8.3889 26.52253,-8.389 3.61531,10e-5 6.75056,0.8193 9.40576,2.4574 3.16337,1.9208 4.74512,4.6041 4.74524,8.05 -1.2e-4,7.9653 -5.79045,14.8854 -17.37099,20.7604 -9.94251,5.0843 -19.32001,7.6264 -28.13252,7.6263 -5.81865,10e-5 -10.78986,-1.158 -14.91363,-3.4742 -5.08425,-2.8245 -7.62635,-6.9483 -7.62629,-12.3715 -6e-5,-4.8582 1.27099,-9.095 3.81315,-12.7105 8.86902,-12.6539 23.58491,-20.7321 44.14773,-24.2347 9.20792,-1.5251 26.69187,-2.2877 52.45191,-2.2878 6.43981,10e-5 16.07152,0.057 28.89515,0.1694 12.87975,0.057 22.51146,0.085 28.89516,0.085 5.19695,10e-5 9.12307,-0.5648 11.77837,-1.6948 1.86398,-0.7342 5.08396,-2.8526 9.65997,-6.3552 l 0.84736,-0.3389 0.9321,1.1863 -0.25421,0.8473 c -9.32124,10.0556 -24.77152,15.0832 -46.35087,15.0831 -7.90893,10e-5 -19.6873,-0.8755 -35.33514,-2.6268 -15.64815,-1.7511 -27.39827,-2.6267 -35.25039,-2.6268" inkscape:connector-curvature="0" /> <path - style="font-size:173.54040527px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Exmouth" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:173.54040527px;line-height:125%;font-family:Exmouth;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none" id="path8319" - d="m 600.625,-1391.1562 c -5.95832,0.301 -14.35188,5.2745 -25.1875,14.9062 -8.02176,7.2309 -17.34845,17.0349 -27.96875,29.4062 -5.64912,6.779 -11.28844,13.5649 -16.9375,20.3438 -2.59859,2.9941 -6.21148,6.0865 -10.84375,9.25 -4.06735,2.5986 -34.41191,25.3656 -39.3125,23.5312 -0.53337,-0.1997 -1.26798,-0.5781 -1.375,-1.0937 -0.23834,-1.1483 4.197,-6.4241 12.21875,-15.4063 4.97118,-5.4231 9.935,-10.858 14.90625,-16.2812 l -9.75,0 c -4.5193,5.2537 -7.46274,8.5878 -8.875,10 0.39541,-1.2993 0.56247,-2.4518 0.5625,-3.4688 -3e-5,-4.3497 -2.82569,-6.5312 -8.53125,-6.5312 -6.89191,0 -14.34728,2.7391 -22.3125,8.2188 -4.33149,2.9726 -7.43298,5.34 -9.59375,8.4687 10e-6,10e-5 -2.70434,0.8207 -4.625,1.7813 -1.92072,0.9603 -3.63101,1.4377 -5.15625,1.4374 -1.07335,0 -2.05892,-0.3593 -2.90625,-1.0937 8.24766,-6.6659 12.37496,-12.2618 12.375,-16.7813 -3e-5,-1.4687 -0.71877,-2.1874 -2.1875,-2.1874 -2.82458,10e-5 -5.96032,2.1444 -9.40625,6.4374 -3.33299,4.0675 -5.00002,7.5627 -5,10.5 -2e-5,2e-4 0.12376,0.5577 0.40625,1.6876 -11.01576,9.6599 -19.74753,14.5 -26.1875,14.5 -2.14665,0 -3.21874,-0.5145 -3.21875,-1.5313 10e-6,-1.1299 3.17303,-4.7428 9.5,-10.8437 6.32699,-6.1575 9.49998,-10.9976 9.5,-14.5 -10e-6,-4.0673 -1.62377,-6.0938 -4.84375,-6.0938 -2.37262,0 -6.9771,2.5779 -13.8125,7.7188 -5.81503,4.3374 -15.57478,13.2562 -21.6875,17.375 -7.68278,5.1972 -13.32205,7.7006 -16.9375,7.5312 L 362,-1294.8125 c 0.113,-1.1863 4.16577,-6.3056 12.1875,-15.3437 4.91471,-5.4798 9.83528,-10.9206 14.75,-16.3438 l -9.5625,0 c -5.93156,5.0842 -28.68563,25.426 -52.46875,32.625 -0.003,-10e-5 -0.0285,0 -0.0312,0 -0.007,0 -0.024,-9e-4 -0.0312,0 -0.0231,0 -0.0692,10e-4 -0.0937,0 -0.0162,0 -0.0475,0 -0.0625,0 -0.25291,-0.045 -0.55309,-0.2262 -0.75,-0.375 -0.0709,-0.056 -0.14178,-0.1228 -0.1875,-0.1875 -0.0137,-0.021 -0.0479,-0.068 -0.0625,-0.094 -0.0102,-0.025 -0.0259,-0.068 -0.0312,-0.094 1.1e-4,0 -5e-5,-0.028 0,-0.031 -2.7e-4,0 9e-5,-0.027 0,-0.031 10e-5,0 -2.9e-4,-0.026 0,-0.031 0.11886,-1.3111 6.11893,-8.3387 17,-20.5937 6.77891,-7.5132 13.5648,-15.0179 20.34375,-22.5313 7.66156,0.1978 12.06535,-0.09 13.15625,-0.8437 0.005,-0.01 0.0259,-0.026 0.0312,-0.031 0.0286,-0.026 0.0701,-0.067 0.0937,-0.094 0.003,0 0.028,-0.028 0.0312,-0.031 0.0301,-0.041 0.0768,-0.1117 0.0937,-0.1562 -10e-6,0 1.9e-4,-0.028 0,-0.031 l -1.125,-1.1876 -10.65625,0 14.90625,-16.5312 -9.90625,0 -14.75,16.5312 c -4.01396,-0.1416 -6.52566,0.1253 -7.5,0.8126 -0.10498,0.077 -0.20936,0.1857 -0.28125,0.2812 -0.0339,0.048 -0.0712,0.1095 -0.0937,0.1562 l 1.4375,1.125 4.40625,0 c -7.23085,8.0784 -28.18662,24.3812 -35.03125,28.5626 -6.79906,4.1534 -9.98436,4.8857 -12.1875,5.2812 2.03366,-3.333 3.06249,-6.989 3.0625,-11 -10e-6,-1.0168 -0.16106,-2.5228 -0.5,-4.5 -0.28246,-1.9772 -0.43751,-3.4832 -0.4375,-4.5 -10e-6,-1.5253 0.0805,-2.7582 0.25,-3.7188 3.50243,-2.8244 6.15502,-4.9314 7.90625,-6.3437 l -1.2813,-1.4383 c -0.003,10e-5 -0.0246,0 -0.0312,0 -0.003,-2e-4 -0.0285,0 -0.0312,0 -1.22688,0.4067 -7.82546,4.867 -19.78125,13.375 -10.91202,7.7653 -23.07076,16.4159 -30.75,21.5 -8.13471,5.4231 -14.88335,8.125 -20.25,8.125 -1.42992,0 -2.46833,-0.3306 -3.09375,-0.9688 -0.46922,-0.4943 -0.71875,-1.1889 -0.71875,-2.0624 1e-5,-4.0674 2.70189,-7.5192 8.125,-10.3438 5.02771,-2.2031 10.06604,-4.3845 15.09375,-6.5312 5.42312,-2.5987 8.12499,-5.5793 8.125,-8.9688 -10e-6,-2.9375 -1.78482,-4.4062 -5.34375,-4.4062 -6.21401,0 -13.00593,2.9431 -20.40625,8.875 -7.73925,6.2139 -11.62496,12.3677 -11.625,18.4687 3e-5,5.7056 3.72469,8.5625 11.125,8.5625 5.87507,0 16.51546,-5.5586 31.9375,-16.6875 0,0 25.61056,-17.7692 27.53125,-19.125 -7.00488,22.088 -15.34604,33.1251 -25.0625,33.125 -1.65102,0 -2.79395,-0.3633 -3.375,-1.0937 -0.0392,-0.051 -0.0909,-0.1329 -0.125,-0.1876 -0.18308,-0.3026 -0.28337,-0.6549 -0.3125,-1.0624 4.18035,0.1129 6.25001,-1.6284 6.25,-5.1876 1e-5,-2.0901 -1.19587,-3.125 -3.625,-3.125 -3.72839,1e-4 -5.59372,2.2247 -5.59375,6.6876 2e-5,4.2932 2.70187,6.4377 8.125,6.4374 6.77893,0 14.3641,-3.7306 22.78125,-11.1874 1.92069,-0.113 7.43056,-1.8252 11.3125,-3.7813 3.93186,-1.9813 16.21387,-10.4086 21.75,-14.25 -3.44595,3.446 -6.8978,6.8978 -10.34375,10.3437 -3.89786,4.5193 -5.84373,8.8017 -5.84375,12.8126 2e-5,3.5588 1.74779,5.3052 5.25,5.3437 11.23201,0.125 37.90549,-20.5574 40.15625,-22.2187 -3.89787,4.8583 -5.92427,7.3988 -6.09375,7.625 -2.20313,3.22 -3.3125,6.2382 -3.3125,9.0624 1e-5,3.672 1.74156,5.5314 5.1875,5.5313 2.76807,0 8.64294,-2.3797 17.625,-7.125 8.30152,-4.3268 18.00607,-13.323 22.78125,-17.875 6.04454,-5.762 10.3329,-8.613 12.875,-8.5 l 1.1875,0.875 c 3.8e-4,0.011 -10e-6,0.051 0,0.062 -0.002,0 -0.0242,0.024 -0.0312,0.031 -0.37172,0.832 -3.50081,4.2378 -9.375,10.2188 -6.214,6.327 -9.31248,11.2476 -9.3125,14.75 10e-6,4.8583 2.69585,7.2815 8.0625,7.2812 6.21401,0 15.38566,-4.9637 27.53125,-14.9062 1.41225,1.2993 2.9615,1.9688 4.65625,1.9688 2.70944,0 5.45731,-0.8337 8.25,-2.4376 -1.10458,2.2633 -1.625,4.5637 -1.625,6.9063 2e-5,5.8751 2.98073,8.8125 8.96875,8.8125 5.76209,0 12.82682,-3.2967 21.1875,-9.9062 -0.50842,1.4123 -0.75,2.881 -0.75,4.4062 -1e-5,3.6155 1.67303,5.4375 5.0625,5.4375 10.11059,0 35.97718,-20.524 38.40625,-22.2187 -3.84137,4.7453 -5.90503,7.286 -6.1875,7.625 -2.20314,3.22 -3.31249,6.2379 -3.3125,9.0624 2e-5,3.672 1.78481,5.5314 5.34375,5.5313 3.27649,0 9.23187,-2.256 17.875,-6.7187 7.40754,-4.4699 11.50601,-7.8449 14.34375,-10.375 L 544,-1309.375 c -0.005,0 -0.0248,0 -0.0312,0 -0.50984,0.2448 -4.56438,2.9961 -12.15625,8.2188 -7.28734,5.0276 -13.19428,6.6274 -17.3125,7.2812 -0.86863,0.1379 -1.68286,-0.1505 -1.4375,-0.9375 0.4599,-1.4752 1.3101,-2.4411 1.875,-3.0625 5.36665,-6.4964 10.76435,-12.935 16.1875,-19.375 6.55294,-7.8522 12.31001,-13.9999 17.28125,-18.4062 2.20312,-1.8643 8.98905,-6.1153 20.34375,-12.7813 11.75007,-6.8918 20.32678,-12.6057 25.75,-17.125 8.41708,-7.0048 12.6249,-13.4373 12.625,-19.3125 -8e-5,-1.6381 -0.59502,-3.1009 -1.78125,-4.3438 -1.1299,-1.2991 -2.51808,-1.9374 -4.15625,-1.9374 -0.18713,0 -0.3703,-0.01 -0.5625,0 z m -0.625,2.2187 c 0.23304,-0.017 0.46109,0 0.6875,0 2.82447,10e-5 4.24994,1.3511 4.25,4.0625 -8e-5,5.9882 -7.61646,14.4098 -22.8125,25.3125 -3.78495,2.7116 -14.34482,9.4603 -31.6875,20.25 11.80658,-15.648 19.42899,-25.4146 22.875,-29.3125 11.39149,-13.0811 20.29184,-19.8525 26.6875,-20.3125 z m -120.0625,64.9063 c 0.0321,0 0.0619,0 0.0937,0 0.20046,-0.016 0.40309,0 0.59375,0 3.27646,-1e-4 4.90622,1.4316 4.90625,4.3124 -2e-5,4.8583 -4.28837,10.578 -12.875,17.1876 -8.30418,6.327 -15.00955,9.4999 -20.09375,9.5 -1.29046,0 -2.23885,-0.3011 -2.84375,-0.875 -0.0161,-0.016 -0.0469,-0.046 -0.0625,-0.063 -0.46945,-0.5029 -0.71874,-1.2314 -0.71875,-2.125 2e-5,-3.9543 4.25111,-9.5937 12.78125,-16.9374 8.06676,-6.9449 14.14303,-10.6227 18.21875,-11 z m -213.90625,0.7812 c 0.0333,0 0.0606,0 0.0937,0 0.012,-6e-4 0.0512,-7e-4 0.0625,0 0.004,10e-5 0.0273,10e-5 0.0312,0 0.012,-5e-4 0.0512,-6e-4 0.0625,0 0.004,10e-5 0.0273,10e-5 0.0312,0 0.012,-4e-4 0.0512,-5e-4 0.0625,0 0.004,10e-5 0.0272,10e-5 0.0312,0 0.012,-4e-4 0.0512,-4e-4 0.0625,0 0.004,10e-5 0.0272,10e-5 0.0312,0 0.13863,-0.01 0.27032,0 0.40625,0 1.24279,10e-5 1.87497,0.6382 1.875,1.9375 -2e-5,3.3895 -6.35202,7.1945 -19.0625,11.375 6.63026,-8.2614 12.08362,-12.7437 16.3125,-13.3125 z" + d="m 600.625,-1391.1562 c -5.95832,0.301 -14.35188,5.2745 -25.1875,14.9062 -8.02176,7.2309 -17.34845,17.0349 -27.96875,29.4062 -5.64912,6.779 -11.28844,13.5649 -16.9375,20.3438 -2.59859,2.9941 -6.21148,6.0865 -10.84375,9.25 -4.06735,2.5986 -34.41191,25.3656 -39.3125,23.5312 -0.53337,-0.1997 -1.26798,-0.5781 -1.375,-1.0937 -0.23834,-1.1483 4.197,-6.4241 12.21875,-15.4063 4.97118,-5.4231 9.935,-10.858 14.90625,-16.2812 h -9.75 c -4.5193,5.2537 -7.46274,8.5878 -8.875,10 0.39541,-1.2993 0.56247,-2.4518 0.5625,-3.4688 -3e-5,-4.3497 -2.82569,-6.5312 -8.53125,-6.5312 -6.89191,0 -14.34728,2.7391 -22.3125,8.2188 -4.33149,2.9726 -7.43298,5.34 -9.59375,8.4687 10e-6,10e-5 -2.70434,0.8207 -4.625,1.7813 -1.92072,0.9603 -3.63101,1.4377 -5.15625,1.4374 -1.07335,0 -2.05892,-0.3593 -2.90625,-1.0937 8.24766,-6.6659 12.37496,-12.2618 12.375,-16.7813 -3e-5,-1.4687 -0.71877,-2.1874 -2.1875,-2.1874 -2.82458,10e-5 -5.96032,2.1444 -9.40625,6.4374 -3.33299,4.0675 -5.00002,7.5627 -5,10.5 -2e-5,2e-4 0.12376,0.5577 0.40625,1.6876 -11.01576,9.6599 -19.74753,14.5 -26.1875,14.5 -2.14665,0 -3.21874,-0.5145 -3.21875,-1.5313 10e-6,-1.1299 3.17303,-4.7428 9.5,-10.8437 6.32699,-6.1575 9.49998,-10.9976 9.5,-14.5 -10e-6,-4.0673 -1.62377,-6.0938 -4.84375,-6.0938 -2.37262,0 -6.9771,2.5779 -13.8125,7.7188 -5.81503,4.3374 -15.57478,13.2562 -21.6875,17.375 -7.68278,5.1972 -13.32205,7.7006 -16.9375,7.5312 L 362,-1294.8125 c 0.113,-1.1863 4.16577,-6.3056 12.1875,-15.3437 4.91471,-5.4798 9.83528,-10.9206 14.75,-16.3438 h -9.5625 c -5.93156,5.0842 -28.68563,25.426 -52.46875,32.625 -0.003,-10e-5 -0.0285,0 -0.0312,0 -0.007,0 -0.024,-9e-4 -0.0312,0 -0.0231,0 -0.0692,10e-4 -0.0937,0 -0.0162,0 -0.0475,0 -0.0625,0 -0.25291,-0.045 -0.55309,-0.2262 -0.75,-0.375 -0.0709,-0.056 -0.14178,-0.1228 -0.1875,-0.1875 -0.0137,-0.021 -0.0479,-0.068 -0.0625,-0.094 -0.0102,-0.025 -0.0259,-0.068 -0.0312,-0.094 1.1e-4,0 -5e-5,-0.028 0,-0.031 -2.7e-4,0 9e-5,-0.027 0,-0.031 10e-5,0 -2.9e-4,-0.026 0,-0.031 0.11886,-1.3111 6.11893,-8.3387 17,-20.5937 6.77891,-7.5132 13.5648,-15.0179 20.34375,-22.5313 7.66156,0.1978 12.06535,-0.09 13.15625,-0.8437 0.005,-0.01 0.0259,-0.026 0.0312,-0.031 0.0286,-0.026 0.0701,-0.067 0.0937,-0.094 0.003,0 0.028,-0.028 0.0312,-0.031 0.0301,-0.041 0.0768,-0.1117 0.0937,-0.1562 -10e-6,0 1.9e-4,-0.028 0,-0.031 l -1.125,-1.1876 H 364.625 l 14.90625,-16.5312 H 369.625 l -14.75,16.5312 c -4.01396,-0.1416 -6.52566,0.1253 -7.5,0.8126 -0.10498,0.077 -0.20936,0.1857 -0.28125,0.2812 -0.0339,0.048 -0.0712,0.1095 -0.0937,0.1562 l 1.4375,1.125 h 4.40625 c -7.23085,8.0784 -28.18662,24.3812 -35.03125,28.5626 -6.79906,4.1534 -9.98436,4.8857 -12.1875,5.2812 2.03366,-3.333 3.06249,-6.989 3.0625,-11 -10e-6,-1.0168 -0.16106,-2.5228 -0.5,-4.5 -0.28246,-1.9772 -0.43751,-3.4832 -0.4375,-4.5 -10e-6,-1.5253 0.0805,-2.7582 0.25,-3.7188 3.50243,-2.8244 6.15502,-4.9314 7.90625,-6.3437 l -1.2813,-1.4383 c -0.003,10e-5 -0.0246,0 -0.0312,0 -0.003,-2e-4 -0.0285,0 -0.0312,0 -1.22688,0.4067 -7.82546,4.867 -19.78125,13.375 -10.91202,7.7653 -23.07076,16.4159 -30.75,21.5 -8.13471,5.4231 -14.88335,8.125 -20.25,8.125 -1.42992,0 -2.46833,-0.3306 -3.09375,-0.9688 -0.46922,-0.4943 -0.71875,-1.1889 -0.71875,-2.0624 1e-5,-4.0674 2.70189,-7.5192 8.125,-10.3438 5.02771,-2.2031 10.06604,-4.3845 15.09375,-6.5312 5.42312,-2.5987 8.12499,-5.5793 8.125,-8.9688 -10e-6,-2.9375 -1.78482,-4.4062 -5.34375,-4.4062 -6.21401,0 -13.00593,2.9431 -20.40625,8.875 -7.73925,6.2139 -11.62496,12.3677 -11.625,18.4687 3e-5,5.7056 3.72469,8.5625 11.125,8.5625 5.87507,0 16.51546,-5.5586 31.9375,-16.6875 0,0 25.61056,-17.7692 27.53125,-19.125 -7.00488,22.088 -15.34604,33.1251 -25.0625,33.125 -1.65102,0 -2.79395,-0.3633 -3.375,-1.0937 -0.0392,-0.051 -0.0909,-0.1329 -0.125,-0.1876 -0.18308,-0.3026 -0.28337,-0.6549 -0.3125,-1.0624 4.18035,0.1129 6.25001,-1.6284 6.25,-5.1876 1e-5,-2.0901 -1.19587,-3.125 -3.625,-3.125 -3.72839,1e-4 -5.59372,2.2247 -5.59375,6.6876 2e-5,4.2932 2.70187,6.4377 8.125,6.4374 6.77893,0 14.3641,-3.7306 22.78125,-11.1874 1.92069,-0.113 7.43056,-1.8252 11.3125,-3.7813 3.93186,-1.9813 16.21387,-10.4086 21.75,-14.25 -3.44595,3.446 -6.8978,6.8978 -10.34375,10.3437 -3.89786,4.5193 -5.84373,8.8017 -5.84375,12.8126 2e-5,3.5588 1.74779,5.3052 5.25,5.3437 11.23201,0.125 37.90549,-20.5574 40.15625,-22.2187 -3.89787,4.8583 -5.92427,7.3988 -6.09375,7.625 -2.20313,3.22 -3.3125,6.2382 -3.3125,9.0624 1e-5,3.672 1.74156,5.5314 5.1875,5.5313 2.76807,0 8.64294,-2.3797 17.625,-7.125 8.30152,-4.3268 18.00607,-13.323 22.78125,-17.875 6.04454,-5.762 10.3329,-8.613 12.875,-8.5 l 1.1875,0.875 c 3.8e-4,0.011 -10e-6,0.051 0,0.062 -0.002,0 -0.0242,0.024 -0.0312,0.031 -0.37172,0.832 -3.50081,4.2378 -9.375,10.2188 -6.214,6.327 -9.31248,11.2476 -9.3125,14.75 10e-6,4.8583 2.69585,7.2815 8.0625,7.2812 6.21401,0 15.38566,-4.9637 27.53125,-14.9062 1.41225,1.2993 2.9615,1.9688 4.65625,1.9688 2.70944,0 5.45731,-0.8337 8.25,-2.4376 -1.10458,2.2633 -1.625,4.5637 -1.625,6.9063 2e-5,5.8751 2.98073,8.8125 8.96875,8.8125 5.76209,0 12.82682,-3.2967 21.1875,-9.9062 -0.50842,1.4123 -0.75,2.881 -0.75,4.4062 -1e-5,3.6155 1.67303,5.4375 5.0625,5.4375 10.11059,0 35.97718,-20.524 38.40625,-22.2187 -3.84137,4.7453 -5.90503,7.286 -6.1875,7.625 -2.20314,3.22 -3.31249,6.2379 -3.3125,9.0624 2e-5,3.672 1.78481,5.5314 5.34375,5.5313 3.27649,0 9.23187,-2.256 17.875,-6.7187 7.40754,-4.4699 11.50601,-7.8449 14.34375,-10.375 L 544,-1309.375 c -0.005,0 -0.0248,0 -0.0312,0 -0.50984,0.2448 -4.56438,2.9961 -12.15625,8.2188 -7.28734,5.0276 -13.19428,6.6274 -17.3125,7.2812 -0.86863,0.1379 -1.68286,-0.1505 -1.4375,-0.9375 0.4599,-1.4752 1.3101,-2.4411 1.875,-3.0625 5.36665,-6.4964 10.76435,-12.935 16.1875,-19.375 6.55294,-7.8522 12.31001,-13.9999 17.28125,-18.4062 2.20312,-1.8643 8.98905,-6.1153 20.34375,-12.7813 11.75007,-6.8918 20.32678,-12.6057 25.75,-17.125 8.41708,-7.0048 12.6249,-13.4373 12.625,-19.3125 -8e-5,-1.6381 -0.59502,-3.1009 -1.78125,-4.3438 -1.1299,-1.2991 -2.51808,-1.9374 -4.15625,-1.9374 -0.18713,0 -0.3703,-0.01 -0.5625,0 z m -0.625,2.2187 c 0.23304,-0.017 0.46109,0 0.6875,0 2.82447,10e-5 4.24994,1.3511 4.25,4.0625 -8e-5,5.9882 -7.61646,14.4098 -22.8125,25.3125 -3.78495,2.7116 -14.34482,9.4603 -31.6875,20.25 11.80658,-15.648 19.42899,-25.4146 22.875,-29.3125 11.39149,-13.0811 20.29184,-19.8525 26.6875,-20.3125 z m -120.0625,64.9063 c 0.0321,0 0.0619,0 0.0937,0 0.20046,-0.016 0.40309,0 0.59375,0 3.27646,-1e-4 4.90622,1.4316 4.90625,4.3124 -2e-5,4.8583 -4.28837,10.578 -12.875,17.1876 -8.30418,6.327 -15.00955,9.4999 -20.09375,9.5 -1.29046,0 -2.23885,-0.3011 -2.84375,-0.875 -0.0161,-0.016 -0.0469,-0.046 -0.0625,-0.063 -0.46945,-0.5029 -0.71874,-1.2314 -0.71875,-2.125 2e-5,-3.9543 4.25111,-9.5937 12.78125,-16.9374 8.06676,-6.9449 14.14303,-10.6227 18.21875,-11 z m -213.90625,0.7812 c 0.0333,0 0.0606,0 0.0937,0 0.012,-6e-4 0.0512,-7e-4 0.0625,0 0.004,10e-5 0.0273,10e-5 0.0312,0 0.012,-5e-4 0.0512,-6e-4 0.0625,0 0.004,10e-5 0.0273,10e-5 0.0312,0 0.012,-4e-4 0.0512,-5e-4 0.0625,0 0.004,10e-5 0.0272,10e-5 0.0312,0 0.012,-4e-4 0.0512,-4e-4 0.0625,0 0.004,10e-5 0.0272,10e-5 0.0312,0 0.13863,-0.01 0.27032,0 0.40625,0 1.24279,10e-5 1.87497,0.6382 1.875,1.9375 -2e-5,3.3895 -6.35202,7.1945 -19.0625,11.375 6.63026,-8.2614 12.08362,-12.7437 16.3125,-13.3125 z" inkscape:connector-curvature="0" /> <path - style="font-size:173.54040527px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Exmouth" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:173.54040527px;line-height:125%;font-family:Exmouth;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none" id="path8321" d="m 406.81523,-1346.1607 c -0.7909,1.9773 -2.62686,3.898 -5.50787,5.7621 -2.09019,-1.4122 -3.75668,-3.2199 -4.99946,-5.4231 1.07331,-2.3726 2.79628,-4.2085 5.16893,-5.5079 1.75119,0.8474 3.53066,2.5704 5.3384,5.1689" inkscape:connector-curvature="0" /> @@ -88047,31 +88895,31 @@ id="g9184" transform="matrix(0.7769546,0,0,0.7769546,-2279.9093,796.92596)"> <path - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.33726069px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.33726069px;marker:none;enable-background:accumulate" id="path1352" - d="m 150.89899,513.89563 -2.86494,0 c -5.11662,0 -8.80535,4.29283 -8.80535,9.50099 0,5.23561 3.69788,9.53759 8.80535,9.53759 l 2.86494,0 0,-4.57659 -1.98624,0 c -2.67272,0 -4.74133,-1.61095 -4.74133,-4.961 0,-3.35006 2.06861,-4.92441 4.74133,-4.92441 l 1.98624,0 0,-4.57658 z m 8.74127,19.03858 0,-12.75036 c 0,-1.41873 0.75056,-2.31575 1.90385,-2.31575 1.17161,0 1.94048,0.91532 1.94048,2.31575 l 0,1.76656 -2.97478,0 0,4.30199 2.97478,0 0,6.68181 4.75964,0 0,-12.53068 c 0,-4.08232 -2.70933,-6.83742 -6.70012,-6.83742 -3.98162,0 -6.6635,2.76426 -6.6635,6.83742 l 0,12.53068 4.75965,0 z m 17.75714,0 0,-11.16686 0,0 4.42097,8.49414 c 1.24483,2.42558 2.15099,3.00224 3.37752,3.00224 1.1899,0 2.54457,-1.03431 2.54457,-2.78257 l 0,-16.58553 -4.75963,0 0,10.05017 -0.0732,0 -4.22876,-8.39345 c -0.7048,-1.39128 -1.65673,-1.98624 -3.26768,-1.98624 -1.60181,0 -2.77342,1.08008 -2.77342,2.59035 l 0,16.77775 4.75966,0 z" + d="m 150.89899,513.89563 h -2.86494 c -5.11662,0 -8.80535,4.29283 -8.80535,9.50099 0,5.23561 3.69788,9.53759 8.80535,9.53759 h 2.86494 v -4.57659 h -1.98624 c -2.67272,0 -4.74133,-1.61095 -4.74133,-4.961 0,-3.35006 2.06861,-4.92441 4.74133,-4.92441 h 1.98624 z m 8.74127,19.03858 v -12.75036 c 0,-1.41873 0.75056,-2.31575 1.90385,-2.31575 1.17161,0 1.94048,0.91532 1.94048,2.31575 v 1.76656 h -2.97478 v 4.30199 h 2.97478 v 6.68181 h 4.75964 v -12.53068 c 0,-4.08232 -2.70933,-6.83742 -6.70012,-6.83742 -3.98162,0 -6.6635,2.76426 -6.6635,6.83742 v 12.53068 z m 17.75714,0 v -11.16686 0 l 4.42097,8.49414 c 1.24483,2.42558 2.15099,3.00224 3.37752,3.00224 1.1899,0 2.54457,-1.03431 2.54457,-2.78257 v -16.58553 h -4.75963 v 10.05017 h -0.0732 l -4.22876,-8.39345 c -0.7048,-1.39128 -1.65673,-1.98624 -3.26768,-1.98624 -1.60181,0 -2.77342,1.08008 -2.77342,2.59035 v 16.77775 h 4.75966 z" inkscape:connector-curvature="0" /> <path - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.33726069px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.33726069px;marker:none;enable-background:accumulate" id="path9170" - d="m 140.71151,538.18631 0.2929,0.009 0.2929,0.0275 0.28375,0.0366 0.27459,0.0549 0.26544,0.0641 0.26544,0.0824 0.25629,0.0915 0.25629,0.10985 0.23798,0.11899 0.23799,0.12814 0.22883,0.14645 0.21967,0.15561 0.21052,0.16476 0.20137,0.1739 0.19222,0.18307 0.18306,0.19221 0.17391,0.20138 0.16476,0.21051 0.16476,0.21969 0.1373,0.22882 0.13729,0.22883 0.12815,0.24714 0.11899,0.23798 0.10068,0.25629 0.0915,0.25629 0.0824,0.25629 0.0641,0.26544 0.0641,0.26544 0.0458,0.27459 0.0275,0.2746 0.0183,0.27459 0.009,0.28375 c 0,2.99308 -2.27914,5.72072 -5.42782,5.72072 -3.15785,0 -5.46444,-2.73679 -5.46444,-5.72072 0,-3.00223 2.29744,-5.72073 5.46444,-5.72073 z m 0,-1.00685 -0.33867,0.009 -0.33867,0.0275 -0.33867,0.0458 -0.32951,0.0549 -0.32036,0.0824 -0.31121,0.0915 -0.31121,0.10984 -0.30205,0.119 -0.28375,0.13729 -0.28375,0.14645 -0.27459,0.16476 -0.2746,0.18306 -0.25629,0.18306 -0.24713,0.20137 -0.22883,0.21968 -0.22883,0.21968 -0.21967,0.23797 -0.20137,0.23799 -0.19222,0.25629 -0.18306,0.26544 -0.16476,0.27459 -0.15561,0.28376 -0.14645,0.28374 -0.12814,0.30205 -0.10984,0.30206 -0.10068,0.31121 -0.0915,0.32035 -0.0732,0.32037 -0.0549,0.32036 -0.0366,0.33867 -0.0275,0.33867 -0.009,0.33866 c 0,3.64296 2.84663,6.72758 6.56282,6.72758 3.70703,0 6.5262,-3.08462 6.5262,-6.72758 0,-3.65211 -2.82833,-6.72758 -6.5262,-6.72758 z m 11.01125,19.3681 0,-12.64052 c 0,-3.00223 2.16015,-5.72073 5.27223,-5.72073 2.6178,0 5.16238,2.41644 5.16238,5.72073 0,3.32259 -2.57204,5.72072 -5.16238,5.72072 -1.71165,0 -2.91071,-0.70479 -4.0274,-1.85808 l 0,1.22652 c 0.78718,0.64987 2.04116,1.63842 4.0274,1.63842 3.51481,0 6.26076,-2.83748 6.26076,-6.72758 0,-3.89925 -2.76425,-6.72758 -6.26076,-6.72758 -3.51482,0 -6.27908,2.82833 -6.27908,6.72758 l 0,12.64052 1.00685,0 z m 17.42763,-9.94949 9.23554,-6.26077 c -1.1716,-1.88555 -3.26768,-3.15784 -5.74819,-3.15784 -3.97247,0 -6.72757,3.10292 -6.72757,6.75504 0,3.78026 2.90155,6.70012 6.94725,6.70012 3.65211,0 6.42552,-3.0297 6.5079,-6.46213 l -1.09838,0 c -0.0549,2.94731 -2.51712,5.45527 -5.6292,5.45527 -3.21276,0 -5.62919,-2.60864 -5.62919,-5.63834 0,-3.08461 2.3249,-5.80311 5.62919,-5.80311 1.7208,0 3.22192,0.75056 4.17385,1.93131 l -8.31108,5.6109 0.64988,0.86955 z m 23.67008,3.76195 0,-7.87172 c 0,-3.1853 -2.28829,-5.30884 -5.18069,-5.30884 -2.8924,0 -5.16238,2.12354 -5.16238,5.30884 l 0,7.87172 1.00684,0 0,-7.73442 c 0,-2.70019 1.88556,-4.43929 4.15554,-4.43929 2.26083,0 4.17385,1.7574 4.17385,4.43929 l 0,7.73442 1.00684,0 z" + d="m 140.71151,538.18631 0.2929,0.009 0.2929,0.0275 0.28375,0.0366 0.27459,0.0549 0.26544,0.0641 0.26544,0.0824 0.25629,0.0915 0.25629,0.10985 0.23798,0.11899 0.23799,0.12814 0.22883,0.14645 0.21967,0.15561 0.21052,0.16476 0.20137,0.1739 0.19222,0.18307 0.18306,0.19221 0.17391,0.20138 0.16476,0.21051 0.16476,0.21969 0.1373,0.22882 0.13729,0.22883 0.12815,0.24714 0.11899,0.23798 0.10068,0.25629 0.0915,0.25629 0.0824,0.25629 0.0641,0.26544 0.0641,0.26544 0.0458,0.27459 0.0275,0.2746 0.0183,0.27459 0.009,0.28375 c 0,2.99308 -2.27914,5.72072 -5.42782,5.72072 -3.15785,0 -5.46444,-2.73679 -5.46444,-5.72072 0,-3.00223 2.29744,-5.72073 5.46444,-5.72073 z m 0,-1.00685 -0.33867,0.009 -0.33867,0.0275 -0.33867,0.0458 -0.32951,0.0549 -0.32036,0.0824 -0.31121,0.0915 -0.31121,0.10984 -0.30205,0.119 -0.28375,0.13729 -0.28375,0.14645 -0.27459,0.16476 -0.2746,0.18306 -0.25629,0.18306 -0.24713,0.20137 -0.22883,0.21968 -0.22883,0.21968 -0.21967,0.23797 -0.20137,0.23799 -0.19222,0.25629 -0.18306,0.26544 -0.16476,0.27459 -0.15561,0.28376 -0.14645,0.28374 -0.12814,0.30205 -0.10984,0.30206 -0.10068,0.31121 -0.0915,0.32035 -0.0732,0.32037 -0.0549,0.32036 -0.0366,0.33867 -0.0275,0.33867 -0.009,0.33866 c 0,3.64296 2.84663,6.72758 6.56282,6.72758 3.70703,0 6.5262,-3.08462 6.5262,-6.72758 0,-3.65211 -2.82833,-6.72758 -6.5262,-6.72758 z m 11.01125,19.3681 v -12.64052 c 0,-3.00223 2.16015,-5.72073 5.27223,-5.72073 2.6178,0 5.16238,2.41644 5.16238,5.72073 0,3.32259 -2.57204,5.72072 -5.16238,5.72072 -1.71165,0 -2.91071,-0.70479 -4.0274,-1.85808 v 1.22652 c 0.78718,0.64987 2.04116,1.63842 4.0274,1.63842 3.51481,0 6.26076,-2.83748 6.26076,-6.72758 0,-3.89925 -2.76425,-6.72758 -6.26076,-6.72758 -3.51482,0 -6.27908,2.82833 -6.27908,6.72758 v 12.64052 z m 17.42763,-9.94949 9.23554,-6.26077 c -1.1716,-1.88555 -3.26768,-3.15784 -5.74819,-3.15784 -3.97247,0 -6.72757,3.10292 -6.72757,6.75504 0,3.78026 2.90155,6.70012 6.94725,6.70012 3.65211,0 6.42552,-3.0297 6.5079,-6.46213 h -1.09838 c -0.0549,2.94731 -2.51712,5.45527 -5.6292,5.45527 -3.21276,0 -5.62919,-2.60864 -5.62919,-5.63834 0,-3.08461 2.3249,-5.80311 5.62919,-5.80311 1.7208,0 3.22192,0.75056 4.17385,1.93131 l -8.31108,5.6109 z m 23.67008,3.76195 v -7.87172 c 0,-3.1853 -2.28829,-5.30884 -5.18069,-5.30884 -2.8924,0 -5.16238,2.12354 -5.16238,5.30884 v 7.87172 h 1.00684 v -7.73442 c 0,-2.70019 1.88556,-4.43929 4.15554,-4.43929 2.26083,0 4.17385,1.7574 4.17385,4.43929 v 7.73442 z" inkscape:connector-curvature="0" /> </g> </g> </g> <g id="g16346" - transform="translate(1922.9892,-430.1329)"> + transform="translate(1848.9892,-430.1329)"> <rect width="24" height="24" x="-1060.9891" y="621.49512" id="ShowIECcode" - style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> </g> <flowRoot - transform="matrix(1.6473499,0,0,1.6473499,1002.9234,183.57576)" + transform="matrix(1.6473499,0,0,1.6473499,928.9234,183.57576)" id="flowRoot29856" xml:space="preserve" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0.01%;font-family:'Andale Mono';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:url(#linearGradient19976);fill-opacity:1;stroke:#547c1b;stroke-width:0.1061436;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"><flowRegion @@ -88085,20 +88933,20 @@ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:'Andale Mono';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:url(#linearGradient34167);fill-opacity:1;stroke:#547c1b;stroke-width:0.1061436;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /></flowRegion><flowPara id="flowPara29862" style="font-size:12px;line-height:1.25;fill:url(#linearGradient19974);fill-opacity:1;stroke:#547c1b;stroke-width:0.1061436;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">ST</flowPara></flowRoot> <g - transform="matrix(0.07159976,0,0,0.07159976,865.18029,195.95335)" + transform="matrix(0.07159976,0,0,0.07159976,791.18029,195.95335)" id="g2248"> <path d="m 144.80549,88.557517 c 0,39.134993 -31.76158,70.896673 -70.896401,70.896673 -39.135167,0 -70.8967476,-31.76168 -70.8967476,-70.896673 0,-39.134957 31.7615806,-70.896643 70.8967476,-70.896643 39.134821,0 70.896401,31.761686 70.896401,70.896643 z" id="path3190" - style="fill:#373737;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.61199999;marker:none;visibility:visible;display:inline;overflow:visible" + style="display:inline;overflow:visible;visibility:visible;fill:#373737;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.61199999;marker:none" inkscape:connector-curvature="0" /> <path - d="m 202.60774,194.21232 c 3.92622,3.92538 3.92622,10.29011 0,14.21632 l -9.21619,9.21617 c -3.92622,3.92705 -10.29105,3.92537 -14.21657,0 L 28.710589,67.179433 c -3.925514,-3.926213 -3.925514,-10.290947 0,-14.216321 l 9.216896,-9.217 c 3.925514,-3.925409 10.291051,-3.926213 14.216565,0 L 202.60774,194.21232 z" + d="m 202.60774,194.21232 c 3.92622,3.92538 3.92622,10.29011 0,14.21632 l -9.21619,9.21617 c -3.92622,3.92705 -10.29105,3.92537 -14.21657,0 L 28.710589,67.179433 c -3.925514,-3.926213 -3.925514,-10.290947 0,-14.216321 l 9.216896,-9.217 c 3.925514,-3.925409 10.291051,-3.926213 14.216565,0 z" id="path1329" style="fill:#373737;fill-opacity:1;stroke:none" inkscape:connector-curvature="0" /> <path - d="m 199.13799,197.60713 c 2.77615,2.77542 2.77615,7.27558 0,10.05159 l -6.51629,6.51626 c -2.77581,2.77661 -7.276,2.77542 -10.05146,0 L 76.185068,107.78914 c -2.775456,-2.77598 -2.775456,-7.27614 0,-10.051559 l 6.51664,-6.51685 c 2.775457,-2.775422 7.27635,-2.776016 10.051806,0 L 199.13799,197.60713 z" + d="m 199.13799,197.60713 c 2.77615,2.77542 2.77615,7.27558 0,10.05159 l -6.51629,6.51626 c -2.77581,2.77661 -7.276,2.77542 -10.05146,0 L 76.185068,107.78914 c -2.775456,-2.77598 -2.775456,-7.27614 0,-10.051559 l 6.51664,-6.51685 c 2.775457,-2.775422 7.27635,-2.776016 10.051806,0 z" id="path3180" style="fill:#483737;fill-opacity:1;stroke:none" inkscape:connector-curvature="0" /> @@ -88163,10 +89011,10 @@ style="opacity:0.47906979;fill:url(#linearGradient19984);stroke:none" inkscape:connector-curvature="0" /> <path - d="m 40.481863,36.421127 c 0,4.637476 -7.004387,8.396894 -15.644737,8.396894 -8.64035,0 -15.6447375,-3.759418 -15.6447375,-8.396894 0,-4.637476 7.0043875,-8.396894 15.6447375,-8.396894 8.64035,0 15.644737,3.759418 15.644737,8.396894 l 0,0 z" + d="m 40.481863,36.421127 c 0,4.637476 -7.004387,8.396894 -15.644737,8.396894 -8.64035,0 -15.6447375,-3.759418 -15.6447375,-8.396894 0,-4.637476 7.0043875,-8.396894 15.6447375,-8.396894 8.64035,0 15.644737,3.759418 15.644737,8.396894 z" transform="matrix(5.8942914,0,0,3.3456793,14.375906,106.05328)" id="path38874" - style="opacity:0.20454544;fill:url(#radialGradient19986);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" + style="display:inline;overflow:visible;visibility:visible;opacity:0.20454544;fill:url(#radialGradient19986);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none" inkscape:connector-curvature="0" /> <path d="m 33.301821,46.978562 c -9.767402,9.12081 -16.320903,21.668645 -17.675734,35.731277 1.240688,0.703541 2.578943,1.189258 3.973388,1.431588 -1.462001,0.254575 -2.855726,0.7577 -4.148685,1.519237 -0.03682,0.836171 -0.08765,1.667336 -0.08765,2.512584 0,6.713227 1.206722,13.165412 3.35985,19.136532 1.005258,0.25131 2.037067,0.37985 3.126122,0.37981 3.01568,1.2e-4 5.655655,-1.12712 7.91756,-3.38906 1.71152,-1.7115 2.843141,-3.54788 3.389066,-5.492626 0.492018,1.941876 1.470799,3.783386 3.009257,5.492626 2.513023,2.26193 5.410007,3.38917 8.677179,3.38906 3.015652,1.2e-4 5.655627,-1.12712 7.91756,-3.38906 1.942501,-1.9425 3.123298,-4.03851 3.564363,-6.28146 0.396759,2.24323 1.465161,4.33875 3.21377,6.28146 2.513013,2.26193 5.409978,3.38917 8.677178,3.38906 3.015634,1.2e-4 5.655609,-1.12712 7.91756,-3.38906 1.942464,-1.9425 3.12328,-4.03851 3.564363,-6.28146 0.39675,2.24323 1.465143,4.33875 3.21377,6.28146 1.916641,1.72516 4.072171,2.80444 6.42754,3.21377 -2.353966,0.40987 -4.511871,1.46044 -6.42754,3.18455 -2.261952,2.26193 -3.389207,5.1589 -3.389066,8.67718 -1.41e-4,3.01586 1.127105,5.78433 3.389066,8.29737 1.67533,1.50794 3.540523,2.50665 5.551057,3.00925 -2.010534,0.50265 -3.875736,1.50144 -5.551057,3.00926 -2.261952,2.26192 -3.389207,5.15888 -3.389066,8.67718 -2.8e-5,0.55508 0.04026,1.09806 0.116864,1.6361 7.878509,-1.10355 15.224518,-3.84968 21.707544,-7.85913 -0.51442,-0.73242 -1.11897,-1.4248 -1.840607,-2.07434 -1.53121,-1.70116 -3.236263,-2.81021 -5.112812,-3.35985 1.877708,-0.49434 3.580805,-1.5065 5.112812,-3.03847 1.942447,-1.94251 3.123267,-4.03852 3.564357,-6.28146 0.39674,2.24322 1.46513,4.33873 3.21377,6.28146 1.0539,0.94861 2.17329,1.69888 3.35985,2.24964 5.68063,-5.16305 10.29844,-11.49418 13.49784,-18.58144 -0.0907,-0.0862 -0.16871,-0.17812 -0.26295,-0.26294 -1.74982,-1.94402 -3.73007,-3.12412 -5.93086,-3.56436 2.20111,-0.39601 4.18081,-1.46377 5.93086,-3.21377 1.94245,-1.9425 3.12327,-4.03851 3.56437,-6.28146 0.10619,0.600471 0.26438,1.174027 0.46745,1.752962 0.70975,-3.394258 1.09955,-6.900044 1.16865,-10.488573 -0.8459,1.328779 -1.38142,2.84217 -1.6361,4.499278 -0.4509,-2.32135 -1.64011,-4.344882 -3.56437,-6.076947 -1.74982,-1.943995 -3.73007,-3.124115 -5.93086,-3.564363 2.20111,-0.395993 4.18081,-1.463755 5.93086,-3.21377 1.96791,-1.967943 3.16664,-4.092748 3.59358,-6.369107 -0.89039,-3.587266 -2.14063,-7.034293 -3.68123,-10.31328 -2.24302,-2.450543 -4.85202,-3.681068 -7.82991,-3.681227 -3.26724,1.61e-4 -6.16421,1.127407 -8.67718,3.389067 -1.76367,1.763651 -2.82533,3.929393 -3.21377,6.456755 -0.45088,-2.32134 -1.64008,-4.344863 -3.564357,-6.076946 -2.261979,-2.512974 -4.901951,-3.768715 -7.917556,-3.768876 -3.267238,1.61e-4 -6.164193,1.127407 -8.677179,3.389067 -2.261952,2.261975 -3.389207,5.158944 -3.389066,8.677178 -1.41e-4,-3.266922 -1.127386,-6.035395 -3.389067,-8.297369 -2.26197,-2.512974 -4.901926,-3.768715 -7.91756,-3.768876 -3.267191,1.61e-4 -6.164165,1.127407 -8.677178,3.389067 -2.261933,2.261975 -3.389179,5.158944 -3.389067,8.677178 -1.31e-4,-3.266922 -1.127357,-6.035395 -3.389066,-8.297369 -2.261924,-2.512974 -4.901908,-3.768715 -7.91756,-3.768876 -3.267172,1.61e-4 -6.164146,1.127407 -8.677179,3.389067 -1.561728,1.56176 -2.555075,3.448859 -3.038473,5.609489 -0.554554,-1.971366 -1.672824,-3.711198 -3.35985,-5.22968 -1.74975,-1.943977 -3.730039,-3.124105 -5.930866,-3.564363 2.201154,-0.395984 4.180892,-1.463737 5.930866,-3.21377 2.513051,-2.512966 3.768782,-5.281441 3.768875,-8.297369 -1.8e-5,-0.786771 -0.08796,-1.550369 -0.233728,-2.278855 z m 23.022278,27.667636 c 0.396759,2.243243 1.465161,4.338767 3.21377,6.281459 1.91665,1.725178 4.07218,2.804452 6.427539,3.21377 -2.353956,0.409885 -4.511852,1.460455 -6.427539,3.184554 -2.261933,2.261952 -3.389179,5.158921 -3.389067,8.677178 -1.31e-4,-3.266944 -1.127357,-6.035418 -3.389066,-8.297369 -1.749768,-1.943995 -3.730049,-3.124115 -5.930866,-3.564363 2.201145,-0.395993 4.180874,-1.463755 5.930866,-3.21377 1.942501,-1.942473 3.123298,-4.038501 3.564363,-6.281459 z m 23.372871,0 c 0.39675,2.243243 1.465143,4.338767 3.21377,6.281459 1.916641,1.725178 4.072171,2.804452 6.42754,3.21377 -2.353966,0.409885 -4.511871,1.460455 -6.42754,3.184554 -1.763633,1.763633 -2.825313,3.929384 -3.21377,6.456756 -0.450862,-2.32135 -1.640065,-4.344882 -3.564363,-6.076947 -1.749805,-1.943995 -3.730057,-3.124115 -5.930866,-3.564363 2.201136,-0.395993 4.180855,-1.463755 5.930866,-3.21377 1.942464,-1.942473 3.12328,-4.038501 3.564363,-6.281459 z m 23.37286,0 c 0.39674,2.243243 1.46513,4.338767 3.21377,6.281459 1.91662,1.725178 4.07216,2.804452 6.42754,3.21377 -2.35397,0.409885 -4.51189,1.460455 -6.42754,3.184554 -1.76367,1.763633 -2.82533,3.929384 -3.21377,6.456756 -0.45088,-2.32135 -1.64008,-4.344882 -3.564355,-6.076947 -1.749814,-1.943995 -3.730063,-3.124115 -5.930862,-3.564363 2.201126,-0.395993 4.180833,-1.463755 5.930862,-3.21377 1.942445,-1.942473 3.123265,-4.038501 3.564355,-6.281459 z m -69.91409,0.788835 c 0.492018,1.941883 1.470799,3.783394 3.009257,5.492624 1.916669,1.725178 4.072181,2.804452 6.42754,3.21377 -2.353947,0.409885 -4.511834,1.460455 -6.42754,3.184554 -1.561728,1.561744 -2.555075,3.448853 -3.038473,5.609489 -0.554554,-1.97137 -1.672824,-3.711214 -3.35985,-5.22968 -1.74975,-1.943995 -3.730039,-3.124115 -5.930866,-3.564363 2.201154,-0.395993 4.180892,-1.463755 5.930866,-3.21377 1.71152,-1.71148 2.843141,-3.547877 3.389066,-5.492624 z m 69.91409,22.584037 c 0.39674,2.24323 1.46513,4.33875 3.21377,6.28146 1.91662,1.72516 4.07216,2.80444 6.42754,3.21377 -2.35397,0.40987 -4.51189,1.46044 -6.42754,3.18455 -1.76367,1.76361 -2.82533,3.92937 -3.21377,6.45676 -0.45088,-2.32136 -1.64008,-4.3449 -3.564355,-6.07695 -1.749814,-1.94402 -3.730063,-3.12412 -5.930862,-3.56436 2.201126,-0.39601 4.180833,-1.46377 5.930862,-3.21377 1.942445,-1.9425 3.123265,-4.03851 3.564355,-6.28146 z" @@ -88175,12 +89023,12 @@ inkscape:connector-curvature="0" /> </g> <g - transform="translate(1990.8886,-460.22727)" + transform="translate(1916.8886,-460.22727)" id="g16694"> <g id="g16349"> <rect - style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" id="Stop" y="651.58948" x="-1060.8887" @@ -88194,10 +89042,10 @@ transform="matrix(0.06159947,0,0,0.06159947,104.19067,516.14489)" id="g3172"> <path - d="M 305.7143,160.59776 443.33253,217.6011 500.33586,355.21934 443.33252,492.83756 305.71429,549.8409 168.09606,492.83756 111.09273,355.21932 168.09607,217.6011 305.7143,160.59776 z" - transform="matrix(0.9238795,-0.3826834,0.3826834,0.9238795,-112.54277,144.03126)" + d="M 305.7143,160.59776 443.33253,217.6011 500.33586,355.21934 443.33252,492.83756 305.71429,549.8409 168.09606,492.83756 111.09273,355.21932 168.09607,217.6011 Z" + transform="rotate(-22.499999,305.77562,354.91104)" id="path2388" - style="fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:30.00000191;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + style="display:inline;overflow:visible;visibility:visible;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:30.00000191;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" inkscape:connector-curvature="0" /> <text x="160.73796" @@ -88270,83 +89118,7 @@ id="g1161" transform="matrix(0.5724346,-0.3079575,0.3079575,0.5724346,131.42904,887.47867)" /> <g - transform="translate(1494.788,-309.831)" - id="g16313"> - <rect - width="24" - height="24" - x="-1060.788" - y="501.19318" - id="ImportDEF" - style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> - <g - transform="matrix(0.08604141,0,0,0.08604141,-1059.9338,502.14288)" - id="g74019"> - <text - x="-13.388169" - y="239.68744" - transform="scale(0.9460798,1.0569933)" - id="text10478" - xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:184.97383118px;line-height:0%;font-family:'Bitstream Vera Sans Mono';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"><tspan - x="-13.388169" - y="239.68744" - id="tspan10480">D</tspan></text> - <text - x="80.957664" - y="239.68744" - transform="scale(0.9460798,1.0569933)" - id="text10482" - xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:184.97383118px;line-height:0%;font-family:'Bitstream Vera Sans Mono';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"><tspan - x="80.957664" - y="239.68744" - id="tspan10484">E</tspan></text> - <text - x="170.1553" - y="239.68744" - transform="scale(0.9460798,1.0569933)" - id="text10486" - xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:184.97383118px;line-height:0%;font-family:'Bitstream Vera Sans Mono';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"><tspan - x="170.1553" - y="239.68744" - id="tspan10488">F</tspan></text> - <path - d="m -648.96875,271.71875 0,3.09375 c 0.57664,0.33689 1.24432,0.6608 1.96875,0.9375 l 0,-2.03125 0.5625,0 c 0.77903,0 1.32495,0.26729 1.65625,0.8125 0.2599,0.42768 0.41193,1.10309 0.46875,2 0.6621,0.15089 1.34221,0.30361 2.0625,0.40625 -0.0474,-1.77538 -0.39095,-3.09535 -1.0625,-3.90625 -0.7208,-0.87535 -1.89263,-1.3125 -3.53125,-1.3125 l -2.125,0 z m 7.21875,0 0,5.28125 c 1.19369,0.14822 2.4474,0.21875 3.75,0.21875 0.71331,0 1.40981,-0.0479 2.09375,-0.0937 l 0,-1.03125 -3.84375,0 0,-2.4375 4.25,0 0,-1.9375 -6.25,0 z m 6.71875,0 0,5.34375 c 1.85549,-0.17944 3.57507,-0.49786 5.0625,-0.96875 l -3.0625,0 0,-2.4375 4.25,0 0,-1.9375 -6.25,0 z" - transform="matrix(12.723869,0,0,12.723869,8256.4217,-3346.4426)" - id="path40832" - style="opacity:0.31627909;fill:url(#linearGradient16526);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:13;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - inkscape:connector-curvature="0" /> - <g - transform="matrix(5.0027792,0,0,5.0027792,-215.17835,-168.84627)" - id="g39828"> - <circle - sodipodi:ry="34.144001" - sodipodi:rx="34.144001" - sodipodi:cy="110.081" - sodipodi:cx="100.287" - cx="100.287" - cy="110.081" - r="34.144001" - transform="matrix(0.3316761,0,0,0.3316761,48.927852,9.2318583)" - id="circle29" - style="fill:#84c225;fill-rule:evenodd;stroke:#5d9d35;stroke-width:2.82220006" /> - <path - d="m 84.515333,38.943636 0,3.981494 3.981494,0 0,4.799639 -3.981494,0 0,3.981494 -4.782372,0 0,-3.981494 -3.981494,0 0,-4.799639 3.981494,0 0,-3.981494 4.782372,0" - id="text1332" - style="font-size:12px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans" - inkscape:connector-curvature="0" /> - <path - d="m 82.190677,35.644078 c 5.025924,0 9.194867,3.673581 9.969229,8.481465 -6.921917,-5.82623 -17.958314,0.09291 -16.467662,9.346307 -2.201037,-1.852678 -3.600446,-4.62745 -3.600446,-7.728889 0,-5.576508 4.522377,-10.098883 10.098879,-10.098883 z" - id="path33" - style="fill:url(#linearGradient16528);fill-opacity:1;fill-rule:evenodd" - inkscape:connector-curvature="0" /> - </g> - </g> - </g> - <g - transform="translate(1566.788,-339.84989)" + transform="translate(1492.788,-339.84989)" id="g16328"> <rect width="24" @@ -88354,7 +89126,7 @@ x="-1060.788" y="531.2121" id="ImportSVG" - style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> <g transform="matrix(0.08604141,0,0,0.08604141,-1060.0447,532.23602)" id="g99155"> @@ -88362,23 +89134,19 @@ transform="matrix(1.824846,0,0,1.824846,58.301023,-6.9917586)" id="g2837"> <g - transform="matrix(0.980201,0,0,0.980201,-311.29806,-163.38411)" + transform="matrix(0.980201,0,0,0.980201,-311.29806,-227.07336)" id="g7207" style="fill:url(#linearGradient16530);fill-opacity:1"> <path - d="m 379.91222,232.49347 -16.5206,79.7519 -13.686,0 -16.5206,-79.7519 13.6894,0 9.67437,46.711 9.67408,-46.711 13.6894,0 -5e-5,0 z m -86.6104,39.8753 c -4.22844,-4.22731 -6.84397,-10.067 -6.84397,-16.5164 0,-12.8985 10.4624,-23.3589 23.3637,-23.3586 12.901,-2.9e-4 23.3634,10.4601 23.3634,23.3586 l -13.686,0 c 0,-5.34274 -4.33361,-9.6755 -9.67748,-9.6755 -5.34388,0 -9.67777,4.33276 -9.67777,9.6755 0,2.66882 1.08142,5.08564 2.83011,6.83632 l 0.005,0 c 1.75096,1.7521 4.17062,2.83578 6.84312,2.83606 l 0,0.003 c 6.45052,0 12.291,2.61581 16.5192,6.84312 l 5.6e-4,-5.6e-4 c 4.22816,4.22731 6.84369,10.067 6.84369,16.5164 0,12.8985 -10.4624,23.3586 -23.3634,23.3586 -12.9013,0 -23.3637,-10.4601 -23.3637,-23.3586 l 13.686,0 c 0,5.34274 4.33389,9.6755 9.67777,9.6755 5.34388,0 9.67748,-4.33276 9.67748,-9.6755 0,-2.66882 -1.08142,-5.08564 -2.82983,-6.83632 l -0.005,0 c -1.75124,-1.7521 -4.1709,-2.83606 -6.84312,-2.83606 l 0,-0.003 c -6.45052,0 -12.291,-2.61581 -16.5192,-6.84312 l -5.7e-4,5.7e-4 0,0 z m 109.977,-6.83915 23.3637,0 0,23.3555 0.003,0 c 0,12.8993 -10.4632,23.3603 -23.3654,23.3603 -12.9013,0 -23.3643,-10.4598 -23.3651,-23.3586 l 0,-0.002 0,-33.031 -0.003,0 c 0,-12.8993 10.4632,-23.3606 23.3651,-23.3606 12.9022,0 23.3654,10.4613 23.3654,23.3606 l -13.6894,0 c 0,-5.34104 -4.33219,-9.67238 -9.67437,-9.67238 -5.34189,0 -9.67408,4.33134 -9.67408,9.67238 l 0,33.0327 0,0 c 8.5e-4,5.34019 4.33276,9.6704 9.67437,9.67068 5.34076,-2.9e-4 9.67238,-4.32964 9.67408,-9.66898 l 0,-0.003 0,-9.66898 -9.67437,0 0,-13.6865 7e-5,-1e-5 z" + d="m 379.91222,232.49347 -16.5206,79.7519 h -13.686 l -16.5206,-79.7519 h 13.6894 l 9.67437,46.711 9.67408,-46.711 h 13.6894 z m -86.6104,39.8753 c -4.22844,-4.22731 -6.84397,-10.067 -6.84397,-16.5164 0,-12.8985 10.4624,-23.3589 23.3637,-23.3586 12.901,-2.9e-4 23.3634,10.4601 23.3634,23.3586 h -13.686 c 0,-5.34274 -4.33361,-9.6755 -9.67748,-9.6755 -5.34388,0 -9.67777,4.33276 -9.67777,9.6755 0,2.66882 1.08142,5.08564 2.83011,6.83632 h 0.005 c 1.75096,1.7521 4.17062,2.83578 6.84312,2.83606 v 0.003 c 6.45052,0 12.291,2.61581 16.5192,6.84312 l 5.6e-4,-5.6e-4 c 4.22816,4.22731 6.84369,10.067 6.84369,16.5164 0,12.8985 -10.4624,23.3586 -23.3634,23.3586 -12.9013,0 -23.3637,-10.4601 -23.3637,-23.3586 h 13.686 c 0,5.34274 4.33389,9.6755 9.67777,9.6755 5.34388,0 9.67748,-4.33276 9.67748,-9.6755 0,-2.66882 -1.08142,-5.08564 -2.82983,-6.83632 h -0.005 c -1.75124,-1.7521 -4.1709,-2.83606 -6.84312,-2.83606 v -0.003 c -6.45052,0 -12.291,-2.61581 -16.5192,-6.84312 l -5.7e-4,5.7e-4 v 0 z m 109.977,-6.83915 h 23.3637 v 23.3555 h 0.003 c 0,12.8993 -10.4632,23.3603 -23.3654,23.3603 -12.9013,0 -23.3643,-10.4598 -23.3651,-23.3586 v -0.002 -33.031 h -0.003 c 0,-12.8993 10.4632,-23.3606 23.3651,-23.3606 12.9022,0 23.3654,10.4613 23.3654,23.3606 h -13.6894 c 0,-5.34104 -4.33219,-9.67238 -9.67437,-9.67238 -5.34189,0 -9.67408,4.33134 -9.67408,9.67238 v 33.0327 0 c 8.5e-4,5.34019 4.33276,9.6704 9.67437,9.67068 5.34076,-2.9e-4 9.67238,-4.32964 9.67408,-9.66898 v -0.003 -9.66898 h -9.67437 v -13.6865 l 7e-5,-1e-5 z" id="SVG" - style="font-size:103.41152191px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.55906028px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans Mono;-inkscape-font-specification:Bitstream Vera Sans" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:103.41152191px;line-height:125%;font-family:'Bitstream Vera Sans Mono';-inkscape-font-specification:'Bitstream Vera Sans';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.55906028px;marker:none;enable-background:accumulate" inkscape:connector-curvature="0" /> </g> <g - transform="matrix(2.7414802,0,0,2.7414802,-149.86436,-88.69471)" + transform="matrix(2.7414802,0,0,2.7414802,-149.86436,-12.267588)" id="g99162"> <circle - sodipodi:ry="34.144001" - sodipodi:rx="34.144001" - sodipodi:cy="110.081" - sodipodi:cx="100.287" cx="100.287" cy="110.081" r="34.144001" @@ -88386,21 +89154,11 @@ id="circle99164" style="fill:#84c225;fill-rule:evenodd;stroke:#5d9d35;stroke-width:2.82220006" /> <path - d="m 84.515333,38.943636 0,3.981494 3.981494,0 0,4.799639 -3.981494,0 0,3.981494 -4.782372,0 0,-3.981494 -3.981494,0 0,-4.799639 3.981494,0 0,-3.981494 4.782372,0" + d="m 84.515333,38.943636 v 3.981494 h 3.981494 v 4.799639 h -3.981494 v 3.981494 H 79.732961 V 47.724769 H 75.751467 V 42.92513 h 3.981494 v -3.981494 h 4.782372" id="path99166" - style="font-size:12px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans" - inkscape:connector-curvature="0" /> - <path - d="m 82.190677,35.644078 c 5.025924,0 9.194867,3.673581 9.969229,8.481465 -6.921917,-5.82623 -17.958314,0.09291 -16.467662,9.346307 -2.201037,-1.852678 -3.600446,-4.62745 -3.600446,-7.728889 0,-5.576508 4.522377,-10.098883 10.098879,-10.098883 z" - id="path99168" - style="fill:url(#linearGradient16532);fill-opacity:1;fill-rule:evenodd" + style="font-style:normal;font-weight:normal;font-size:12px;font-family:'Bitstream Vera Sans';display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none" inkscape:connector-curvature="0" /> </g> - <path - d="m -7.6413571,64.595718 c -12.6458699,-2.79e-4 -22.8785379,10.235735 -22.8787479,22.87875 0,2.058931 0.361877,3.984965 0.871572,5.883108 10.447356,5.505542 24.2667759,9.838644 39.874396,12.419894 -0.5633901,-0.71601 -1.0995101,-1.53543 -1.7431401,-2.17893 -4.1445,-4.14359 -9.80135,-6.754748 -16.12408,-6.754678 -2.6195899,-2.79e-4 -5.0382399,-1.115193 -6.7546799,-2.832608 -1.71406,-1.716019 -2.6145,-3.920677 -2.61471,-6.536786 0,-5.236959 4.13125,-9.587286 9.3693899,-9.587286 5.23808,0 9.58708,4.350397 9.58729,9.587286 l 13.2914601,0 c 0,-12.643155 -10.2331501,-22.879099 -22.8787501,-22.87875 z m 22.8787501,0 8.93361,42.924892 c 4.41245,0.4072 8.89519,0.52225 13.50936,0.65333 l -8.93361,-43.578571 -13.50936,0 z m 32.46604,0 -9.1515,43.578572 c 1.80241,0.0418 3.6196,0.21754 5.44732,0.21754 2.70424,0 5.41462,-0.12132 8.06204,-0.21754 l 8.93361,-43.578572 -13.29147,0 z m 36.38811,0 c -12.64643,0 -23.0965,10.234759 -23.09664,22.87875 l 0,20.264042 c 4.64045,-0.36467 9.12793,-0.87973 13.50935,-1.52526 l 0,-18.738782 c 0,-5.235285 4.3511,-9.587355 9.58729,-9.587286 5.2364,0 9.36953,4.351861 9.36939,9.587286 l 13.509357,0 c 0,-12.643922 -10.231967,-22.87882 -22.878747,-22.87875 z m 0,32.248144 0,7.626248 c 8.34582,-1.69308 16.057407,-3.69748 22.878747,-6.318891 l 0,-1.307357 -22.878747,0 z" - id="path99160" - style="opacity:0.31627909;fill:url(#linearGradient16534);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:13;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - inkscape:connector-curvature="0" /> </g> </g> </g> @@ -89273,60 +90031,60 @@ id="g19199" transform="matrix(5.3097304e-2,0,0,5.3097304e-2,247.38564,260.36282)"> <circle - sodipodi:ry="226" - sodipodi:rx="226" - sodipodi:cy="0" - sodipodi:cx="0" style="fill:#000000" id="circle15691" transform="matrix(1,0,0,-1,1028.5714,378.07647)" r="226" cy="0" - cx="0" /> + cx="0" + sodipodi:ry="226" + sodipodi:rx="226" + sodipodi:cy="0" + sodipodi:cx="0" /> <circle - sodipodi:ry="169.5" - sodipodi:rx="169.5" - sodipodi:cy="0" - sodipodi:cx="0" style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1" id="circle15939" transform="matrix(1,0,0,-1,1028.5714,378.07647)" r="169.5" cy="0" - cx="0" /> + cx="0" + sodipodi:ry="169.5" + sodipodi:rx="169.5" + sodipodi:cy="0" + sodipodi:cx="0" /> <circle - sodipodi:ry="106.5" - sodipodi:rx="106.5" - sodipodi:cy="0" - sodipodi:cx="0" style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:1" id="circle15943" transform="matrix(1.0610323,0,0,-1.0610323,1028.5714,378.07647)" r="106.5" cy="0" - cx="0" /> - <circle + cx="0" sodipodi:ry="106.5" sodipodi:rx="106.5" sodipodi:cy="0" - sodipodi:cx="0" + sodipodi:cx="0" /> + <circle style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1" id="circle18349" transform="matrix(0.5305159,0,0,-0.5305159,1028.5714,378.07647)" r="106.5" cy="0" - cx="0" /> - <circle + cx="0" sodipodi:ry="106.5" sodipodi:rx="106.5" sodipodi:cy="0" - sodipodi:cx="0" + sodipodi:cx="0" /> + <circle style="fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1;stroke-opacity:1" id="circle18347" transform="matrix(0.1768394,0,0,-0.1768394,1028.5714,378.07647)" r="106.5" cy="0" - cx="0" /> + cx="0" + sodipodi:ry="106.5" + sodipodi:rx="106.5" + sodipodi:cy="0" + sodipodi:cx="0" /> </g> <text style="font-style:normal;font-weight:normal;font-size:20px;line-height:0%;font-family:'Bitstream Vera Sans';fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" @@ -89947,24 +90705,23 @@ d="m -890.18653,431.39368 -3.78125,2.25 -3.625,2.15625 3.78125,2.28125 3.59375,2.15625 0,-3.40625 48.3125,0 1,0 0,-2 -1,0 -48.3125,0 0.0312,-3.4375 z" id="counter2_rotating" inkscape:connector-curvature="0" /> - <path - sodipodi:type="arc" + <ellipse style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible" id="counter2_center" - sodipodi:cx="91.923882" + transform="matrix(0.5324675,0,0,0.5324675,-889.75288,329.57107)" + d="m 96.848375,199.42668 a 4.9244938,4.8613591 0 0 1 -4.924493,4.86136 4.9244938,4.8613591 0 0 1 -4.924494,-4.86136 4.9244938,4.8613591 0 0 1 4.924494,-4.86136 4.9244938,4.8613591 0 0 1 4.924493,4.86136 z" + sodipodi:type="arc" + sodipodi:ry="4.8613591" + sodipodi:rx="4.9244938" sodipodi:cy="199.42668" - sodipodi:rx="4.9244938" - sodipodi:ry="4.8613591" - d="m 96.848375,199.42668 a 4.9244938,4.8613591 0 0 1 -4.924493,4.86136 4.9244938,4.8613591 0 0 1 -4.924494,-4.86136 4.9244938,4.8613591 0 0 1 4.924494,-4.86136 4.9244938,4.8613591 0 0 1 4.924493,4.86136 z" - transform="matrix(0.5324675,0,0,0.5324675,-889.75288,329.57107)" /> + sodipodi:cx="91.923882" /> </g> <text x="73.295929" y="121.52582" id="text16266" xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - sodipodi:linespacing="0%"><tspan + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"><tspan sodipodi:role="line" id="tspan16268" x="73.295929" @@ -90963,7 +91720,7 @@ </g> <g id="g16550" - transform="translate(1727.0897,-400.03854)"> + transform="translate(1653.0897,-400.03854)"> <g id="g16553"> <rect @@ -90972,7 +91729,7 @@ x="-1061.0897" y="591.4007" id="ShowMaster" - style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> </g> <g id="g16589" @@ -90987,7 +91744,7 @@ y="-2666.4033" transform="matrix(0.926956,0.375171,0,1,0,0)" id="rect16561" - style="fill:#3d993d;fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" /> + style="display:inline;overflow:visible;visibility:visible;fill:#3d993d;fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" /> <rect width="593.28876" height="420.25934" @@ -90995,7 +91752,7 @@ y="-1753.9264" transform="matrix(0.929224,-0.369517,0,1,0,0)" id="rect16563" - style="fill:url(#linearGradient16607);fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" /> + style="display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient16607);fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" /> <rect width="995.74323" height="593.25934" @@ -91003,39 +91760,39 @@ y="-4162.4521" transform="matrix(0.926288,0.376817,-0.92919,0.369603,0,0)" id="rect16565" - style="fill:url(#linearGradient16609);fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" /> + style="display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient16609);fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" /> <g transform="matrix(1,0.428039,0,1,508,-889.8732)" id="g16567"> <path - d="m -171.2884,-1442.3646 -22.25763,0 c -39.75086,0 -68.40846,33.3509 -68.40846,73.8129 0,40.6753 28.72871,74.0973 68.40846,74.0973 l 22.25763,0 0,-35.5554 -15.43101,0 c -20.76431,0 -36.83532,-12.5154 -36.83532,-38.5419 0,-26.0265 16.07101,-38.2576 36.83532,-38.2576 l 15.43101,0 0,-35.5553 z" + d="m -171.2884,-1442.3646 h -22.25763 c -39.75086,0 -68.40846,33.3509 -68.40846,73.8129 0,40.6753 28.72871,74.0973 68.40846,74.0973 h 22.25763 v -35.5554 h -15.43101 c -20.76431,0 -36.83532,-12.5154 -36.83532,-38.5419 0,-26.0265 16.07101,-38.2576 36.83532,-38.2576 h 15.43101 z" id="path16569" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none" inkscape:connector-curvature="0" /> <path - d="m -103.37772,-1294.4544 0,-99.0572 c 0,-11.0221 5.831076,-17.991 14.791019,-17.991 9.102165,0 15.07546,7.1111 15.07546,17.991 l 0,13.7244 -23.110964,0 0,33.422 23.110964,0 0,51.9108 36.977543,0 0,-97.3505 c 0,-31.7154 -21.048755,-53.1197 -52.053003,-53.1197 -30.933139,0 -51.768559,21.4754 -51.768559,53.1197 l 0,97.3505 36.97754,0 z" + d="m -103.37772,-1294.4544 v -99.0572 c 0,-11.0221 5.831076,-17.991 14.791019,-17.991 9.102165,0 15.07546,7.1111 15.07546,17.991 v 13.7244 h -23.110964 v 33.422 h 23.110964 v 51.9108 h 36.977543 v -97.3505 c 0,-31.7154 -21.048755,-53.1197 -52.053003,-53.1197 -30.933139,0 -51.768559,21.4754 -51.768559,53.1197 v 97.3505 z" id="path16571" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none" inkscape:connector-curvature="0" /> <path - d="m 34.576962,-1294.4544 0,-86.755 0,0 34.346449,65.9907 c 9.67105,18.8443 16.711005,23.3243 26.239834,23.3243 9.244385,0 19.768765,-8.0355 19.768765,-21.6177 l 0,-128.8525 -36.977545,0 0,78.0795 -0.568885,0 -32.853125,-65.2085 c -5.475521,-10.8088 -12.87103,-15.431 -25.386506,-15.431 -12.4443653,0 -21.5465298,8.3911 -21.5465298,20.1243 l 0,130.3459 36.9775428,0 z" + d="m 34.576962,-1294.4544 v -86.755 0 l 34.346449,65.9907 c 9.67105,18.8443 16.711005,23.3243 26.239834,23.3243 9.244385,0 19.768765,-8.0355 19.768765,-21.6177 v -128.8525 H 77.954465 v 78.0795 H 77.38558 l -32.853125,-65.2085 c -5.475521,-10.8088 -12.87103,-15.431 -25.386506,-15.431 -12.4443653,0 -21.5465298,8.3911 -21.5465298,20.1243 v 130.3459 z" id="path16573" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none" inkscape:connector-curvature="0" /> <path - d="m 252.34055,-1353.787 9.40576,-1.1015 c 6.66579,-8.0217 12.00419,-12.0325 16.0152,-12.0326 2.71141,10e-5 4.0672,1.1016 4.06735,3.3047 -1.5e-4,2.5422 -2.14681,4.9713 -6.43997,7.2873 -3.33312,1.8643 -6.6096,3.1071 -9.82944,3.7285 -1.46891,3.3895 -2.93767,6.8072 -4.4063,10.2531 -2.25977,4.5193 -4.60415,6.7789 -7.03313,6.7789 -0.56504,0 -1.35591,-0.028 -2.37262,-0.085 -1.01697,-0.057 -1.75135,-0.113 -2.20315,-0.1695 l -1.01684,-0.5084 c 0.11286,-1.2993 1.75109,-4.0108 4.91472,-8.1347 2.59845,-3.333 4.8016,-5.9315 6.60945,-7.7958 l -8.98207,1.1016 c -11.01587,18.9245 -22.28582,32.9625 -33.80988,42.114 -14.3488,11.4677 -31.01363,17.2015 -49.99455,17.2015 -7.45685,0 -13.72735,-0.9885 -18.81151,-2.9657 -7.23087,-2.8246 -10.84629,-7.3721 -10.84627,-13.6426 -2e-5,-2.1467 0.67787,-3.9261 2.03367,-5.3384 1.41226,-1.4688 3.16348,-2.2031 5.25367,-2.2032 1.41225,10e-5 2.62681,0.6215 3.64367,1.8642 1.0733,1.1864 1.60997,2.5139 1.60999,3.9827 -2e-5,1.2428 -0.42371,2.4573 -1.27104,3.6436 -0.90389,1.3558 -1.94897,2.0337 -3.13526,2.0337 -1.86422,0 -3.58719,-0.5649 -5.16892,-1.6947 1.69471,8.1912 10.42256,12.2868 26.18358,12.2868 11.75008,0 22.20091,-2.8811 31.35252,-8.6432 7.23077,-4.5757 14.57459,-11.6371 22.03149,-21.1841 6.38339,-8.9255 12.76686,-17.8229 19.15046,-26.692 -10.90287,0.6215 -21.32545,2.6551 -31.26778,6.101 -6.83549,2.3162 -9.94249,3.4743 -9.32102,3.4742 l -0.59315,0 -0.6779,-1.0168 0.76263,-1.0168 c 10.39427,-5.3101 24.5735,-8.5584 42.53774,-9.7447 5.47951,-7.2873 13.95315,-16.7213 25.42096,-28.302 12.37138,-12.5409 21.69238,-20.7604 27.96305,-24.6584 l 1.10158,-0.2542 0.67789,0.7626 -0.33895,0.9321 c -1.63841,1.9209 -4.03927,4.1805 -7.2026,6.779 -3.95453,3.2765 -6.46838,5.4232 -7.54155,6.4399 -11.80677,11.1854 -21.29725,23.5569 -28.47148,37.1146 m 27.11569,-9.321 c -1.5e-4,-1.0167 -0.50857,-1.5252 -1.52526,-1.5252 -1.86435,0 -4.0675,1.1581 -6.60944,3.4742 -2.14681,1.9207 -3.81329,3.8979 -4.99946,5.9315 1.97704,-0.3954 4.49089,-1.3839 7.54155,-2.9658 3.72825,-1.8641 5.59246,-3.5023 5.59261,-4.9147 m -34.31829,-48.3845 c -13.67094,10e-5 -26.57912,2.6269 -38.72459,7.8805 -15.59159,6.7225 -23.38734,16.0435 -23.38728,27.963 -6e-5,4.5759 2.4008,8.0501 7.2026,10.4226 3.72834,1.9208 8.13463,2.8811 13.2189,2.8811 7.68269,0 16.43879,-2.3161 26.26832,-6.9484 11.46756,-5.4231 17.20139,-11.5241 17.20152,-18.3031 -1.3e-4,-3.0504 -1.24293,-5.4231 -3.72841,-7.1179 -2.14678,-1.4687 -4.77361,-2.203 -7.8805,-2.2031 -13.1625,1e-4 -26.04244,5.6209 -38.63985,16.8625 -1.80779,1.9773 -4.60409,4.7736 -8.38892,8.3889 l -0.76263,0.085 -0.59315,-0.6779 0.25421,-0.9321 c 2.88097,-5.8185 9.9141,-11.6371 21.09939,-17.4557 10.67671,-5.5926 19.51754,-8.3889 26.52253,-8.389 3.61531,10e-5 6.75056,0.8193 9.40576,2.4574 3.16337,1.9208 4.74512,4.6041 4.74524,8.05 -1.2e-4,7.9653 -5.79045,14.8854 -17.37099,20.7604 -9.94251,5.0843 -19.32001,7.6264 -28.13252,7.6263 -5.81865,10e-5 -10.78986,-1.158 -14.91363,-3.4742 -5.08425,-2.8245 -7.62635,-6.9483 -7.62629,-12.3715 -6e-5,-4.8582 1.27099,-9.095 3.81315,-12.7105 8.86902,-12.6539 23.58491,-20.7321 44.14773,-24.2347 9.20792,-1.5251 26.69187,-2.2877 52.45191,-2.2878 6.43981,10e-5 16.07152,0.057 28.89515,0.1694 12.87975,0.057 22.51146,0.085 28.89516,0.085 5.19695,10e-5 9.12307,-0.5648 11.77837,-1.6948 1.86398,-0.7342 5.08396,-2.8526 9.65997,-6.3552 l 0.84736,-0.3389 0.9321,1.1863 -0.25421,0.8473 c -9.32124,10.0556 -24.77152,15.0832 -46.35087,15.0831 -7.90893,10e-5 -19.6873,-0.8755 -35.33514,-2.6268 -15.64815,-1.7511 -27.39827,-2.6267 -35.25039,-2.6268" + d="m 252.34055,-1353.787 9.40576,-1.1015 c 6.66579,-8.0217 12.00419,-12.0325 16.0152,-12.0326 2.71141,10e-5 4.0672,1.1016 4.06735,3.3047 -1.5e-4,2.5422 -2.14681,4.9713 -6.43997,7.2873 -3.33312,1.8643 -6.6096,3.1071 -9.82944,3.7285 -1.46891,3.3895 -2.93767,6.8072 -4.4063,10.2531 -2.25977,4.5193 -4.60415,6.7789 -7.03313,6.7789 -0.56504,0 -1.35591,-0.028 -2.37262,-0.085 -1.01697,-0.057 -1.75135,-0.113 -2.20315,-0.1695 l -1.01684,-0.5084 c 0.11286,-1.2993 1.75109,-4.0108 4.91472,-8.1347 2.59845,-3.333 4.8016,-5.9315 6.60945,-7.7958 l -8.98207,1.1016 c -11.01587,18.9245 -22.28582,32.9625 -33.80988,42.114 -14.3488,11.4677 -31.01363,17.2015 -49.99455,17.2015 -7.45685,0 -13.72735,-0.9885 -18.81151,-2.9657 -7.23087,-2.8246 -10.84629,-7.3721 -10.84627,-13.6426 -2e-5,-2.1467 0.67787,-3.9261 2.03367,-5.3384 1.41226,-1.4688 3.16348,-2.2031 5.25367,-2.2032 1.41225,10e-5 2.62681,0.6215 3.64367,1.8642 1.0733,1.1864 1.60997,2.5139 1.60999,3.9827 -2e-5,1.2428 -0.42371,2.4573 -1.27104,3.6436 -0.90389,1.3558 -1.94897,2.0337 -3.13526,2.0337 -1.86422,0 -3.58719,-0.5649 -5.16892,-1.6947 1.69471,8.1912 10.42256,12.2868 26.18358,12.2868 11.75008,0 22.20091,-2.8811 31.35252,-8.6432 7.23077,-4.5757 14.57459,-11.6371 22.03149,-21.1841 6.38339,-8.9255 12.76686,-17.8229 19.15046,-26.692 -10.90287,0.6215 -21.32545,2.6551 -31.26778,6.101 -6.83549,2.3162 -9.94249,3.4743 -9.32102,3.4742 h -0.59315 l -0.6779,-1.0168 0.76263,-1.0168 c 10.39427,-5.3101 24.5735,-8.5584 42.53774,-9.7447 5.47951,-7.2873 13.95315,-16.7213 25.42096,-28.302 12.37138,-12.5409 21.69238,-20.7604 27.96305,-24.6584 l 1.10158,-0.2542 0.67789,0.7626 -0.33895,0.9321 c -1.63841,1.9209 -4.03927,4.1805 -7.2026,6.779 -3.95453,3.2765 -6.46838,5.4232 -7.54155,6.4399 -11.80677,11.1854 -21.29725,23.5569 -28.47148,37.1146 m 27.11569,-9.321 c -1.5e-4,-1.0167 -0.50857,-1.5252 -1.52526,-1.5252 -1.86435,0 -4.0675,1.1581 -6.60944,3.4742 -2.14681,1.9207 -3.81329,3.8979 -4.99946,5.9315 1.97704,-0.3954 4.49089,-1.3839 7.54155,-2.9658 3.72825,-1.8641 5.59246,-3.5023 5.59261,-4.9147 m -34.31829,-48.3845 c -13.67094,10e-5 -26.57912,2.6269 -38.72459,7.8805 -15.59159,6.7225 -23.38734,16.0435 -23.38728,27.963 -6e-5,4.5759 2.4008,8.0501 7.2026,10.4226 3.72834,1.9208 8.13463,2.8811 13.2189,2.8811 7.68269,0 16.43879,-2.3161 26.26832,-6.9484 11.46756,-5.4231 17.20139,-11.5241 17.20152,-18.3031 -1.3e-4,-3.0504 -1.24293,-5.4231 -3.72841,-7.1179 -2.14678,-1.4687 -4.77361,-2.203 -7.8805,-2.2031 -13.1625,1e-4 -26.04244,5.6209 -38.63985,16.8625 -1.80779,1.9773 -4.60409,4.7736 -8.38892,8.3889 l -0.76263,0.085 -0.59315,-0.6779 0.25421,-0.9321 c 2.88097,-5.8185 9.9141,-11.6371 21.09939,-17.4557 10.67671,-5.5926 19.51754,-8.3889 26.52253,-8.389 3.61531,10e-5 6.75056,0.8193 9.40576,2.4574 3.16337,1.9208 4.74512,4.6041 4.74524,8.05 -1.2e-4,7.9653 -5.79045,14.8854 -17.37099,20.7604 -9.94251,5.0843 -19.32001,7.6264 -28.13252,7.6263 -5.81865,10e-5 -10.78986,-1.158 -14.91363,-3.4742 -5.08425,-2.8245 -7.62635,-6.9483 -7.62629,-12.3715 -6e-5,-4.8582 1.27099,-9.095 3.81315,-12.7105 8.86902,-12.6539 23.58491,-20.7321 44.14773,-24.2347 9.20792,-1.5251 26.69187,-2.2877 52.45191,-2.2878 6.43981,10e-5 16.07152,0.057 28.89515,0.1694 12.87975,0.057 22.51146,0.085 28.89516,0.085 5.19695,10e-5 9.12307,-0.5648 11.77837,-1.6948 1.86398,-0.7342 5.08396,-2.8526 9.65997,-6.3552 l 0.84736,-0.3389 0.9321,1.1863 -0.25421,0.8473 c -9.32124,10.0556 -24.77152,15.0832 -46.35087,15.0831 -7.90893,10e-5 -19.6873,-0.8755 -35.33514,-2.6268 -15.64815,-1.7511 -27.39827,-2.6267 -35.25039,-2.6268" id="path16575" - style="font-size:173.54040527px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Exmouth" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:173.54040527px;line-height:125%;font-family:Exmouth;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none" inkscape:connector-curvature="0" /> <path - d="m 600.625,-1391.1562 c -5.95832,0.301 -14.35188,5.2745 -25.1875,14.9062 -8.02176,7.2309 -17.34845,17.0349 -27.96875,29.4062 -5.64912,6.779 -11.28844,13.5649 -16.9375,20.3438 -2.59859,2.9941 -6.21148,6.0865 -10.84375,9.25 -4.06735,2.5986 -34.41191,25.3656 -39.3125,23.5312 -0.53337,-0.1997 -1.26798,-0.5781 -1.375,-1.0937 -0.23834,-1.1483 4.197,-6.4241 12.21875,-15.4063 4.97118,-5.4231 9.935,-10.858 14.90625,-16.2812 l -9.75,0 c -4.5193,5.2537 -7.46274,8.5878 -8.875,10 0.39541,-1.2993 0.56247,-2.4518 0.5625,-3.4688 -3e-5,-4.3497 -2.82569,-6.5312 -8.53125,-6.5312 -6.89191,0 -14.34728,2.7391 -22.3125,8.2188 -4.33149,2.9726 -7.43298,5.34 -9.59375,8.4687 10e-6,10e-5 -2.70434,0.8207 -4.625,1.7813 -1.92072,0.9603 -3.63101,1.4377 -5.15625,1.4374 -1.07335,0 -2.05892,-0.3593 -2.90625,-1.0937 8.24766,-6.6659 12.37496,-12.2618 12.375,-16.7813 -3e-5,-1.4687 -0.71877,-2.1874 -2.1875,-2.1874 -2.82458,10e-5 -5.96032,2.1444 -9.40625,6.4374 -3.33299,4.0675 -5.00002,7.5627 -5,10.5 -2e-5,2e-4 0.12376,0.5577 0.40625,1.6876 -11.01576,9.6599 -19.74753,14.5 -26.1875,14.5 -2.14665,0 -3.21874,-0.5145 -3.21875,-1.5313 10e-6,-1.1299 3.17303,-4.7428 9.5,-10.8437 6.32699,-6.1575 9.49998,-10.9976 9.5,-14.5 -10e-6,-4.0673 -1.62377,-6.0938 -4.84375,-6.0938 -2.37262,0 -6.9771,2.5779 -13.8125,7.7188 -5.81503,4.3374 -15.57478,13.2562 -21.6875,17.375 -7.68278,5.1972 -13.32205,7.7006 -16.9375,7.5312 L 362,-1294.8125 c 0.113,-1.1863 4.16577,-6.3056 12.1875,-15.3437 4.91471,-5.4798 9.83528,-10.9206 14.75,-16.3438 l -9.5625,0 c -5.93156,5.0842 -28.68563,25.426 -52.46875,32.625 -0.003,-10e-5 -0.0285,0 -0.0312,0 -0.007,0 -0.024,-9e-4 -0.0312,0 -0.0231,0 -0.0692,10e-4 -0.0937,0 -0.0162,0 -0.0475,0 -0.0625,0 -0.25291,-0.045 -0.55309,-0.2262 -0.75,-0.375 -0.0709,-0.056 -0.14178,-0.1228 -0.1875,-0.1875 -0.0137,-0.021 -0.0479,-0.068 -0.0625,-0.094 -0.0102,-0.025 -0.0259,-0.068 -0.0312,-0.094 1.1e-4,0 -5e-5,-0.028 0,-0.031 -2.7e-4,0 9e-5,-0.027 0,-0.031 10e-5,0 -2.9e-4,-0.026 0,-0.031 0.11886,-1.3111 6.11893,-8.3387 17,-20.5937 6.77891,-7.5132 13.5648,-15.0179 20.34375,-22.5313 7.66156,0.1978 12.06535,-0.09 13.15625,-0.8437 0.005,-0.01 0.0259,-0.026 0.0312,-0.031 0.0286,-0.026 0.0701,-0.067 0.0937,-0.094 0.003,0 0.028,-0.028 0.0312,-0.031 0.0301,-0.041 0.0768,-0.1117 0.0937,-0.1562 -10e-6,0 1.9e-4,-0.028 0,-0.031 l -1.125,-1.1876 -10.65625,0 14.90625,-16.5312 -9.90625,0 -14.75,16.5312 c -4.01396,-0.1416 -6.52566,0.1253 -7.5,0.8126 -0.10498,0.077 -0.20936,0.1857 -0.28125,0.2812 -0.0339,0.048 -0.0712,0.1095 -0.0937,0.1562 l 1.4375,1.125 4.40625,0 c -7.23085,8.0784 -28.18662,24.3812 -35.03125,28.5626 -6.79906,4.1534 -9.98436,4.8857 -12.1875,5.2812 2.03366,-3.333 3.06249,-6.989 3.0625,-11 -10e-6,-1.0168 -0.16106,-2.5228 -0.5,-4.5 -0.28246,-1.9772 -0.43751,-3.4832 -0.4375,-4.5 -10e-6,-1.5253 0.0805,-2.7582 0.25,-3.7188 3.50243,-2.8244 6.15502,-4.9314 7.90625,-6.3437 l -1.2813,-1.4383 c -0.003,10e-5 -0.0246,0 -0.0312,0 -0.003,-2e-4 -0.0285,0 -0.0312,0 -1.22688,0.4067 -7.82546,4.867 -19.78125,13.375 -10.91202,7.7653 -23.07076,16.4159 -30.75,21.5 -8.13471,5.4231 -14.88335,8.125 -20.25,8.125 -1.42992,0 -2.46833,-0.3306 -3.09375,-0.9688 -0.46922,-0.4943 -0.71875,-1.1889 -0.71875,-2.0624 1e-5,-4.0674 2.70189,-7.5192 8.125,-10.3438 5.02771,-2.2031 10.06604,-4.3845 15.09375,-6.5312 5.42312,-2.5987 8.12499,-5.5793 8.125,-8.9688 -10e-6,-2.9375 -1.78482,-4.4062 -5.34375,-4.4062 -6.21401,0 -13.00593,2.9431 -20.40625,8.875 -7.73925,6.2139 -11.62496,12.3677 -11.625,18.4687 3e-5,5.7056 3.72469,8.5625 11.125,8.5625 5.87507,0 16.51546,-5.5586 31.9375,-16.6875 0,0 25.61056,-17.7692 27.53125,-19.125 -7.00488,22.088 -15.34604,33.1251 -25.0625,33.125 -1.65102,0 -2.79395,-0.3633 -3.375,-1.0937 -0.0392,-0.051 -0.0909,-0.1329 -0.125,-0.1876 -0.18308,-0.3026 -0.28337,-0.6549 -0.3125,-1.0624 4.18035,0.1129 6.25001,-1.6284 6.25,-5.1876 1e-5,-2.0901 -1.19587,-3.125 -3.625,-3.125 -3.72839,1e-4 -5.59372,2.2247 -5.59375,6.6876 2e-5,4.2932 2.70187,6.4377 8.125,6.4374 6.77893,0 14.3641,-3.7306 22.78125,-11.1874 1.92069,-0.113 7.43056,-1.8252 11.3125,-3.7813 3.93186,-1.9813 16.21387,-10.4086 21.75,-14.25 -3.44595,3.446 -6.8978,6.8978 -10.34375,10.3437 -3.89786,4.5193 -5.84373,8.8017 -5.84375,12.8126 2e-5,3.5588 1.74779,5.3052 5.25,5.3437 11.23201,0.125 37.90549,-20.5574 40.15625,-22.2187 -3.89787,4.8583 -5.92427,7.3988 -6.09375,7.625 -2.20313,3.22 -3.3125,6.2382 -3.3125,9.0624 1e-5,3.672 1.74156,5.5314 5.1875,5.5313 2.76807,0 8.64294,-2.3797 17.625,-7.125 8.30152,-4.3268 18.00607,-13.323 22.78125,-17.875 6.04454,-5.762 10.3329,-8.613 12.875,-8.5 l 1.1875,0.875 c 3.8e-4,0.011 -10e-6,0.051 0,0.062 -0.002,0 -0.0242,0.024 -0.0312,0.031 -0.37172,0.832 -3.50081,4.2378 -9.375,10.2188 -6.214,6.327 -9.31248,11.2476 -9.3125,14.75 10e-6,4.8583 2.69585,7.2815 8.0625,7.2812 6.21401,0 15.38566,-4.9637 27.53125,-14.9062 1.41225,1.2993 2.9615,1.9688 4.65625,1.9688 2.70944,0 5.45731,-0.8337 8.25,-2.4376 -1.10458,2.2633 -1.625,4.5637 -1.625,6.9063 2e-5,5.8751 2.98073,8.8125 8.96875,8.8125 5.76209,0 12.82682,-3.2967 21.1875,-9.9062 -0.50842,1.4123 -0.75,2.881 -0.75,4.4062 -1e-5,3.6155 1.67303,5.4375 5.0625,5.4375 10.11059,0 35.97718,-20.524 38.40625,-22.2187 -3.84137,4.7453 -5.90503,7.286 -6.1875,7.625 -2.20314,3.22 -3.31249,6.2379 -3.3125,9.0624 2e-5,3.672 1.78481,5.5314 5.34375,5.5313 3.27649,0 9.23187,-2.256 17.875,-6.7187 7.40754,-4.4699 11.50601,-7.8449 14.34375,-10.375 L 544,-1309.375 c -0.005,0 -0.0248,0 -0.0312,0 -0.50984,0.2448 -4.56438,2.9961 -12.15625,8.2188 -7.28734,5.0276 -13.19428,6.6274 -17.3125,7.2812 -0.86863,0.1379 -1.68286,-0.1505 -1.4375,-0.9375 0.4599,-1.4752 1.3101,-2.4411 1.875,-3.0625 5.36665,-6.4964 10.76435,-12.935 16.1875,-19.375 6.55294,-7.8522 12.31001,-13.9999 17.28125,-18.4062 2.20312,-1.8643 8.98905,-6.1153 20.34375,-12.7813 11.75007,-6.8918 20.32678,-12.6057 25.75,-17.125 8.41708,-7.0048 12.6249,-13.4373 12.625,-19.3125 -8e-5,-1.6381 -0.59502,-3.1009 -1.78125,-4.3438 -1.1299,-1.2991 -2.51808,-1.9374 -4.15625,-1.9374 -0.18713,0 -0.3703,-0.01 -0.5625,0 z m -0.625,2.2187 c 0.23304,-0.017 0.46109,0 0.6875,0 2.82447,10e-5 4.24994,1.3511 4.25,4.0625 -8e-5,5.9882 -7.61646,14.4098 -22.8125,25.3125 -3.78495,2.7116 -14.34482,9.4603 -31.6875,20.25 11.80658,-15.648 19.42899,-25.4146 22.875,-29.3125 11.39149,-13.0811 20.29184,-19.8525 26.6875,-20.3125 z m -120.0625,64.9063 c 0.0321,0 0.0619,0 0.0937,0 0.20046,-0.016 0.40309,0 0.59375,0 3.27646,-1e-4 4.90622,1.4316 4.90625,4.3124 -2e-5,4.8583 -4.28837,10.578 -12.875,17.1876 -8.30418,6.327 -15.00955,9.4999 -20.09375,9.5 -1.29046,0 -2.23885,-0.3011 -2.84375,-0.875 -0.0161,-0.016 -0.0469,-0.046 -0.0625,-0.063 -0.46945,-0.5029 -0.71874,-1.2314 -0.71875,-2.125 2e-5,-3.9543 4.25111,-9.5937 12.78125,-16.9374 8.06676,-6.9449 14.14303,-10.6227 18.21875,-11 z m -213.90625,0.7812 c 0.0333,0 0.0606,0 0.0937,0 0.012,-6e-4 0.0512,-7e-4 0.0625,0 0.004,10e-5 0.0273,10e-5 0.0312,0 0.012,-5e-4 0.0512,-6e-4 0.0625,0 0.004,10e-5 0.0273,10e-5 0.0312,0 0.012,-4e-4 0.0512,-5e-4 0.0625,0 0.004,10e-5 0.0272,10e-5 0.0312,0 0.012,-4e-4 0.0512,-4e-4 0.0625,0 0.004,10e-5 0.0272,10e-5 0.0312,0 0.13863,-0.01 0.27032,0 0.40625,0 1.24279,10e-5 1.87497,0.6382 1.875,1.9375 -2e-5,3.3895 -6.35202,7.1945 -19.0625,11.375 6.63026,-8.2614 12.08362,-12.7437 16.3125,-13.3125 z" + d="m 600.625,-1391.1562 c -5.95832,0.301 -14.35188,5.2745 -25.1875,14.9062 -8.02176,7.2309 -17.34845,17.0349 -27.96875,29.4062 -5.64912,6.779 -11.28844,13.5649 -16.9375,20.3438 -2.59859,2.9941 -6.21148,6.0865 -10.84375,9.25 -4.06735,2.5986 -34.41191,25.3656 -39.3125,23.5312 -0.53337,-0.1997 -1.26798,-0.5781 -1.375,-1.0937 -0.23834,-1.1483 4.197,-6.4241 12.21875,-15.4063 4.97118,-5.4231 9.935,-10.858 14.90625,-16.2812 h -9.75 c -4.5193,5.2537 -7.46274,8.5878 -8.875,10 0.39541,-1.2993 0.56247,-2.4518 0.5625,-3.4688 -3e-5,-4.3497 -2.82569,-6.5312 -8.53125,-6.5312 -6.89191,0 -14.34728,2.7391 -22.3125,8.2188 -4.33149,2.9726 -7.43298,5.34 -9.59375,8.4687 10e-6,10e-5 -2.70434,0.8207 -4.625,1.7813 -1.92072,0.9603 -3.63101,1.4377 -5.15625,1.4374 -1.07335,0 -2.05892,-0.3593 -2.90625,-1.0937 8.24766,-6.6659 12.37496,-12.2618 12.375,-16.7813 -3e-5,-1.4687 -0.71877,-2.1874 -2.1875,-2.1874 -2.82458,10e-5 -5.96032,2.1444 -9.40625,6.4374 -3.33299,4.0675 -5.00002,7.5627 -5,10.5 -2e-5,2e-4 0.12376,0.5577 0.40625,1.6876 -11.01576,9.6599 -19.74753,14.5 -26.1875,14.5 -2.14665,0 -3.21874,-0.5145 -3.21875,-1.5313 10e-6,-1.1299 3.17303,-4.7428 9.5,-10.8437 6.32699,-6.1575 9.49998,-10.9976 9.5,-14.5 -10e-6,-4.0673 -1.62377,-6.0938 -4.84375,-6.0938 -2.37262,0 -6.9771,2.5779 -13.8125,7.7188 -5.81503,4.3374 -15.57478,13.2562 -21.6875,17.375 -7.68278,5.1972 -13.32205,7.7006 -16.9375,7.5312 L 362,-1294.8125 c 0.113,-1.1863 4.16577,-6.3056 12.1875,-15.3437 4.91471,-5.4798 9.83528,-10.9206 14.75,-16.3438 h -9.5625 c -5.93156,5.0842 -28.68563,25.426 -52.46875,32.625 -0.003,-10e-5 -0.0285,0 -0.0312,0 -0.007,0 -0.024,-9e-4 -0.0312,0 -0.0231,0 -0.0692,10e-4 -0.0937,0 -0.0162,0 -0.0475,0 -0.0625,0 -0.25291,-0.045 -0.55309,-0.2262 -0.75,-0.375 -0.0709,-0.056 -0.14178,-0.1228 -0.1875,-0.1875 -0.0137,-0.021 -0.0479,-0.068 -0.0625,-0.094 -0.0102,-0.025 -0.0259,-0.068 -0.0312,-0.094 1.1e-4,0 -5e-5,-0.028 0,-0.031 -2.7e-4,0 9e-5,-0.027 0,-0.031 10e-5,0 -2.9e-4,-0.026 0,-0.031 0.11886,-1.3111 6.11893,-8.3387 17,-20.5937 6.77891,-7.5132 13.5648,-15.0179 20.34375,-22.5313 7.66156,0.1978 12.06535,-0.09 13.15625,-0.8437 0.005,-0.01 0.0259,-0.026 0.0312,-0.031 0.0286,-0.026 0.0701,-0.067 0.0937,-0.094 0.003,0 0.028,-0.028 0.0312,-0.031 0.0301,-0.041 0.0768,-0.1117 0.0937,-0.1562 -10e-6,0 1.9e-4,-0.028 0,-0.031 l -1.125,-1.1876 H 364.625 l 14.90625,-16.5312 H 369.625 l -14.75,16.5312 c -4.01396,-0.1416 -6.52566,0.1253 -7.5,0.8126 -0.10498,0.077 -0.20936,0.1857 -0.28125,0.2812 -0.0339,0.048 -0.0712,0.1095 -0.0937,0.1562 l 1.4375,1.125 h 4.40625 c -7.23085,8.0784 -28.18662,24.3812 -35.03125,28.5626 -6.79906,4.1534 -9.98436,4.8857 -12.1875,5.2812 2.03366,-3.333 3.06249,-6.989 3.0625,-11 -10e-6,-1.0168 -0.16106,-2.5228 -0.5,-4.5 -0.28246,-1.9772 -0.43751,-3.4832 -0.4375,-4.5 -10e-6,-1.5253 0.0805,-2.7582 0.25,-3.7188 3.50243,-2.8244 6.15502,-4.9314 7.90625,-6.3437 l -1.2813,-1.4383 c -0.003,10e-5 -0.0246,0 -0.0312,0 -0.003,-2e-4 -0.0285,0 -0.0312,0 -1.22688,0.4067 -7.82546,4.867 -19.78125,13.375 -10.91202,7.7653 -23.07076,16.4159 -30.75,21.5 -8.13471,5.4231 -14.88335,8.125 -20.25,8.125 -1.42992,0 -2.46833,-0.3306 -3.09375,-0.9688 -0.46922,-0.4943 -0.71875,-1.1889 -0.71875,-2.0624 1e-5,-4.0674 2.70189,-7.5192 8.125,-10.3438 5.02771,-2.2031 10.06604,-4.3845 15.09375,-6.5312 5.42312,-2.5987 8.12499,-5.5793 8.125,-8.9688 -10e-6,-2.9375 -1.78482,-4.4062 -5.34375,-4.4062 -6.21401,0 -13.00593,2.9431 -20.40625,8.875 -7.73925,6.2139 -11.62496,12.3677 -11.625,18.4687 3e-5,5.7056 3.72469,8.5625 11.125,8.5625 5.87507,0 16.51546,-5.5586 31.9375,-16.6875 0,0 25.61056,-17.7692 27.53125,-19.125 -7.00488,22.088 -15.34604,33.1251 -25.0625,33.125 -1.65102,0 -2.79395,-0.3633 -3.375,-1.0937 -0.0392,-0.051 -0.0909,-0.1329 -0.125,-0.1876 -0.18308,-0.3026 -0.28337,-0.6549 -0.3125,-1.0624 4.18035,0.1129 6.25001,-1.6284 6.25,-5.1876 1e-5,-2.0901 -1.19587,-3.125 -3.625,-3.125 -3.72839,1e-4 -5.59372,2.2247 -5.59375,6.6876 2e-5,4.2932 2.70187,6.4377 8.125,6.4374 6.77893,0 14.3641,-3.7306 22.78125,-11.1874 1.92069,-0.113 7.43056,-1.8252 11.3125,-3.7813 3.93186,-1.9813 16.21387,-10.4086 21.75,-14.25 -3.44595,3.446 -6.8978,6.8978 -10.34375,10.3437 -3.89786,4.5193 -5.84373,8.8017 -5.84375,12.8126 2e-5,3.5588 1.74779,5.3052 5.25,5.3437 11.23201,0.125 37.90549,-20.5574 40.15625,-22.2187 -3.89787,4.8583 -5.92427,7.3988 -6.09375,7.625 -2.20313,3.22 -3.3125,6.2382 -3.3125,9.0624 1e-5,3.672 1.74156,5.5314 5.1875,5.5313 2.76807,0 8.64294,-2.3797 17.625,-7.125 8.30152,-4.3268 18.00607,-13.323 22.78125,-17.875 6.04454,-5.762 10.3329,-8.613 12.875,-8.5 l 1.1875,0.875 c 3.8e-4,0.011 -10e-6,0.051 0,0.062 -0.002,0 -0.0242,0.024 -0.0312,0.031 -0.37172,0.832 -3.50081,4.2378 -9.375,10.2188 -6.214,6.327 -9.31248,11.2476 -9.3125,14.75 10e-6,4.8583 2.69585,7.2815 8.0625,7.2812 6.21401,0 15.38566,-4.9637 27.53125,-14.9062 1.41225,1.2993 2.9615,1.9688 4.65625,1.9688 2.70944,0 5.45731,-0.8337 8.25,-2.4376 -1.10458,2.2633 -1.625,4.5637 -1.625,6.9063 2e-5,5.8751 2.98073,8.8125 8.96875,8.8125 5.76209,0 12.82682,-3.2967 21.1875,-9.9062 -0.50842,1.4123 -0.75,2.881 -0.75,4.4062 -1e-5,3.6155 1.67303,5.4375 5.0625,5.4375 10.11059,0 35.97718,-20.524 38.40625,-22.2187 -3.84137,4.7453 -5.90503,7.286 -6.1875,7.625 -2.20314,3.22 -3.31249,6.2379 -3.3125,9.0624 2e-5,3.672 1.78481,5.5314 5.34375,5.5313 3.27649,0 9.23187,-2.256 17.875,-6.7187 7.40754,-4.4699 11.50601,-7.8449 14.34375,-10.375 L 544,-1309.375 c -0.005,0 -0.0248,0 -0.0312,0 -0.50984,0.2448 -4.56438,2.9961 -12.15625,8.2188 -7.28734,5.0276 -13.19428,6.6274 -17.3125,7.2812 -0.86863,0.1379 -1.68286,-0.1505 -1.4375,-0.9375 0.4599,-1.4752 1.3101,-2.4411 1.875,-3.0625 5.36665,-6.4964 10.76435,-12.935 16.1875,-19.375 6.55294,-7.8522 12.31001,-13.9999 17.28125,-18.4062 2.20312,-1.8643 8.98905,-6.1153 20.34375,-12.7813 11.75007,-6.8918 20.32678,-12.6057 25.75,-17.125 8.41708,-7.0048 12.6249,-13.4373 12.625,-19.3125 -8e-5,-1.6381 -0.59502,-3.1009 -1.78125,-4.3438 -1.1299,-1.2991 -2.51808,-1.9374 -4.15625,-1.9374 -0.18713,0 -0.3703,-0.01 -0.5625,0 z m -0.625,2.2187 c 0.23304,-0.017 0.46109,0 0.6875,0 2.82447,10e-5 4.24994,1.3511 4.25,4.0625 -8e-5,5.9882 -7.61646,14.4098 -22.8125,25.3125 -3.78495,2.7116 -14.34482,9.4603 -31.6875,20.25 11.80658,-15.648 19.42899,-25.4146 22.875,-29.3125 11.39149,-13.0811 20.29184,-19.8525 26.6875,-20.3125 z m -120.0625,64.9063 c 0.0321,0 0.0619,0 0.0937,0 0.20046,-0.016 0.40309,0 0.59375,0 3.27646,-1e-4 4.90622,1.4316 4.90625,4.3124 -2e-5,4.8583 -4.28837,10.578 -12.875,17.1876 -8.30418,6.327 -15.00955,9.4999 -20.09375,9.5 -1.29046,0 -2.23885,-0.3011 -2.84375,-0.875 -0.0161,-0.016 -0.0469,-0.046 -0.0625,-0.063 -0.46945,-0.5029 -0.71874,-1.2314 -0.71875,-2.125 2e-5,-3.9543 4.25111,-9.5937 12.78125,-16.9374 8.06676,-6.9449 14.14303,-10.6227 18.21875,-11 z m -213.90625,0.7812 c 0.0333,0 0.0606,0 0.0937,0 0.012,-6e-4 0.0512,-7e-4 0.0625,0 0.004,10e-5 0.0273,10e-5 0.0312,0 0.012,-5e-4 0.0512,-6e-4 0.0625,0 0.004,10e-5 0.0273,10e-5 0.0312,0 0.012,-4e-4 0.0512,-5e-4 0.0625,0 0.004,10e-5 0.0272,10e-5 0.0312,0 0.012,-4e-4 0.0512,-4e-4 0.0625,0 0.004,10e-5 0.0272,10e-5 0.0312,0 0.13863,-0.01 0.27032,0 0.40625,0 1.24279,10e-5 1.87497,0.6382 1.875,1.9375 -2e-5,3.3895 -6.35202,7.1945 -19.0625,11.375 6.63026,-8.2614 12.08362,-12.7437 16.3125,-13.3125 z" id="path16577" - style="font-size:173.54040527px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Exmouth" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:173.54040527px;line-height:125%;font-family:Exmouth;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none" inkscape:connector-curvature="0" /> <path d="m 406.81523,-1346.1607 c -0.7909,1.9773 -2.62686,3.898 -5.50787,5.7621 -2.09019,-1.4122 -3.75668,-3.2199 -4.99946,-5.4231 1.07331,-2.3726 2.79628,-4.2085 5.16893,-5.5079 1.75119,0.8474 3.53066,2.5704 5.3384,5.1689" id="path16579" - style="font-size:173.54040527px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Exmouth" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:173.54040527px;line-height:125%;font-family:Exmouth;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none" inkscape:connector-curvature="0" /> </g> </g> @@ -91056,15 +91813,15 @@ <path d="m 144.80549,88.557517 c 0,39.134993 -31.76158,70.896673 -70.896401,70.896673 -39.135167,0 -70.8967476,-31.76168 -70.8967476,-70.896673 0,-39.134957 31.7615806,-70.896643 70.8967476,-70.896643 39.134821,0 70.896401,31.761686 70.896401,70.896643 z" id="path16613" - style="fill:#373737;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.61199999;marker:none;visibility:visible;display:inline;overflow:visible" + style="display:inline;overflow:visible;visibility:visible;fill:#373737;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.61199999;marker:none" inkscape:connector-curvature="0" /> <path - d="m 202.60774,194.21232 c 3.92622,3.92538 3.92622,10.29011 0,14.21632 l -9.21619,9.21617 c -3.92622,3.92705 -10.29105,3.92537 -14.21657,0 L 28.710589,67.179433 c -3.925514,-3.926213 -3.925514,-10.290947 0,-14.216321 l 9.216896,-9.217 c 3.925514,-3.925409 10.291051,-3.926213 14.216565,0 L 202.60774,194.21232 z" + d="m 202.60774,194.21232 c 3.92622,3.92538 3.92622,10.29011 0,14.21632 l -9.21619,9.21617 c -3.92622,3.92705 -10.29105,3.92537 -14.21657,0 L 28.710589,67.179433 c -3.925514,-3.926213 -3.925514,-10.290947 0,-14.216321 l 9.216896,-9.217 c 3.925514,-3.925409 10.291051,-3.926213 14.216565,0 z" id="path16615" style="fill:#373737;fill-opacity:1;stroke:none" inkscape:connector-curvature="0" /> <path - d="m 199.13799,197.60713 c 2.77615,2.77542 2.77615,7.27558 0,10.05159 l -6.51629,6.51626 c -2.77581,2.77661 -7.276,2.77542 -10.05146,0 L 76.185068,107.78914 c -2.775456,-2.77598 -2.775456,-7.27614 0,-10.051559 l 6.51664,-6.51685 c 2.775457,-2.775422 7.27635,-2.776016 10.051806,0 L 199.13799,197.60713 z" + d="m 199.13799,197.60713 c 2.77615,2.77542 2.77615,7.27558 0,10.05159 l -6.51629,6.51626 c -2.77581,2.77661 -7.276,2.77542 -10.05146,0 L 76.185068,107.78914 c -2.775456,-2.77598 -2.775456,-7.27614 0,-10.051559 l 6.51664,-6.51685 c 2.775457,-2.775422 7.27635,-2.776016 10.051806,0 z" id="path16617" style="fill:#483737;fill-opacity:1;stroke:none" inkscape:connector-curvature="0" /> @@ -91089,8 +91846,8 @@ style="fill:url(#linearGradient16647)" inkscape:connector-curvature="0" /> <path - style="fill:url(#linearGradient16669);fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" - d="M 85.93064,79.962195 23.081268,104.84007 c 7.287315,20.5463 28.181658,35.78923 53.247384,35.78923 27.692408,0 50.300168,-18.4368 54.993198,-42.336038 L 85.93064,79.962195 z" + style="display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient16669);fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" + d="M 85.93064,79.962195 23.081268,104.84007 c 7.287315,20.5463 28.181658,35.78923 53.247384,35.78923 27.692408,0 50.300168,-18.4368 54.993198,-42.336038 z" id="rect16657" inkscape:connector-curvature="0" /> <path @@ -91134,10 +91891,10 @@ style="opacity:0.47906979;fill:url(#linearGradient16653);stroke:none" inkscape:connector-curvature="0" /> <path - d="m 40.481863,36.421127 c 0,4.637476 -7.004387,8.396894 -15.644737,8.396894 -8.64035,0 -15.6447375,-3.759418 -15.6447375,-8.396894 0,-4.637476 7.0043875,-8.396894 15.6447375,-8.396894 8.64035,0 15.644737,3.759418 15.644737,8.396894 l 0,0 z" + d="m 40.481863,36.421127 c 0,4.637476 -7.004387,8.396894 -15.644737,8.396894 -8.64035,0 -15.6447375,-3.759418 -15.6447375,-8.396894 0,-4.637476 7.0043875,-8.396894 15.6447375,-8.396894 8.64035,0 15.644737,3.759418 15.644737,8.396894 z" transform="matrix(5.8942914,0,0,3.3456793,14.375906,106.05328)" id="path16643" - style="opacity:0.20454544;fill:url(#radialGradient16655);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" + style="display:inline;overflow:visible;visibility:visible;opacity:0.20454544;fill:url(#radialGradient16655);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none" inkscape:connector-curvature="0" /> </g> </g> @@ -91262,7 +92019,7 @@ x="166.52481" id="tspan16195-0" sodipodi:role="line" - style="font-size:12.76000023px;line-height:1.25">%% Extension Cfile Pyfile wxGlade SVGUI FOLDER FILE %%</tspan></text> + style="font-size:12.76000023px;line-height:1.25">%% Extension Cfile Pyfile wxGlade SVGHMI FOLDER FILE %%</tspan></text> <use style="display:inline" inkscape:label="#use3839" @@ -92075,13 +92832,14 @@ <g transform="translate(444.93931,321.78746)" style="display:inline" - id="SVGUI" + id="svghmi" inkscape:export-xdpi="90" - inkscape:export-ydpi="90"> + inkscape:export-ydpi="90" + inkscape:label="svghmi"> <path inkscape:connector-curvature="0" - style="fill:url(#linearGradient18010);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" - d="m -40,0 0,16 16,0 0,-16 -16,0 z m 1,1 14,0 0,14 -14,0 0,-14 z" + style="display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient18010);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none" + d="m -40,0 v 16 h 16 V 0 Z m 1,1 h 14 v 14 h -14 z" id="path3806-1-6-1" sodipodi:nodetypes="cccccccccc" inkscape:label="#rect2160" /> @@ -92205,16 +92963,16 @@ transform="matrix(5.0027792,0,0,5.0027792,-215.17835,-168.84627)" id="g39828-7"> <circle - sodipodi:ry="34.144001" - sodipodi:rx="34.144001" - sodipodi:cy="110.081" - sodipodi:cx="100.287" cx="100.287" cy="110.081" r="34.144001" transform="matrix(0.3316761,0,0,0.3316761,48.927852,9.2318583)" id="circle29-8" - style="fill:#84c225;fill-rule:evenodd;stroke:#5d9d35;stroke-width:2.82220006" /> + style="fill:#84c225;fill-rule:evenodd;stroke:#5d9d35;stroke-width:2.82220006" + sodipodi:ry="34.144001" + sodipodi:rx="34.144001" + sodipodi:cy="110.081" + sodipodi:cx="100.287" /> <path d="m 84.515333,38.943636 0,3.981494 3.981494,0 0,4.799639 -3.981494,0 0,3.981494 -4.782372,0 0,-3.981494 -3.981494,0 0,-4.799639 3.981494,0 0,-3.981494 4.782372,0" id="text1332-4" @@ -92230,7 +92988,7 @@ </g> <g id="g16550-5" - transform="translate(1807.0897,-400.03854)"> + transform="translate(1733.0897,-400.03854)"> <g id="g16553-9"> <rect @@ -92239,7 +92997,7 @@ x="-1061.0897" y="591.4007" id="ExportSlave" - style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> </g> <g id="g16589-7" @@ -92254,7 +93012,7 @@ y="-2666.4033" transform="matrix(0.926956,0.375171,0,1,0,0)" id="rect16561-6" - style="fill:#3d993d;fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" /> + style="display:inline;overflow:visible;visibility:visible;fill:#3d993d;fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" /> <rect width="593.28876" height="420.25934" @@ -92262,7 +93020,7 @@ y="-1753.9264" transform="matrix(0.929224,-0.369517,0,1,0,0)" id="rect16563-9" - style="fill:url(#linearGradient16607-0);fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" /> + style="display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient16607-0);fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" /> <rect width="995.74323" height="593.25934" @@ -92270,39 +93028,39 @@ y="-4162.4521" transform="matrix(0.926288,0.376817,-0.92919,0.369603,0,0)" id="rect16565-9" - style="fill:url(#linearGradient16609-7);fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" /> + style="display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient16609-7);fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" /> <g transform="matrix(1,0.428039,0,1,508,-889.8732)" id="g16567-9"> <path - d="m -171.2884,-1442.3646 -22.25763,0 c -39.75086,0 -68.40846,33.3509 -68.40846,73.8129 0,40.6753 28.72871,74.0973 68.40846,74.0973 l 22.25763,0 0,-35.5554 -15.43101,0 c -20.76431,0 -36.83532,-12.5154 -36.83532,-38.5419 0,-26.0265 16.07101,-38.2576 36.83532,-38.2576 l 15.43101,0 0,-35.5553 z" + d="m -171.2884,-1442.3646 h -22.25763 c -39.75086,0 -68.40846,33.3509 -68.40846,73.8129 0,40.6753 28.72871,74.0973 68.40846,74.0973 h 22.25763 v -35.5554 h -15.43101 c -20.76431,0 -36.83532,-12.5154 -36.83532,-38.5419 0,-26.0265 16.07101,-38.2576 36.83532,-38.2576 h 15.43101 z" id="path16569-8" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none" inkscape:connector-curvature="0" /> <path - d="m -103.37772,-1294.4544 0,-99.0572 c 0,-11.0221 5.831076,-17.991 14.791019,-17.991 9.102165,0 15.07546,7.1111 15.07546,17.991 l 0,13.7244 -23.110964,0 0,33.422 23.110964,0 0,51.9108 36.977543,0 0,-97.3505 c 0,-31.7154 -21.048755,-53.1197 -52.053003,-53.1197 -30.933139,0 -51.768559,21.4754 -51.768559,53.1197 l 0,97.3505 36.97754,0 z" + d="m -103.37772,-1294.4544 v -99.0572 c 0,-11.0221 5.831076,-17.991 14.791019,-17.991 9.102165,0 15.07546,7.1111 15.07546,17.991 v 13.7244 h -23.110964 v 33.422 h 23.110964 v 51.9108 h 36.977543 v -97.3505 c 0,-31.7154 -21.048755,-53.1197 -52.053003,-53.1197 -30.933139,0 -51.768559,21.4754 -51.768559,53.1197 v 97.3505 z" id="path16571-3" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none" inkscape:connector-curvature="0" /> <path - d="m 34.576962,-1294.4544 0,-86.755 0,0 34.346449,65.9907 c 9.67105,18.8443 16.711005,23.3243 26.239834,23.3243 9.244385,0 19.768765,-8.0355 19.768765,-21.6177 l 0,-128.8525 -36.977545,0 0,78.0795 -0.568885,0 -32.853125,-65.2085 c -5.475521,-10.8088 -12.87103,-15.431 -25.386506,-15.431 -12.4443653,0 -21.5465298,8.3911 -21.5465298,20.1243 l 0,130.3459 36.9775428,0 z" + d="m 34.576962,-1294.4544 v -86.755 0 l 34.346449,65.9907 c 9.67105,18.8443 16.711005,23.3243 26.239834,23.3243 9.244385,0 19.768765,-8.0355 19.768765,-21.6177 v -128.8525 H 77.954465 v 78.0795 H 77.38558 l -32.853125,-65.2085 c -5.475521,-10.8088 -12.87103,-15.431 -25.386506,-15.431 -12.4443653,0 -21.5465298,8.3911 -21.5465298,20.1243 v 130.3459 z" id="path16573-0" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none" inkscape:connector-curvature="0" /> <path - d="m 252.34055,-1353.787 9.40576,-1.1015 c 6.66579,-8.0217 12.00419,-12.0325 16.0152,-12.0326 2.71141,10e-5 4.0672,1.1016 4.06735,3.3047 -1.5e-4,2.5422 -2.14681,4.9713 -6.43997,7.2873 -3.33312,1.8643 -6.6096,3.1071 -9.82944,3.7285 -1.46891,3.3895 -2.93767,6.8072 -4.4063,10.2531 -2.25977,4.5193 -4.60415,6.7789 -7.03313,6.7789 -0.56504,0 -1.35591,-0.028 -2.37262,-0.085 -1.01697,-0.057 -1.75135,-0.113 -2.20315,-0.1695 l -1.01684,-0.5084 c 0.11286,-1.2993 1.75109,-4.0108 4.91472,-8.1347 2.59845,-3.333 4.8016,-5.9315 6.60945,-7.7958 l -8.98207,1.1016 c -11.01587,18.9245 -22.28582,32.9625 -33.80988,42.114 -14.3488,11.4677 -31.01363,17.2015 -49.99455,17.2015 -7.45685,0 -13.72735,-0.9885 -18.81151,-2.9657 -7.23087,-2.8246 -10.84629,-7.3721 -10.84627,-13.6426 -2e-5,-2.1467 0.67787,-3.9261 2.03367,-5.3384 1.41226,-1.4688 3.16348,-2.2031 5.25367,-2.2032 1.41225,10e-5 2.62681,0.6215 3.64367,1.8642 1.0733,1.1864 1.60997,2.5139 1.60999,3.9827 -2e-5,1.2428 -0.42371,2.4573 -1.27104,3.6436 -0.90389,1.3558 -1.94897,2.0337 -3.13526,2.0337 -1.86422,0 -3.58719,-0.5649 -5.16892,-1.6947 1.69471,8.1912 10.42256,12.2868 26.18358,12.2868 11.75008,0 22.20091,-2.8811 31.35252,-8.6432 7.23077,-4.5757 14.57459,-11.6371 22.03149,-21.1841 6.38339,-8.9255 12.76686,-17.8229 19.15046,-26.692 -10.90287,0.6215 -21.32545,2.6551 -31.26778,6.101 -6.83549,2.3162 -9.94249,3.4743 -9.32102,3.4742 l -0.59315,0 -0.6779,-1.0168 0.76263,-1.0168 c 10.39427,-5.3101 24.5735,-8.5584 42.53774,-9.7447 5.47951,-7.2873 13.95315,-16.7213 25.42096,-28.302 12.37138,-12.5409 21.69238,-20.7604 27.96305,-24.6584 l 1.10158,-0.2542 0.67789,0.7626 -0.33895,0.9321 c -1.63841,1.9209 -4.03927,4.1805 -7.2026,6.779 -3.95453,3.2765 -6.46838,5.4232 -7.54155,6.4399 -11.80677,11.1854 -21.29725,23.5569 -28.47148,37.1146 m 27.11569,-9.321 c -1.5e-4,-1.0167 -0.50857,-1.5252 -1.52526,-1.5252 -1.86435,0 -4.0675,1.1581 -6.60944,3.4742 -2.14681,1.9207 -3.81329,3.8979 -4.99946,5.9315 1.97704,-0.3954 4.49089,-1.3839 7.54155,-2.9658 3.72825,-1.8641 5.59246,-3.5023 5.59261,-4.9147 m -34.31829,-48.3845 c -13.67094,10e-5 -26.57912,2.6269 -38.72459,7.8805 -15.59159,6.7225 -23.38734,16.0435 -23.38728,27.963 -6e-5,4.5759 2.4008,8.0501 7.2026,10.4226 3.72834,1.9208 8.13463,2.8811 13.2189,2.8811 7.68269,0 16.43879,-2.3161 26.26832,-6.9484 11.46756,-5.4231 17.20139,-11.5241 17.20152,-18.3031 -1.3e-4,-3.0504 -1.24293,-5.4231 -3.72841,-7.1179 -2.14678,-1.4687 -4.77361,-2.203 -7.8805,-2.2031 -13.1625,1e-4 -26.04244,5.6209 -38.63985,16.8625 -1.80779,1.9773 -4.60409,4.7736 -8.38892,8.3889 l -0.76263,0.085 -0.59315,-0.6779 0.25421,-0.9321 c 2.88097,-5.8185 9.9141,-11.6371 21.09939,-17.4557 10.67671,-5.5926 19.51754,-8.3889 26.52253,-8.389 3.61531,10e-5 6.75056,0.8193 9.40576,2.4574 3.16337,1.9208 4.74512,4.6041 4.74524,8.05 -1.2e-4,7.9653 -5.79045,14.8854 -17.37099,20.7604 -9.94251,5.0843 -19.32001,7.6264 -28.13252,7.6263 -5.81865,10e-5 -10.78986,-1.158 -14.91363,-3.4742 -5.08425,-2.8245 -7.62635,-6.9483 -7.62629,-12.3715 -6e-5,-4.8582 1.27099,-9.095 3.81315,-12.7105 8.86902,-12.6539 23.58491,-20.7321 44.14773,-24.2347 9.20792,-1.5251 26.69187,-2.2877 52.45191,-2.2878 6.43981,10e-5 16.07152,0.057 28.89515,0.1694 12.87975,0.057 22.51146,0.085 28.89516,0.085 5.19695,10e-5 9.12307,-0.5648 11.77837,-1.6948 1.86398,-0.7342 5.08396,-2.8526 9.65997,-6.3552 l 0.84736,-0.3389 0.9321,1.1863 -0.25421,0.8473 c -9.32124,10.0556 -24.77152,15.0832 -46.35087,15.0831 -7.90893,10e-5 -19.6873,-0.8755 -35.33514,-2.6268 -15.64815,-1.7511 -27.39827,-2.6267 -35.25039,-2.6268" + d="m 252.34055,-1353.787 9.40576,-1.1015 c 6.66579,-8.0217 12.00419,-12.0325 16.0152,-12.0326 2.71141,10e-5 4.0672,1.1016 4.06735,3.3047 -1.5e-4,2.5422 -2.14681,4.9713 -6.43997,7.2873 -3.33312,1.8643 -6.6096,3.1071 -9.82944,3.7285 -1.46891,3.3895 -2.93767,6.8072 -4.4063,10.2531 -2.25977,4.5193 -4.60415,6.7789 -7.03313,6.7789 -0.56504,0 -1.35591,-0.028 -2.37262,-0.085 -1.01697,-0.057 -1.75135,-0.113 -2.20315,-0.1695 l -1.01684,-0.5084 c 0.11286,-1.2993 1.75109,-4.0108 4.91472,-8.1347 2.59845,-3.333 4.8016,-5.9315 6.60945,-7.7958 l -8.98207,1.1016 c -11.01587,18.9245 -22.28582,32.9625 -33.80988,42.114 -14.3488,11.4677 -31.01363,17.2015 -49.99455,17.2015 -7.45685,0 -13.72735,-0.9885 -18.81151,-2.9657 -7.23087,-2.8246 -10.84629,-7.3721 -10.84627,-13.6426 -2e-5,-2.1467 0.67787,-3.9261 2.03367,-5.3384 1.41226,-1.4688 3.16348,-2.2031 5.25367,-2.2032 1.41225,10e-5 2.62681,0.6215 3.64367,1.8642 1.0733,1.1864 1.60997,2.5139 1.60999,3.9827 -2e-5,1.2428 -0.42371,2.4573 -1.27104,3.6436 -0.90389,1.3558 -1.94897,2.0337 -3.13526,2.0337 -1.86422,0 -3.58719,-0.5649 -5.16892,-1.6947 1.69471,8.1912 10.42256,12.2868 26.18358,12.2868 11.75008,0 22.20091,-2.8811 31.35252,-8.6432 7.23077,-4.5757 14.57459,-11.6371 22.03149,-21.1841 6.38339,-8.9255 12.76686,-17.8229 19.15046,-26.692 -10.90287,0.6215 -21.32545,2.6551 -31.26778,6.101 -6.83549,2.3162 -9.94249,3.4743 -9.32102,3.4742 h -0.59315 l -0.6779,-1.0168 0.76263,-1.0168 c 10.39427,-5.3101 24.5735,-8.5584 42.53774,-9.7447 5.47951,-7.2873 13.95315,-16.7213 25.42096,-28.302 12.37138,-12.5409 21.69238,-20.7604 27.96305,-24.6584 l 1.10158,-0.2542 0.67789,0.7626 -0.33895,0.9321 c -1.63841,1.9209 -4.03927,4.1805 -7.2026,6.779 -3.95453,3.2765 -6.46838,5.4232 -7.54155,6.4399 -11.80677,11.1854 -21.29725,23.5569 -28.47148,37.1146 m 27.11569,-9.321 c -1.5e-4,-1.0167 -0.50857,-1.5252 -1.52526,-1.5252 -1.86435,0 -4.0675,1.1581 -6.60944,3.4742 -2.14681,1.9207 -3.81329,3.8979 -4.99946,5.9315 1.97704,-0.3954 4.49089,-1.3839 7.54155,-2.9658 3.72825,-1.8641 5.59246,-3.5023 5.59261,-4.9147 m -34.31829,-48.3845 c -13.67094,10e-5 -26.57912,2.6269 -38.72459,7.8805 -15.59159,6.7225 -23.38734,16.0435 -23.38728,27.963 -6e-5,4.5759 2.4008,8.0501 7.2026,10.4226 3.72834,1.9208 8.13463,2.8811 13.2189,2.8811 7.68269,0 16.43879,-2.3161 26.26832,-6.9484 11.46756,-5.4231 17.20139,-11.5241 17.20152,-18.3031 -1.3e-4,-3.0504 -1.24293,-5.4231 -3.72841,-7.1179 -2.14678,-1.4687 -4.77361,-2.203 -7.8805,-2.2031 -13.1625,1e-4 -26.04244,5.6209 -38.63985,16.8625 -1.80779,1.9773 -4.60409,4.7736 -8.38892,8.3889 l -0.76263,0.085 -0.59315,-0.6779 0.25421,-0.9321 c 2.88097,-5.8185 9.9141,-11.6371 21.09939,-17.4557 10.67671,-5.5926 19.51754,-8.3889 26.52253,-8.389 3.61531,10e-5 6.75056,0.8193 9.40576,2.4574 3.16337,1.9208 4.74512,4.6041 4.74524,8.05 -1.2e-4,7.9653 -5.79045,14.8854 -17.37099,20.7604 -9.94251,5.0843 -19.32001,7.6264 -28.13252,7.6263 -5.81865,10e-5 -10.78986,-1.158 -14.91363,-3.4742 -5.08425,-2.8245 -7.62635,-6.9483 -7.62629,-12.3715 -6e-5,-4.8582 1.27099,-9.095 3.81315,-12.7105 8.86902,-12.6539 23.58491,-20.7321 44.14773,-24.2347 9.20792,-1.5251 26.69187,-2.2877 52.45191,-2.2878 6.43981,10e-5 16.07152,0.057 28.89515,0.1694 12.87975,0.057 22.51146,0.085 28.89516,0.085 5.19695,10e-5 9.12307,-0.5648 11.77837,-1.6948 1.86398,-0.7342 5.08396,-2.8526 9.65997,-6.3552 l 0.84736,-0.3389 0.9321,1.1863 -0.25421,0.8473 c -9.32124,10.0556 -24.77152,15.0832 -46.35087,15.0831 -7.90893,10e-5 -19.6873,-0.8755 -35.33514,-2.6268 -15.64815,-1.7511 -27.39827,-2.6267 -35.25039,-2.6268" id="path16575-5" - style="font-size:173.54040527px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Exmouth" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:173.54040527px;line-height:125%;font-family:Exmouth;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none" inkscape:connector-curvature="0" /> <path - d="m 600.625,-1391.1562 c -5.95832,0.301 -14.35188,5.2745 -25.1875,14.9062 -8.02176,7.2309 -17.34845,17.0349 -27.96875,29.4062 -5.64912,6.779 -11.28844,13.5649 -16.9375,20.3438 -2.59859,2.9941 -6.21148,6.0865 -10.84375,9.25 -4.06735,2.5986 -34.41191,25.3656 -39.3125,23.5312 -0.53337,-0.1997 -1.26798,-0.5781 -1.375,-1.0937 -0.23834,-1.1483 4.197,-6.4241 12.21875,-15.4063 4.97118,-5.4231 9.935,-10.858 14.90625,-16.2812 l -9.75,0 c -4.5193,5.2537 -7.46274,8.5878 -8.875,10 0.39541,-1.2993 0.56247,-2.4518 0.5625,-3.4688 -3e-5,-4.3497 -2.82569,-6.5312 -8.53125,-6.5312 -6.89191,0 -14.34728,2.7391 -22.3125,8.2188 -4.33149,2.9726 -7.43298,5.34 -9.59375,8.4687 10e-6,10e-5 -2.70434,0.8207 -4.625,1.7813 -1.92072,0.9603 -3.63101,1.4377 -5.15625,1.4374 -1.07335,0 -2.05892,-0.3593 -2.90625,-1.0937 8.24766,-6.6659 12.37496,-12.2618 12.375,-16.7813 -3e-5,-1.4687 -0.71877,-2.1874 -2.1875,-2.1874 -2.82458,10e-5 -5.96032,2.1444 -9.40625,6.4374 -3.33299,4.0675 -5.00002,7.5627 -5,10.5 -2e-5,2e-4 0.12376,0.5577 0.40625,1.6876 -11.01576,9.6599 -19.74753,14.5 -26.1875,14.5 -2.14665,0 -3.21874,-0.5145 -3.21875,-1.5313 10e-6,-1.1299 3.17303,-4.7428 9.5,-10.8437 6.32699,-6.1575 9.49998,-10.9976 9.5,-14.5 -10e-6,-4.0673 -1.62377,-6.0938 -4.84375,-6.0938 -2.37262,0 -6.9771,2.5779 -13.8125,7.7188 -5.81503,4.3374 -15.57478,13.2562 -21.6875,17.375 -7.68278,5.1972 -13.32205,7.7006 -16.9375,7.5312 L 362,-1294.8125 c 0.113,-1.1863 4.16577,-6.3056 12.1875,-15.3437 4.91471,-5.4798 9.83528,-10.9206 14.75,-16.3438 l -9.5625,0 c -5.93156,5.0842 -28.68563,25.426 -52.46875,32.625 -0.003,-10e-5 -0.0285,0 -0.0312,0 -0.007,0 -0.024,-9e-4 -0.0312,0 -0.0231,0 -0.0692,10e-4 -0.0937,0 -0.0162,0 -0.0475,0 -0.0625,0 -0.25291,-0.045 -0.55309,-0.2262 -0.75,-0.375 -0.0709,-0.056 -0.14178,-0.1228 -0.1875,-0.1875 -0.0137,-0.021 -0.0479,-0.068 -0.0625,-0.094 -0.0102,-0.025 -0.0259,-0.068 -0.0312,-0.094 1.1e-4,0 -5e-5,-0.028 0,-0.031 -2.7e-4,0 9e-5,-0.027 0,-0.031 10e-5,0 -2.9e-4,-0.026 0,-0.031 0.11886,-1.3111 6.11893,-8.3387 17,-20.5937 6.77891,-7.5132 13.5648,-15.0179 20.34375,-22.5313 7.66156,0.1978 12.06535,-0.09 13.15625,-0.8437 0.005,-0.01 0.0259,-0.026 0.0312,-0.031 0.0286,-0.026 0.0701,-0.067 0.0937,-0.094 0.003,0 0.028,-0.028 0.0312,-0.031 0.0301,-0.041 0.0768,-0.1117 0.0937,-0.1562 -10e-6,0 1.9e-4,-0.028 0,-0.031 l -1.125,-1.1876 -10.65625,0 14.90625,-16.5312 -9.90625,0 -14.75,16.5312 c -4.01396,-0.1416 -6.52566,0.1253 -7.5,0.8126 -0.10498,0.077 -0.20936,0.1857 -0.28125,0.2812 -0.0339,0.048 -0.0712,0.1095 -0.0937,0.1562 l 1.4375,1.125 4.40625,0 c -7.23085,8.0784 -28.18662,24.3812 -35.03125,28.5626 -6.79906,4.1534 -9.98436,4.8857 -12.1875,5.2812 2.03366,-3.333 3.06249,-6.989 3.0625,-11 -10e-6,-1.0168 -0.16106,-2.5228 -0.5,-4.5 -0.28246,-1.9772 -0.43751,-3.4832 -0.4375,-4.5 -10e-6,-1.5253 0.0805,-2.7582 0.25,-3.7188 3.50243,-2.8244 6.15502,-4.9314 7.90625,-6.3437 l -1.2813,-1.4383 c -0.003,10e-5 -0.0246,0 -0.0312,0 -0.003,-2e-4 -0.0285,0 -0.0312,0 -1.22688,0.4067 -7.82546,4.867 -19.78125,13.375 -10.91202,7.7653 -23.07076,16.4159 -30.75,21.5 -8.13471,5.4231 -14.88335,8.125 -20.25,8.125 -1.42992,0 -2.46833,-0.3306 -3.09375,-0.9688 -0.46922,-0.4943 -0.71875,-1.1889 -0.71875,-2.0624 1e-5,-4.0674 2.70189,-7.5192 8.125,-10.3438 5.02771,-2.2031 10.06604,-4.3845 15.09375,-6.5312 5.42312,-2.5987 8.12499,-5.5793 8.125,-8.9688 -10e-6,-2.9375 -1.78482,-4.4062 -5.34375,-4.4062 -6.21401,0 -13.00593,2.9431 -20.40625,8.875 -7.73925,6.2139 -11.62496,12.3677 -11.625,18.4687 3e-5,5.7056 3.72469,8.5625 11.125,8.5625 5.87507,0 16.51546,-5.5586 31.9375,-16.6875 0,0 25.61056,-17.7692 27.53125,-19.125 -7.00488,22.088 -15.34604,33.1251 -25.0625,33.125 -1.65102,0 -2.79395,-0.3633 -3.375,-1.0937 -0.0392,-0.051 -0.0909,-0.1329 -0.125,-0.1876 -0.18308,-0.3026 -0.28337,-0.6549 -0.3125,-1.0624 4.18035,0.1129 6.25001,-1.6284 6.25,-5.1876 1e-5,-2.0901 -1.19587,-3.125 -3.625,-3.125 -3.72839,1e-4 -5.59372,2.2247 -5.59375,6.6876 2e-5,4.2932 2.70187,6.4377 8.125,6.4374 6.77893,0 14.3641,-3.7306 22.78125,-11.1874 1.92069,-0.113 7.43056,-1.8252 11.3125,-3.7813 3.93186,-1.9813 16.21387,-10.4086 21.75,-14.25 -3.44595,3.446 -6.8978,6.8978 -10.34375,10.3437 -3.89786,4.5193 -5.84373,8.8017 -5.84375,12.8126 2e-5,3.5588 1.74779,5.3052 5.25,5.3437 11.23201,0.125 37.90549,-20.5574 40.15625,-22.2187 -3.89787,4.8583 -5.92427,7.3988 -6.09375,7.625 -2.20313,3.22 -3.3125,6.2382 -3.3125,9.0624 1e-5,3.672 1.74156,5.5314 5.1875,5.5313 2.76807,0 8.64294,-2.3797 17.625,-7.125 8.30152,-4.3268 18.00607,-13.323 22.78125,-17.875 6.04454,-5.762 10.3329,-8.613 12.875,-8.5 l 1.1875,0.875 c 3.8e-4,0.011 -10e-6,0.051 0,0.062 -0.002,0 -0.0242,0.024 -0.0312,0.031 -0.37172,0.832 -3.50081,4.2378 -9.375,10.2188 -6.214,6.327 -9.31248,11.2476 -9.3125,14.75 10e-6,4.8583 2.69585,7.2815 8.0625,7.2812 6.21401,0 15.38566,-4.9637 27.53125,-14.9062 1.41225,1.2993 2.9615,1.9688 4.65625,1.9688 2.70944,0 5.45731,-0.8337 8.25,-2.4376 -1.10458,2.2633 -1.625,4.5637 -1.625,6.9063 2e-5,5.8751 2.98073,8.8125 8.96875,8.8125 5.76209,0 12.82682,-3.2967 21.1875,-9.9062 -0.50842,1.4123 -0.75,2.881 -0.75,4.4062 -1e-5,3.6155 1.67303,5.4375 5.0625,5.4375 10.11059,0 35.97718,-20.524 38.40625,-22.2187 -3.84137,4.7453 -5.90503,7.286 -6.1875,7.625 -2.20314,3.22 -3.31249,6.2379 -3.3125,9.0624 2e-5,3.672 1.78481,5.5314 5.34375,5.5313 3.27649,0 9.23187,-2.256 17.875,-6.7187 7.40754,-4.4699 11.50601,-7.8449 14.34375,-10.375 L 544,-1309.375 c -0.005,0 -0.0248,0 -0.0312,0 -0.50984,0.2448 -4.56438,2.9961 -12.15625,8.2188 -7.28734,5.0276 -13.19428,6.6274 -17.3125,7.2812 -0.86863,0.1379 -1.68286,-0.1505 -1.4375,-0.9375 0.4599,-1.4752 1.3101,-2.4411 1.875,-3.0625 5.36665,-6.4964 10.76435,-12.935 16.1875,-19.375 6.55294,-7.8522 12.31001,-13.9999 17.28125,-18.4062 2.20312,-1.8643 8.98905,-6.1153 20.34375,-12.7813 11.75007,-6.8918 20.32678,-12.6057 25.75,-17.125 8.41708,-7.0048 12.6249,-13.4373 12.625,-19.3125 -8e-5,-1.6381 -0.59502,-3.1009 -1.78125,-4.3438 -1.1299,-1.2991 -2.51808,-1.9374 -4.15625,-1.9374 -0.18713,0 -0.3703,-0.01 -0.5625,0 z m -0.625,2.2187 c 0.23304,-0.017 0.46109,0 0.6875,0 2.82447,10e-5 4.24994,1.3511 4.25,4.0625 -8e-5,5.9882 -7.61646,14.4098 -22.8125,25.3125 -3.78495,2.7116 -14.34482,9.4603 -31.6875,20.25 11.80658,-15.648 19.42899,-25.4146 22.875,-29.3125 11.39149,-13.0811 20.29184,-19.8525 26.6875,-20.3125 z m -120.0625,64.9063 c 0.0321,0 0.0619,0 0.0937,0 0.20046,-0.016 0.40309,0 0.59375,0 3.27646,-1e-4 4.90622,1.4316 4.90625,4.3124 -2e-5,4.8583 -4.28837,10.578 -12.875,17.1876 -8.30418,6.327 -15.00955,9.4999 -20.09375,9.5 -1.29046,0 -2.23885,-0.3011 -2.84375,-0.875 -0.0161,-0.016 -0.0469,-0.046 -0.0625,-0.063 -0.46945,-0.5029 -0.71874,-1.2314 -0.71875,-2.125 2e-5,-3.9543 4.25111,-9.5937 12.78125,-16.9374 8.06676,-6.9449 14.14303,-10.6227 18.21875,-11 z m -213.90625,0.7812 c 0.0333,0 0.0606,0 0.0937,0 0.012,-6e-4 0.0512,-7e-4 0.0625,0 0.004,10e-5 0.0273,10e-5 0.0312,0 0.012,-5e-4 0.0512,-6e-4 0.0625,0 0.004,10e-5 0.0273,10e-5 0.0312,0 0.012,-4e-4 0.0512,-5e-4 0.0625,0 0.004,10e-5 0.0272,10e-5 0.0312,0 0.012,-4e-4 0.0512,-4e-4 0.0625,0 0.004,10e-5 0.0272,10e-5 0.0312,0 0.13863,-0.01 0.27032,0 0.40625,0 1.24279,10e-5 1.87497,0.6382 1.875,1.9375 -2e-5,3.3895 -6.35202,7.1945 -19.0625,11.375 6.63026,-8.2614 12.08362,-12.7437 16.3125,-13.3125 z" + d="m 600.625,-1391.1562 c -5.95832,0.301 -14.35188,5.2745 -25.1875,14.9062 -8.02176,7.2309 -17.34845,17.0349 -27.96875,29.4062 -5.64912,6.779 -11.28844,13.5649 -16.9375,20.3438 -2.59859,2.9941 -6.21148,6.0865 -10.84375,9.25 -4.06735,2.5986 -34.41191,25.3656 -39.3125,23.5312 -0.53337,-0.1997 -1.26798,-0.5781 -1.375,-1.0937 -0.23834,-1.1483 4.197,-6.4241 12.21875,-15.4063 4.97118,-5.4231 9.935,-10.858 14.90625,-16.2812 h -9.75 c -4.5193,5.2537 -7.46274,8.5878 -8.875,10 0.39541,-1.2993 0.56247,-2.4518 0.5625,-3.4688 -3e-5,-4.3497 -2.82569,-6.5312 -8.53125,-6.5312 -6.89191,0 -14.34728,2.7391 -22.3125,8.2188 -4.33149,2.9726 -7.43298,5.34 -9.59375,8.4687 10e-6,10e-5 -2.70434,0.8207 -4.625,1.7813 -1.92072,0.9603 -3.63101,1.4377 -5.15625,1.4374 -1.07335,0 -2.05892,-0.3593 -2.90625,-1.0937 8.24766,-6.6659 12.37496,-12.2618 12.375,-16.7813 -3e-5,-1.4687 -0.71877,-2.1874 -2.1875,-2.1874 -2.82458,10e-5 -5.96032,2.1444 -9.40625,6.4374 -3.33299,4.0675 -5.00002,7.5627 -5,10.5 -2e-5,2e-4 0.12376,0.5577 0.40625,1.6876 -11.01576,9.6599 -19.74753,14.5 -26.1875,14.5 -2.14665,0 -3.21874,-0.5145 -3.21875,-1.5313 10e-6,-1.1299 3.17303,-4.7428 9.5,-10.8437 6.32699,-6.1575 9.49998,-10.9976 9.5,-14.5 -10e-6,-4.0673 -1.62377,-6.0938 -4.84375,-6.0938 -2.37262,0 -6.9771,2.5779 -13.8125,7.7188 -5.81503,4.3374 -15.57478,13.2562 -21.6875,17.375 -7.68278,5.1972 -13.32205,7.7006 -16.9375,7.5312 L 362,-1294.8125 c 0.113,-1.1863 4.16577,-6.3056 12.1875,-15.3437 4.91471,-5.4798 9.83528,-10.9206 14.75,-16.3438 h -9.5625 c -5.93156,5.0842 -28.68563,25.426 -52.46875,32.625 -0.003,-10e-5 -0.0285,0 -0.0312,0 -0.007,0 -0.024,-9e-4 -0.0312,0 -0.0231,0 -0.0692,10e-4 -0.0937,0 -0.0162,0 -0.0475,0 -0.0625,0 -0.25291,-0.045 -0.55309,-0.2262 -0.75,-0.375 -0.0709,-0.056 -0.14178,-0.1228 -0.1875,-0.1875 -0.0137,-0.021 -0.0479,-0.068 -0.0625,-0.094 -0.0102,-0.025 -0.0259,-0.068 -0.0312,-0.094 1.1e-4,0 -5e-5,-0.028 0,-0.031 -2.7e-4,0 9e-5,-0.027 0,-0.031 10e-5,0 -2.9e-4,-0.026 0,-0.031 0.11886,-1.3111 6.11893,-8.3387 17,-20.5937 6.77891,-7.5132 13.5648,-15.0179 20.34375,-22.5313 7.66156,0.1978 12.06535,-0.09 13.15625,-0.8437 0.005,-0.01 0.0259,-0.026 0.0312,-0.031 0.0286,-0.026 0.0701,-0.067 0.0937,-0.094 0.003,0 0.028,-0.028 0.0312,-0.031 0.0301,-0.041 0.0768,-0.1117 0.0937,-0.1562 -10e-6,0 1.9e-4,-0.028 0,-0.031 l -1.125,-1.1876 H 364.625 l 14.90625,-16.5312 H 369.625 l -14.75,16.5312 c -4.01396,-0.1416 -6.52566,0.1253 -7.5,0.8126 -0.10498,0.077 -0.20936,0.1857 -0.28125,0.2812 -0.0339,0.048 -0.0712,0.1095 -0.0937,0.1562 l 1.4375,1.125 h 4.40625 c -7.23085,8.0784 -28.18662,24.3812 -35.03125,28.5626 -6.79906,4.1534 -9.98436,4.8857 -12.1875,5.2812 2.03366,-3.333 3.06249,-6.989 3.0625,-11 -10e-6,-1.0168 -0.16106,-2.5228 -0.5,-4.5 -0.28246,-1.9772 -0.43751,-3.4832 -0.4375,-4.5 -10e-6,-1.5253 0.0805,-2.7582 0.25,-3.7188 3.50243,-2.8244 6.15502,-4.9314 7.90625,-6.3437 l -1.2813,-1.4383 c -0.003,10e-5 -0.0246,0 -0.0312,0 -0.003,-2e-4 -0.0285,0 -0.0312,0 -1.22688,0.4067 -7.82546,4.867 -19.78125,13.375 -10.91202,7.7653 -23.07076,16.4159 -30.75,21.5 -8.13471,5.4231 -14.88335,8.125 -20.25,8.125 -1.42992,0 -2.46833,-0.3306 -3.09375,-0.9688 -0.46922,-0.4943 -0.71875,-1.1889 -0.71875,-2.0624 1e-5,-4.0674 2.70189,-7.5192 8.125,-10.3438 5.02771,-2.2031 10.06604,-4.3845 15.09375,-6.5312 5.42312,-2.5987 8.12499,-5.5793 8.125,-8.9688 -10e-6,-2.9375 -1.78482,-4.4062 -5.34375,-4.4062 -6.21401,0 -13.00593,2.9431 -20.40625,8.875 -7.73925,6.2139 -11.62496,12.3677 -11.625,18.4687 3e-5,5.7056 3.72469,8.5625 11.125,8.5625 5.87507,0 16.51546,-5.5586 31.9375,-16.6875 0,0 25.61056,-17.7692 27.53125,-19.125 -7.00488,22.088 -15.34604,33.1251 -25.0625,33.125 -1.65102,0 -2.79395,-0.3633 -3.375,-1.0937 -0.0392,-0.051 -0.0909,-0.1329 -0.125,-0.1876 -0.18308,-0.3026 -0.28337,-0.6549 -0.3125,-1.0624 4.18035,0.1129 6.25001,-1.6284 6.25,-5.1876 1e-5,-2.0901 -1.19587,-3.125 -3.625,-3.125 -3.72839,1e-4 -5.59372,2.2247 -5.59375,6.6876 2e-5,4.2932 2.70187,6.4377 8.125,6.4374 6.77893,0 14.3641,-3.7306 22.78125,-11.1874 1.92069,-0.113 7.43056,-1.8252 11.3125,-3.7813 3.93186,-1.9813 16.21387,-10.4086 21.75,-14.25 -3.44595,3.446 -6.8978,6.8978 -10.34375,10.3437 -3.89786,4.5193 -5.84373,8.8017 -5.84375,12.8126 2e-5,3.5588 1.74779,5.3052 5.25,5.3437 11.23201,0.125 37.90549,-20.5574 40.15625,-22.2187 -3.89787,4.8583 -5.92427,7.3988 -6.09375,7.625 -2.20313,3.22 -3.3125,6.2382 -3.3125,9.0624 1e-5,3.672 1.74156,5.5314 5.1875,5.5313 2.76807,0 8.64294,-2.3797 17.625,-7.125 8.30152,-4.3268 18.00607,-13.323 22.78125,-17.875 6.04454,-5.762 10.3329,-8.613 12.875,-8.5 l 1.1875,0.875 c 3.8e-4,0.011 -10e-6,0.051 0,0.062 -0.002,0 -0.0242,0.024 -0.0312,0.031 -0.37172,0.832 -3.50081,4.2378 -9.375,10.2188 -6.214,6.327 -9.31248,11.2476 -9.3125,14.75 10e-6,4.8583 2.69585,7.2815 8.0625,7.2812 6.21401,0 15.38566,-4.9637 27.53125,-14.9062 1.41225,1.2993 2.9615,1.9688 4.65625,1.9688 2.70944,0 5.45731,-0.8337 8.25,-2.4376 -1.10458,2.2633 -1.625,4.5637 -1.625,6.9063 2e-5,5.8751 2.98073,8.8125 8.96875,8.8125 5.76209,0 12.82682,-3.2967 21.1875,-9.9062 -0.50842,1.4123 -0.75,2.881 -0.75,4.4062 -1e-5,3.6155 1.67303,5.4375 5.0625,5.4375 10.11059,0 35.97718,-20.524 38.40625,-22.2187 -3.84137,4.7453 -5.90503,7.286 -6.1875,7.625 -2.20314,3.22 -3.31249,6.2379 -3.3125,9.0624 2e-5,3.672 1.78481,5.5314 5.34375,5.5313 3.27649,0 9.23187,-2.256 17.875,-6.7187 7.40754,-4.4699 11.50601,-7.8449 14.34375,-10.375 L 544,-1309.375 c -0.005,0 -0.0248,0 -0.0312,0 -0.50984,0.2448 -4.56438,2.9961 -12.15625,8.2188 -7.28734,5.0276 -13.19428,6.6274 -17.3125,7.2812 -0.86863,0.1379 -1.68286,-0.1505 -1.4375,-0.9375 0.4599,-1.4752 1.3101,-2.4411 1.875,-3.0625 5.36665,-6.4964 10.76435,-12.935 16.1875,-19.375 6.55294,-7.8522 12.31001,-13.9999 17.28125,-18.4062 2.20312,-1.8643 8.98905,-6.1153 20.34375,-12.7813 11.75007,-6.8918 20.32678,-12.6057 25.75,-17.125 8.41708,-7.0048 12.6249,-13.4373 12.625,-19.3125 -8e-5,-1.6381 -0.59502,-3.1009 -1.78125,-4.3438 -1.1299,-1.2991 -2.51808,-1.9374 -4.15625,-1.9374 -0.18713,0 -0.3703,-0.01 -0.5625,0 z m -0.625,2.2187 c 0.23304,-0.017 0.46109,0 0.6875,0 2.82447,10e-5 4.24994,1.3511 4.25,4.0625 -8e-5,5.9882 -7.61646,14.4098 -22.8125,25.3125 -3.78495,2.7116 -14.34482,9.4603 -31.6875,20.25 11.80658,-15.648 19.42899,-25.4146 22.875,-29.3125 11.39149,-13.0811 20.29184,-19.8525 26.6875,-20.3125 z m -120.0625,64.9063 c 0.0321,0 0.0619,0 0.0937,0 0.20046,-0.016 0.40309,0 0.59375,0 3.27646,-1e-4 4.90622,1.4316 4.90625,4.3124 -2e-5,4.8583 -4.28837,10.578 -12.875,17.1876 -8.30418,6.327 -15.00955,9.4999 -20.09375,9.5 -1.29046,0 -2.23885,-0.3011 -2.84375,-0.875 -0.0161,-0.016 -0.0469,-0.046 -0.0625,-0.063 -0.46945,-0.5029 -0.71874,-1.2314 -0.71875,-2.125 2e-5,-3.9543 4.25111,-9.5937 12.78125,-16.9374 8.06676,-6.9449 14.14303,-10.6227 18.21875,-11 z m -213.90625,0.7812 c 0.0333,0 0.0606,0 0.0937,0 0.012,-6e-4 0.0512,-7e-4 0.0625,0 0.004,10e-5 0.0273,10e-5 0.0312,0 0.012,-5e-4 0.0512,-6e-4 0.0625,0 0.004,10e-5 0.0273,10e-5 0.0312,0 0.012,-4e-4 0.0512,-5e-4 0.0625,0 0.004,10e-5 0.0272,10e-5 0.0312,0 0.012,-4e-4 0.0512,-4e-4 0.0625,0 0.004,10e-5 0.0272,10e-5 0.0312,0 0.13863,-0.01 0.27032,0 0.40625,0 1.24279,10e-5 1.87497,0.6382 1.875,1.9375 -2e-5,3.3895 -6.35202,7.1945 -19.0625,11.375 6.63026,-8.2614 12.08362,-12.7437 16.3125,-13.3125 z" id="path16577-3" - style="font-size:173.54040527px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Exmouth" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:173.54040527px;line-height:125%;font-family:Exmouth;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none" inkscape:connector-curvature="0" /> <path d="m 406.81523,-1346.1607 c -0.7909,1.9773 -2.62686,3.898 -5.50787,5.7621 -2.09019,-1.4122 -3.75668,-3.2199 -4.99946,-5.4231 1.07331,-2.3726 2.79628,-4.2085 5.16893,-5.5079 1.75119,0.8474 3.53066,2.5704 5.3384,5.1689" id="path16579-2" - style="font-size:173.54040527px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Exmouth" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:173.54040527px;line-height:125%;font-family:Exmouth;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none" inkscape:connector-curvature="0" /> </g> </g> @@ -92323,36 +93081,36 @@ transform="matrix(0.70713063,0,0,0.70713063,-1523.2675,436.54273)"> <g id="text10482-1-9" - style="font-size:15.91540909px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans Mono" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15.91540909px;line-height:125%;font-family:'Bitstream Vera Sans Mono';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none" transform="scale(0.9460798,1.0569933)"> <path inkscape:connector-curvature="0" id="path62827" - d="m 701.87431,209.89048 0,7.46812 0.62169,0 c 0.90146,0 1.54388,-0.28235 1.92726,-0.84706 0.38337,-0.56989 0.57506,-1.5361 0.57507,-2.89866 -10e-6,-1.35218 -0.1917,-2.31063 -0.57507,-2.87534 -0.38338,-0.5647 -1.0258,-0.84705 -1.92726,-0.84706 l -0.62169,0 m -2.29251,-2.06714 2.4557,0 c 1.89617,1e-5 3.26131,0.45333 4.09542,1.35996 0.8341,0.90147 1.25116,2.37799 1.25117,4.42958 -10e-6,2.05678 -0.41707,3.54108 -1.25117,4.4529 -0.83411,0.90664 -2.19925,1.35996 -4.09542,1.35996 l -2.4557,0 0,-11.6024" /> + d="m 701.87431,209.89048 v 7.46812 h 0.62169 c 0.90146,0 1.54388,-0.28235 1.92726,-0.84706 0.38337,-0.56989 0.57506,-1.5361 0.57507,-2.89866 -10e-6,-1.35218 -0.1917,-2.31063 -0.57507,-2.87534 -0.38338,-0.5647 -1.0258,-0.84705 -1.92726,-0.84706 h -0.62169 m -2.29251,-2.06714 h 2.4557 c 1.89617,1e-5 3.26131,0.45333 4.09542,1.35996 0.8341,0.90147 1.25116,2.37799 1.25117,4.42958 -10e-6,2.05678 -0.41707,3.54108 -1.25117,4.4529 -0.83411,0.90664 -2.19925,1.35996 -4.09542,1.35996 h -2.4557 v -11.6024" /> </g> <g id="text10478-7-6" - style="font-size:15.91540909px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans Mono" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15.91540909px;line-height:125%;font-family:'Bitstream Vera Sans Mono';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none" transform="scale(0.9460798,1.0569933)"> <path inkscape:connector-curvature="0" id="path62824" - d="m 698.82892,219.42574 -7.22722,0 0,-11.6024 7.22722,0 0,2.02051 -4.93471,0 0,2.50233 4.46843,0 0,2.02051 -4.46843,0 0,3.03853 4.93471,0 0,2.02052" /> + d="m 698.82892,219.42574 h -7.22722 v -11.6024 h 7.22722 v 2.02051 h -4.93471 v 2.50233 h 4.46843 v 2.02051 h -4.46843 v 3.03853 h 4.93471 v 2.02052" /> </g> <g id="text10486-2-4" - style="font-size:15.91540909px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans Mono" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15.91540909px;line-height:125%;font-family:'Bitstream Vera Sans Mono';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none" transform="scale(0.9460798,1.0569933)"> <path inkscape:connector-curvature="0" id="path62830" - d="m 710.72295,214.3356 c -1.15532,-0.44036 -1.93762,-0.90145 -2.3469,-1.38327 -0.40928,-0.48699 -0.61392,-1.13977 -0.61392,-1.95834 0,-1.05169 0.33675,-1.87803 1.01025,-2.47901 0.6735,-0.60096 1.59828,-0.90145 2.77432,-0.90146 0.53362,1e-5 1.06724,0.0622 1.60087,0.18651 0.53361,0.11917 1.06205,0.2979 1.58532,0.53621 l 0,2.2381 c -0.49218,-0.3471 -0.99213,-0.61132 -1.49984,-0.79266 -0.50772,-0.18132 -1.01026,-0.27198 -1.50761,-0.27199 -0.55435,1e-5 -0.97918,0.1114 -1.27448,0.33416 -0.29531,0.22278 -0.44296,0.5414 -0.44296,0.95586 0,0.32122 0.10621,0.58803 0.31862,0.80043 0.21759,0.20724 0.66832,0.43779 1.35219,0.69164 l 0.98694,0.37302 c 0.93254,0.34193 1.61899,0.79525 2.05937,1.35995 0.44036,0.56472 0.66054,1.27708 0.66055,2.13708 -10e-6,1.17087 -0.34712,2.04642 -1.04134,2.62667 -0.68905,0.57507 -1.73298,0.8626 -3.13179,0.8626 -0.57507,0 -1.15273,-0.0699 -1.73298,-0.20982 -0.57507,-0.1347 -1.132,-0.33675 -1.67081,-0.60616 l 0,-2.37021 c 0.61134,0.43519 1.20195,0.75899 1.77184,0.9714 0.57506,0.21241 1.14236,0.31862 1.70189,0.31862 0.5647,0 1.00248,-0.12693 1.31333,-0.38079 0.31084,-0.25904 0.46627,-0.6191 0.46627,-1.0802 0,-0.34711 -0.10362,-0.65018 -0.31084,-0.90923 -0.20724,-0.26421 -0.50773,-0.47144 -0.90146,-0.62169 l -1.12683,-0.42742" /> + d="m 710.72295,214.3356 c -1.15532,-0.44036 -1.93762,-0.90145 -2.3469,-1.38327 -0.40928,-0.48699 -0.61392,-1.13977 -0.61392,-1.95834 0,-1.05169 0.33675,-1.87803 1.01025,-2.47901 0.6735,-0.60096 1.59828,-0.90145 2.77432,-0.90146 0.53362,1e-5 1.06724,0.0622 1.60087,0.18651 0.53361,0.11917 1.06205,0.2979 1.58532,0.53621 v 2.2381 c -0.49218,-0.3471 -0.99213,-0.61132 -1.49984,-0.79266 -0.50772,-0.18132 -1.01026,-0.27198 -1.50761,-0.27199 -0.55435,1e-5 -0.97918,0.1114 -1.27448,0.33416 -0.29531,0.22278 -0.44296,0.5414 -0.44296,0.95586 0,0.32122 0.10621,0.58803 0.31862,0.80043 0.21759,0.20724 0.66832,0.43779 1.35219,0.69164 l 0.98694,0.37302 c 0.93254,0.34193 1.61899,0.79525 2.05937,1.35995 0.44036,0.56472 0.66054,1.27708 0.66055,2.13708 -10e-6,1.17087 -0.34712,2.04642 -1.04134,2.62667 -0.68905,0.57507 -1.73298,0.8626 -3.13179,0.8626 -0.57507,0 -1.15273,-0.0699 -1.73298,-0.20982 -0.57507,-0.1347 -1.132,-0.33675 -1.67081,-0.60616 v -2.37021 c 0.61134,0.43519 1.20195,0.75899 1.77184,0.9714 0.57506,0.21241 1.14236,0.31862 1.70189,0.31862 0.5647,0 1.00248,-0.12693 1.31333,-0.38079 0.31084,-0.25904 0.46627,-0.6191 0.46627,-1.0802 0,-0.34711 -0.10362,-0.65018 -0.31084,-0.90923 -0.20724,-0.26421 -0.50773,-0.47144 -0.90146,-0.62169 l -1.12683,-0.42742" /> </g> <path inkscape:connector-curvature="0" id="text10478-7" - d="m 673.1875,219.4375 c -1.11263,1e-5 -1.98781,0.33354 -2.625,0.96875 -0.63719,0.63523 -0.96875,1.51337 -0.96875,2.625 0,0.86523 0.20653,1.54776 0.59375,2.0625 0.0504,0.0663 0.12517,0.12174 0.1875,0.1875 1.15377,-0.13682 2.29363,-0.30772 3.40625,-0.6875 l -0.46875,-0.1875 c -0.647,-0.26832 -1.07539,-0.53095 -1.28125,-0.75 -0.20096,-0.22451 -0.3125,-0.50423 -0.3125,-0.84375 0,-0.43808 0.15811,-0.76452 0.4375,-1 0.27938,-0.23546 0.66304,-0.37499 1.1875,-0.375 0.47053,1e-5 0.95715,0.12085 1.4375,0.3125 0.48034,0.19167 0.94061,0.44561 1.40625,0.8125 l 0,-2.34375 c -0.49505,-0.25189 -0.99516,-0.43654 -1.5,-0.5625 -0.50485,-0.13141 -0.99516,-0.21874 -1.5,-0.21875 z m -18.875,0.21875 0,3.40625 c 0.72471,0.36031 1.42932,0.69241 2.15625,0.96875 l 0,-2.21875 4.6875,0 0,-2.15625 -6.84375,0 z m 7.5625,0 0,5.75 c 0.71635,0.10104 1.43195,0.17048 2.15625,0.21875 l 0,-3.78125 0.59375,0 c 0.85285,1e-5 1.44979,0.30937 1.8125,0.90625 0.34855,0.57361 0.54756,1.53331 0.5625,2.875 0.74095,-0.0726 1.48307,-0.15174 2.21875,-0.21875 -0.0467,-1.962 -0.41653,-3.41931 -1.15625,-4.3125 -0.78914,-0.9583 -2.08108,-1.43749 -3.875,-1.4375 l -2.3125,0 z m -4.21875,4.78125 c 1.01035,0.32447 2.0418,0.56004 3.0625,0.75 l 0,-0.75 -3.0625,0 z" - style="font-size:15.91540909px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;opacity:0.31627909;color:#000000;fill:url(#linearGradient62885);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.04116011;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans Mono" /> + d="m 673.1875,219.4375 c -1.11263,1e-5 -1.98781,0.33354 -2.625,0.96875 -0.63719,0.63523 -0.96875,1.51337 -0.96875,2.625 0,0.86523 0.20653,1.54776 0.59375,2.0625 0.0504,0.0663 0.12517,0.12174 0.1875,0.1875 1.15377,-0.13682 2.29363,-0.30772 3.40625,-0.6875 l -0.46875,-0.1875 c -0.647,-0.26832 -1.07539,-0.53095 -1.28125,-0.75 -0.20096,-0.22451 -0.3125,-0.50423 -0.3125,-0.84375 0,-0.43808 0.15811,-0.76452 0.4375,-1 0.27938,-0.23546 0.66304,-0.37499 1.1875,-0.375 0.47053,1e-5 0.95715,0.12085 1.4375,0.3125 0.48034,0.19167 0.94061,0.44561 1.40625,0.8125 v -2.34375 c -0.49505,-0.25189 -0.99516,-0.43654 -1.5,-0.5625 -0.50485,-0.13141 -0.99516,-0.21874 -1.5,-0.21875 z m -18.875,0.21875 v 3.40625 c 0.72471,0.36031 1.42932,0.69241 2.15625,0.96875 v -2.21875 h 4.6875 v -2.15625 z m 7.5625,0 v 5.75 c 0.71635,0.10104 1.43195,0.17048 2.15625,0.21875 v -3.78125 h 0.59375 c 0.85285,1e-5 1.44979,0.30937 1.8125,0.90625 0.34855,0.57361 0.54756,1.53331 0.5625,2.875 0.74095,-0.0726 1.48307,-0.15174 2.21875,-0.21875 -0.0467,-1.962 -0.41653,-3.41931 -1.15625,-4.3125 -0.78914,-0.9583 -2.08108,-1.43749 -3.875,-1.4375 z m -4.21875,4.78125 c 1.01035,0.32447 2.0418,0.56004 3.0625,0.75 v -0.75 z" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15.91540909px;line-height:125%;font-family:'Bitstream Vera Sans Mono';text-align:start;writing-mode:lr-tb;text-anchor:start;display:inline;overflow:visible;visibility:visible;opacity:0.31627909;fill:url(#linearGradient62885);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.04116011;marker:none;enable-background:accumulate" /> </g> <g style="display:inline" @@ -92370,12 +93128,12 @@ <path inkscape:connector-curvature="0" id="path1432" - style="fill:url(#linearGradient62692);stroke:url(#linearGradient62694);stroke-linecap:round;stroke-linejoin:round;display:block" - d="m 17.5,7.4997 6,5.3693 -6,5.631 V 15.4994 H 7.5004 v -4.999 H 17.5 V 7.4998 z" /> + style="display:block;fill:url(#linearGradient62692);stroke:url(#linearGradient62694);stroke-linecap:round;stroke-linejoin:round" + d="m 17.5,7.4997 6,5.3693 -6,5.631 V 15.4994 H 7.5004 v -4.999 H 17.5 V 7.4998 Z" /> <path inkscape:connector-curvature="0" id="path3777" - style="opacity:0.4;fill:none;stroke:url(#linearGradient62696);display:block" + style="display:block;opacity:0.4;fill:none;stroke:url(#linearGradient62696)" d="M 18.531,8.7812 V 10 A 0.51754,0.51754 0 0 1 18,10.531 H 9.4375 l 0.03125,2.9375 h 8.5312 a 0.51754,0.51754 0 0 1 0.531,0.532 v 1.1562 l 3.469,-3.281 -3.469,-3.0938 z" transform="translate(0,0.99987)" /> </g> @@ -93020,28 +93778,28 @@ inkscape:radius="1" inkscape:original="M 108 192.36133 L 108 214.36133 L 110 214.36133 L 110 203.36133 L 111 203.36133 L 111 213.36133 L 113 213.36133 L 113 201.36133 L 114 201.36133 L 114 214.36133 L 117 214.36133 L 117 202.36133 L 118 202.36133 L 118 215.36133 L 120 215.36133 L 120 201.36133 L 121 201.36133 L 121 212.36133 L 123 212.36133 L 123 202.36133 L 124 202.36133 L 124 214.36133 L 125 214.36133 L 125 197.36133 L 120 192.36133 L 108 192.36133 z " xlink:href="#path18406" - style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;marker:none;enable-background:accumulate" id="path18446" inkscape:href="#path18406" - d="m 127.90625,191.375 a 1.0001,1.0001 0 0 0 -0.90625,1 l 0,22 a 1.0001,1.0001 0 0 0 1,1 l 2,0 a 1.0001,1.0001 0 0 0 1,-1 l 2,0 a 1.0001,1.0001 0 0 0 1,1 l 1,0 a 1.0001,1.0001 0 0 0 1,-1 l 0,-5 1,0 0,5 a 1.0001,1.0001 0 0 0 1,1 l 2,0 a 1.0001,1.0001 0 0 0 0.46875,-0.125 1.0001,1.0001 0 0 0 0.0312,0 1.0001,1.0001 0 0 0 0.5,0.125 l 2,0 a 1.0001,1.0001 0 0 0 0.46875,-0.125 1.0001,1.0001 0 0 0 0.0312,0 1.0001,1.0001 0 0 0 0.5,0.125 l 1,0 a 1.0001,1.0001 0 0 0 1,-1 l 0,-17 a 1.0001,1.0001 0 0 0 -0.28125,-0.71875 l -5,-5 A 1.0001,1.0001 0 0 0 140,191.375 l -12,0 a 1.0001,1.0001 0 0 0 -0.0937,0 z" /> + d="m 108,191.36133 a 1.0001,1.0001 0 0 0 -1,1 v 22 a 1.0001,1.0001 0 0 0 1,1 h 2 a 1.0001,1.0001 0 0 0 1,-1 h 2 a 1.0001,1.0001 0 0 0 1,1 h 3 a 1.0001,1.0001 0 0 0 1,1 h 2 a 1.0001,1.0001 0 0 0 1,-1 v -2 h 2 v 1 a 1.0001,1.0001 0 0 0 1,1 h 1 a 1.0001,1.0001 0 0 0 1,-1 v -17 a 1.0001,1.0001 0 0 0 -0.29297,-0.70703 l -5,-5 A 1.0001,1.0001 0 0 0 120,191.36133 Z" /> <path sodipodi:nodetypes="cccccccccccccccccccccccccc" inkscape:connector-curvature="0" id="path18406" - d="m 108,192.36218 0,22 2,0 0,-11 1,0 0,10 2,0 0,-12 1,0 0,13 3,0 0,-12 1,0 0,13 2,0 0,-14 1,0 0,11 2,0 0,-10 1,0 0,12 1,0 0,-17 -5,-5 z" - style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + d="m 108,192.36218 v 22 h 2 v -11 h 1 v 10 h 2 v -12 h 1 v 13 h 3 v -12 h 1 v 13 h 2 v -14 h 1 v 11 h 2 v -10 h 1 v 12 h 1 v -17 l -5,-5 z" + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;marker:none;enable-background:accumulate" /> <g id="g18450" clip-path="url(#clipPath18454)"> <path inkscape:connector-curvature="0" id="path18408" - style="color:#000000;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - d="m 118.43116,207.75778 0,1 1,0 0,-1 -1,0 z m 1,1 0,4 1,0 0,-4 -1,0 z m 0,4 -1,0 0,1 1,0 0,-1 z m -1,0 0,-4 -1,0 0,4 1,0 z m 3,-4 1,0 0,-1 1,0 0,5 1,0 0,1 -3,0 0,-1 1,0 0,-3 -1,0 0,-1 m -11,-1 0,1 1,0 0,-1 -1,0 z m 1,1 0,4 1,0 0,-4 -1,0 z m 0,4 -1,0 0,1 1,0 0,-1 z m -1,0 0,-4 -1,0 0,4 1,0 z m 3,-4 1,0 0,-1 1,0 0,5 1,0 0,1 -3,0 0,-1 1,0 0,-3 -1,0 0,-1 m 9,-9 0,1 1,0 0,-1 -1,0 z m 1,1 0,4 1,0 0,-4 -1,0 z m 0,4 -1,0 0,1 1,0 0,-1 z m -1,0 0,-4 -1,0 0,4 1,0 z m -5,-4 1,0 0,-1 1,0 0,5 1,0 0,1 -3,0 0,-1 1,0 0,-3 -1,0 0,-1 m -7,-1 0,1 1,0 0,-1 -1,0 z m 1,1 0,4 1,0 0,-4 -1,0 z m 0,4 -1,0 0,1 1,0 0,-1 z m -1,0 0,-4 -1,0 0,4 1,0 z m 3,-4 1,0 0,-1 1,0 0,5 1,0 0,1 -3,0 0,-1 1,0 0,-3 -1,0 0,-1" /> + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;marker:none;enable-background:accumulate" + d="m 118.43116,207.75778 v 1 h 1 v -1 z m 1,1 v 4 h 1 v -4 z m 0,4 h -1 v 1 h 1 z m -1,0 v -4 h -1 v 4 z m 3,-4 h 1 v -1 h 1 v 5 h 1 v 1 h -3 v -1 h 1 v -3 h -1 v -1 m -11,-1 v 1 h 1 v -1 z m 1,1 v 4 h 1 v -4 z m 0,4 h -1 v 1 h 1 z m -1,0 v -4 h -1 v 4 z m 3,-4 h 1 v -1 h 1 v 5 h 1 v 1 h -3 v -1 h 1 v -3 h -1 v -1 m 9,-9 v 1 h 1 v -1 z m 1,1 v 4 h 1 v -4 z m 0,4 h -1 v 1 h 1 z m -1,0 v -4 h -1 v 4 z m -5,-4 h 1 v -1 h 1 v 5 h 1 v 1 h -3 v -1 h 1 v -3 h -1 v -1 m -7,-1 v 1 h 1 v -1 z m 1,1 v 4 h 1 v -4 z m 0,4 h -1 v 1 h 1 z m -1,0 v -4 h -1 v 4 z m 3,-4 h 1 v -1 h 1 v 5 h 1 v 1 h -3 v -1 h 1 v -3 h -1 v -1" /> <path inkscape:connector-curvature="0" - d="m 118,207.36218 0,1 1,0 0,-1 -1,0 z m 1,1 0,4 1,0 0,-4 -1,0 z m 0,4 -1,0 0,1 1,0 0,-1 z m -1,0 0,-4 -1,0 0,4 1,0 z m 3,-4 1,0 0,-1 1,0 0,5 1,0 0,1 -3,0 0,-1 1,0 0,-3 -1,0 0,-1 m -11,-1 0,1 1,0 0,-1 -1,0 z m 1,1 0,4 1,0 0,-4 -1,0 z m 0,4 -1,0 0,1 1,0 0,-1 z m -1,0 0,-4 -1,0 0,4 1,0 z m 3,-4 1,0 0,-1 1,0 0,5 1,0 0,1 -3,0 0,-1 1,0 0,-3 -1,0 0,-1 m 9,-9 0,1 1,0 0,-1 -1,0 z m 1,1 0,4 1,0 0,-4 -1,0 z m 0,4 -1,0 0,1 1,0 0,-1 z m -1,0 0,-4 -1,0 0,4 1,0 z m -5,-4 1,0 0,-1 1,0 0,5 1,0 0,1 -3,0 0,-1 1,0 0,-3 -1,0 0,-1 m -7,-1 0,1 1,0 0,-1 -1,0 z m 1,1 0,4 1,0 0,-4 -1,0 z m 0,4 -1,0 0,1 1,0 0,-1 z m -1,0 0,-4 -1,0 0,4 1,0 z m 3,-4 1,0 0,-1 1,0 0,5 1,0 0,1 -3,0 0,-1 1,0 0,-3 -1,0 0,-1" - style="color:#000000;fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="m 118,207.36218 v 1 h 1 v -1 z m 1,1 v 4 h 1 v -4 z m 0,4 h -1 v 1 h 1 z m -1,0 v -4 h -1 v 4 z m 3,-4 h 1 v -1 h 1 v 5 h 1 v 1 h -3 v -1 h 1 v -3 h -1 v -1 m -11,-1 v 1 h 1 v -1 z m 1,1 v 4 h 1 v -4 z m 0,4 h -1 v 1 h 1 z m -1,0 v -4 h -1 v 4 z m 3,-4 h 1 v -1 h 1 v 5 h 1 v 1 h -3 v -1 h 1 v -3 h -1 v -1 m 9,-9 v 1 h 1 v -1 z m 1,1 v 4 h 1 v -4 z m 0,4 h -1 v 1 h 1 z m -1,0 v -4 h -1 v 4 z m -5,-4 h 1 v -1 h 1 v 5 h 1 v 1 h -3 v -1 h 1 v -3 h -1 v -1 m -7,-1 v 1 h 1 v -1 z m 1,1 v 4 h 1 v -4 z m 0,4 h -1 v 1 h 1 z m -1,0 v -4 h -1 v 4 z m 3,-4 h 1 v -1 h 1 v 5 h 1 v 1 h -3 v -1 h 1 v -3 h -1 v -1" + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;marker:none;enable-background:accumulate" id="path18412" /> </g> </g> @@ -93367,9 +94125,9 @@ transform="matrix(0.27063582,0.04354624,-0.04354624,0.27063582,790.21268,127.46614)"> <path id="path1683" - style="fill:url(#linearGradient10435);stroke:#606060;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round;fill-opacity:1.0" + style="fill:url(#linearGradient10435);fill-opacity:1;stroke:#606060;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round" inkscape:connector-curvature="0" - d="m 64.661,6.0611 c -4.831,1.9764 -8.619,6.2529 -9.679,11.757 -0.673,3.493 -0.092,6.917 1.339,9.901 -3.895,8.12 -19.113,29.069 -26.331,36.587 -6.581,0.93 -12.171,5.856 -13.497,12.74 -1.006,5.227 0.712,10.321 4.096,13.932 l 2.098,-10.894 c 0.523,-2.72 3.135,-4.488 5.855,-3.964 l 7.917,1.525 c 2.72,0.523 4.488,3.135 3.964,5.855 l -2.186,11.354 c 4.83,-1.977 8.619,-6.253 9.679,-11.757 0.842,-4.372 -0.202,-8.667 -2.544,-12.074 5.389,-9.026 18.947,-28.336 26.036,-34.225 7.218,-0.328 13.571,-5.527 14.996,-12.929 1.007,-5.228 -0.711,-10.321 -4.095,-13.932 l -2.098,10.894 c -0.524,2.72 -3.135,4.488 -5.855,3.964 l -7.917,-1.525 c -2.721,-0.524 -4.489,-3.135 -3.965,-5.855 l 2.187,-11.354 z" /> + d="m 64.661,6.0611 c -4.831,1.9764 -8.619,6.2529 -9.679,11.757 -0.673,3.493 -0.092,6.917 1.339,9.901 -3.895,8.12 -19.113,29.069 -26.331,36.587 -6.581,0.93 -12.171,5.856 -13.497,12.74 -1.006,5.227 0.712,10.321 4.096,13.932 l 2.098,-10.894 c 0.523,-2.72 3.135,-4.488 5.855,-3.964 l 7.917,1.525 c 2.72,0.523 4.488,3.135 3.964,5.855 l -2.186,11.354 c 4.83,-1.977 8.619,-6.253 9.679,-11.757 0.842,-4.372 -0.202,-8.667 -2.544,-12.074 5.389,-9.026 18.947,-28.336 26.036,-34.225 7.218,-0.328 13.571,-5.527 14.996,-12.929 1.007,-5.228 -0.711,-10.321 -4.095,-13.932 l -2.098,10.894 c -0.524,2.72 -3.135,4.488 -5.855,3.964 l -7.917,-1.525 c -2.721,-0.524 -4.489,-3.135 -3.965,-5.855 z" /> </g> <rect inkscape:label="#rect16270" @@ -93379,4 +94137,1107 @@ x="790" height="24" width="24" /> + <rect + inkscape:label="EditSVG" + width="24" + height="24" + x="903.99988" + y="191.36221" + id="EditSVG" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> + <rect + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + id="OpenPOT" + y="191.36221" + x="963.99988" + height="24" + width="24" + inkscape:label="OpenPOT" /> + <rect + inkscape:label="EditPO" + width="24" + height="24" + x="1023.9999" + y="191.36221" + id="EditPO" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> + <g + style="display:inline;stroke-width:5.72590113;enable-background:new" + transform="matrix(0.17404745,0,0,0.173993,904.7137,192.20214)" + id="g9139"> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccccccccccccccccccccc" + style="fill:#000000;fill-opacity:1;stroke-width:5.72590113" + d="M 54.1,12.5 12.9,54.7 C -2.7,70.3 23,69 32.3,74.9 36.6,77.7 18.5,81.3 22.2,85 c 3.6,3.7 21.7,7.1 25.3,10.7 3.6,3.7 -7.3,7.6 -3.7,11.3 3.5,3.7 11.9,0.2 13.4,8.6 1.1,6.2 15.4,3.1 21.8,-2.2 4,-3.4 -6.9,-3.4 -3.3,-7.1 9,-9.1 17,-4.1 20.3,-12.5 1.8,-4.5 -13.6,-7.7 -9.5,-10.6 9.8,-6.9 45.8,-10.4 29.2,-27 L 73,12.5 c -5.3,-5 -14,-5 -18.9,0 z m 47.3,81.3 c 0,2.1 16.3,3.3 15.4,-0.5 -1.3,-6.4 -13.6,-5.9 -15.4,0.5 z m -69.5,11.1 c 3.7,3.2 9.3,-0.7 11.1,-5.2 -3.6,-4.7 -16.9,0.3 -11.1,5.2 z m 67.5,-6.7 c -4.6,4.2 0.8,8.6 5.3,5.7 1.2,-0.8 -0.1,-4.7 -5.3,-5.7 z" + id="use7631" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccccccccccccccccccccc" + style="fill:none;stroke-width:5.72590113" + d="M 54.1,12.5 12.9,54.7 C -2.7,70.3 23,69 32.3,74.9 36.6,77.7 18.5,81.3 22.2,85 c 3.6,3.7 21.7,7.1 25.3,10.7 3.6,3.7 -7.3,7.6 -3.7,11.3 3.5,3.7 11.9,0.2 13.4,8.6 1.1,6.2 15.4,3.1 21.8,-2.2 4,-3.4 -6.9,-3.4 -3.3,-7.1 9,-9.1 17,-4.1 20.3,-12.5 1.8,-4.5 -13.6,-7.7 -9.5,-10.6 9.8,-6.9 45.8,-10.4 29.2,-27 L 73,12.5 c -5.3,-5 -14,-5 -18.9,0 z m 47.3,81.3 c 0,2.1 16.3,3.3 15.4,-0.5 -1.3,-6.4 -13.6,-5.9 -15.4,0.5 z m -69.5,11.1 c 3.7,3.2 9.3,-0.7 11.1,-5.2 -3.6,-4.7 -16.9,0.3 -11.1,5.2 z m 67.5,-6.7 c -4.6,4.2 0.8,8.6 5.3,5.7 1.2,-0.8 -0.1,-4.7 -5.3,-5.7 z" + id="use7639" /> + <path + inkscape:connector-curvature="0" + id="path7643" + d="m 16.56522,57.03937 c -11.201945,11.10103 8.47714,7.97256 23.6149,13.92674 l 31.2847,-55.00052 c -4.74316,-4.84409 -10.79826,-4.44041 -15.13776,0 z" + style="opacity:0.50526309;fill:url(#shinySpecular-4);stroke:none;stroke-width:5.72590113" + class="specularity" /> + <path + inkscape:connector-curvature="0" + d="m 70.5,15.5 16.3,16.6 c 1.5,1.5 1.5,4.6 0.6,5.5 L 79.3,31 77.7,40.7 71,37.1 60.1,44 56.5,29.5 50.7,42.1 36.2,42 c -2.8,0 -2.4,-2.9 0.5,-5.8 5.7,-6.3 16.8,-17 20.3,-20.7 3.6,-3.7 9.9,-3.6 13.5,0 z" + style="opacity:1;fill:#ffffff;stroke-width:5.72590113" + class="full-specularity" + id="icecap-7" /> + <path + inkscape:connector-curvature="0" + style="opacity:0.21674882;fill:url(#radialGradient9177);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.72590113" + d="m 113,203.5 c 0,0 3.3405,5.1007 3,7.5 -0.6682,4.7087 -10.8094,7.0584 -8.5625,11.25 2.2199,4.1411 10.2214,1.794 16.9375,6.125 6.6875,4.3125 4.8895,13.1015 9.75,15.3125 9.4792,4.312 34.375,-7.4375 33.125,-7.1875 -1.25,0.25 -24.5701,5.0954 -29.8201,0.8454 -5.986,-4.8457 -7.7022,-8.2302 -12.1174,-11.0954 -4.1375,-2.685 -9.9497,-3.7804 -11.3025,-5.9787 -1.3528,-2.1982 2.7092,-5.0346 2.99,-9.2713 0.1686,-2.5444 -4,-7.5 -4,-7.5 z" + id="path8566" + transform="matrix(0.5296484,0,0,0.5296484,-11.72226,-13.86416)" + sodipodi:nodetypes="csszsszszsc" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="csszscssc" + transform="matrix(0.5296484,0,0,0.5296484,-11.72226,-13.86416)" + id="path8718" + d="m 113,203.5 c 0,0 3.3405,5.1007 3,7.5 -0.6682,4.7087 -10.8094,7.0584 -8.5625,11.25 2.2199,4.1411 10.2214,1.794 16.9375,6.125 6.6875,4.3125 4.8895,13.1015 9.75,15.3125 9.4792,4.312 34.375,-7.4375 33.125,-7.1875 -41.3396,0.1574 -33.6249,-10.4946 -49.5625,-17.5 -2.303,-1.0123 -0.9683,-3.7633 -0.6875,-8 0.1686,-2.5444 -4,-7.5 -4,-7.5 z" + style="opacity:0.27586209;fill:url(#radialGradient8574);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.72590113;filter:url(#filter8732)" /> + <path + inkscape:connector-curvature="0" + style="opacity:0.45320201;fill:url(#radialGradient8744);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.72590113" + d="M 183.25,181.75 C 220.3537,168.0954 232.2736,166.2194 244.5,154 230.3393,165.9537 200.4015,172.3658 176,183 Z" + id="path8736" + transform="matrix(0.5296484,0,0,0.5296484,-11.72226,-13.86416)" + sodipodi:nodetypes="cccc" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccc" + transform="matrix(0.5296484,0,0,0.5296484,-11.72226,-14.79104)" + id="path8746" + d="m 183.25,181.75 c 61.1037,-21.6546 50.7736,-21.5306 61.25,-27.75 -19.4277,7.4367 -55.7345,8.2298 -68.5,29 z" + style="opacity:0.51231528;fill:url(#radialGradient8768);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.72590113;filter:url(#filter8764)" /> + <ellipse + style="display:inline;overflow:visible;visibility:visible;opacity:0.2857143;fill:url(#linearGradient8912);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.72590113;marker:none;enable-background:accumulate" + id="path8864" + transform="matrix(0.5296484,0,0,0.5296484,-12.38432,-14.79104)" + cx="229.9375" + cy="199.0625" + rx="7.9375" + ry="2.4375" /> + <ellipse + transform="matrix(0.7131486,0,0,1.140781,-54.5779,-134.955)" + id="path8874" + style="display:inline;overflow:visible;visibility:visible;opacity:0.62068936;fill:url(#linearGradient8910);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.72590113;marker:none;filter:url(#filter8906);enable-background:accumulate" + cx="229.9375" + cy="199.0625" + rx="7.9375" + ry="2.4375" /> + <path + inkscape:connector-curvature="0" + style="fill:url(#radialGradient8922);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.72590113;filter:url(#filter8980)" + d="m 214.125,203.75 c 3.7695,3.4842 24.7558,5.2722 28.1875,-1 -6.7366,4.7839 -21.7168,3.1026 -28.1875,1 z" + id="path8914" + transform="matrix(0.5296484,0,0,0.5296484,-11.72226,-14.23868)" + sodipodi:nodetypes="ccc" /> + <ellipse + transform="matrix(0.2042516,-0.1035605,0.2395168,0.4723972,5.754795,30.28656)" + id="path8984" + style="display:inline;overflow:visible;visibility:visible;opacity:0.2857143;fill:url(#linearGradient8990);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.72590113;marker:none;enable-background:accumulate" + cx="229.9375" + cy="199.0625" + rx="6.5084429" + ry="3.082082" /> + <ellipse + style="display:inline;overflow:visible;visibility:visible;opacity:0.62068936;fill:url(#linearGradient8992-5);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.72590113;marker:none;filter:url(#filter8906);enable-background:accumulate" + id="path8986" + transform="matrix(0.2750159,-0.1394397,0.5158824,1.017471,-65.3535,-69.30064)" + cx="229.9375" + cy="199.0625" + rx="7.055552" + ry="2.140048" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccc" + transform="matrix(0.2042516,-0.1035605,0.2395168,0.4723972,6.259901,30.64976)" + id="path8988" + d="m 217.0575,201.9403 c 3.7695,3.4842 26.9713,8.9112 25.255,0.8097 -3.3174,5.3233 -18.7842,1.2929 -25.255,-0.8097 z" + style="fill:url(#radialGradient8994);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.72590113;filter:url(#filter8980)" /> + <path + inkscape:connector-curvature="0" + style="fill:url(#radialGradient9004);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.72590113" + d="m 68.25,186 c 0,-0.6206 38.8462,11.8385 45.5,18.5 -5.4712,-5.3385 -33.15971,-17.6161 -37.375,-17.75 -4.21529,-0.1339 -7.625,-0.5 -8.125,-0.75 z" + id="path8996" + transform="matrix(0.5296484,0,0,0.5296484,-11.72226,-13.86416)" + sodipodi:nodetypes="cczc" /> + <g + id="g9018" + transform="matrix(0.8790148,-0.1929959,0.2338341,0.6959295,-20.20953,36.72556)" + style="stroke-width:5.72590113"> + <ellipse + style="display:inline;overflow:visible;visibility:visible;opacity:0.2857143;fill:url(#linearGradient9023);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.72590113;marker:none;enable-background:accumulate" + id="path9006" + transform="matrix(0.5296484,0,0,0.5296484,-84.4165,-4.727724)" + cx="229.9375" + cy="199.0625" + rx="7.9375" + ry="2.4375" /> + <ellipse + transform="matrix(0.7131486,0,0,1.140781,-126.6101,-124.8917)" + id="path9008" + style="display:inline;overflow:visible;visibility:visible;opacity:0.62068936;fill:url(#linearGradient9025);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.72590113;marker:none;filter:url(#filter8906);enable-background:accumulate" + cx="229.9375" + cy="199.0625" + rx="7.9375" + ry="2.4375" /> + </g> + <path + inkscape:connector-curvature="0" + style="opacity:0.61576347;fill:url(#radialGradient9046);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.72590113;filter:url(#filter9068)" + d="m 80.5,220.0625 c 0,0 2.10339,5.6508 7.875,5.9375 5.83887,0.2901 12.5032,-7.007 13.0625,-9.625 -1,2.25 -6.59033,9.0333 -13.8125,8.9375 -4.09986,-0.054 -7.125,-5.25 -7.125,-5.25 z" + id="path9038" + transform="matrix(0.5296484,0,0,0.5296484,-11.62295,-14.42691)" + sodipodi:nodetypes="czczc" /> + <path + inkscape:label="top_inner_highlight" + d="m 63.400391,10.207031 c -3.097253,0 -6.109664,1.119729 -8.257813,3.310547 L 13.943359,55.716797 a 1.4566767,1.4566767 0 0 1 -0.01367,0.01172 c -3.76575,3.765749 -4.6833689,6.246568 -4.4511724,7.638672 0.1160983,0.696051 0.4806181,1.290406 1.2089844,1.923828 0.728366,0.633421 1.814295,1.24767 3.138672,1.802734 2.648753,1.110128 6.210573,1.990179 9.710937,2.949219 3.500365,0.95904 6.941314,1.97644 9.542969,3.626953 a 1.4566767,1.4566767 0 0 1 0.01563,0.0098 c 0.396545,0.258215 0.759265,0.573102 1.021485,1.027343 0.262219,0.454242 0.363058,1.063946 0.259765,1.570313 -0.206586,1.012733 -0.840862,1.534685 -1.476562,2.019531 -1.2714,0.969692 -3.033992,1.772502 -4.789063,2.625 -1.755071,0.852498 -3.491971,1.748572 -4.371094,2.462891 -0.439561,0.357159 -0.599989,0.660243 -0.59375,0.638672 0.0062,-0.02157 -0.128773,-0.26354 0.08203,-0.05273 a 1.4566767,1.4566767 0 0 1 0.01367,0.01367 c 0.552307,0.567649 2.265324,1.519499 4.458984,2.388672 2.19366,0.869173 4.886021,1.748066 7.597656,2.628906 2.711635,0.88084 5.443057,1.762523 7.765625,2.669922 2.322568,0.907399 4.214347,1.74755 5.464844,2.998047 a 1.4566767,1.4566767 0 0 1 0.01367,0.01367 c 0.622684,0.639981 1.037708,1.431817 1.130859,2.246094 0.09315,0.814276 -0.118131,1.57267 -0.429687,2.21289 -0.623114,1.280442 -1.630567,2.266702 -2.542969,3.216802 -0.912402,0.95009 -1.729901,1.86349 -2.025391,2.4707 -0.147745,0.3036 -0.168219,0.48572 -0.154297,0.60742 0.01392,0.1217 0.04495,0.26186 0.322266,0.54688 A 1.4566767,1.4566767 0 0 1 44.859375,106 c 1.192742,1.2609 3.785509,1.43202 6.722656,2.11914 1.468574,0.34356 3.020143,0.87346 4.335938,2.01172 1.315794,1.13825 2.295418,2.86411 2.714843,5.21289 a 1.4566767,1.4566767 0 0 1 0,0.002 c 0.176524,0.99495 0.706144,1.48573 1.970704,1.88086 1.264559,0.39514 3.180187,0.45519 5.296875,0.14453 4.231067,-0.62097 9.266349,-2.69051 12.164062,-5.08789 0.164413,-0.1422 0.12384,-0.11325 0.179688,-0.18554 -0.19616,-0.14054 -0.645286,-0.45652 -1.396485,-0.83204 -0.890045,-0.44492 -1.928918,-0.85252 -2.732422,-1.86914 -0.401751,-0.5083 -0.701915,-1.30018 -0.583984,-2.08398 0.117931,-0.7838 0.546903,-1.43319 1.125,-2.02734 a 1.4566767,1.4566767 0 0 1 0.0078,-0.008 c 4.745529,-4.79825 9.436641,-5.965637 12.949219,-6.896481 1.756289,-0.465422 3.197168,-0.893298 4.310547,-1.595703 1.113379,-0.702405 1.986926,-1.649783 2.720703,-3.517578 a 1.4566767,1.4566767 0 0 1 0.0039,-0.0078 c 0.08095,-0.202377 0.07823,-0.240359 -0.03125,-0.478516 -0.10948,-0.238157 -0.40273,-0.618935 -0.873047,-1.027344 -0.940635,-0.816817 -2.51049,-1.719733 -4.0625,-2.580078 -1.552011,-0.860345 -3.067708,-1.643234 -4.164063,-2.660156 -0.548177,-0.508461 -1.100392,-1.139497 -1.166016,-2.113281 -0.06562,-0.973784 0.567086,-1.867526 1.306641,-2.390625 a 1.4566767,1.4566767 0 0 1 0.0039,-0.002 c 2.74583,-1.933288 6.881493,-3.416621 11.392579,-4.980468 4.511082,-1.563848 9.375252,-3.1606 13.328122,-5.009766 3.95288,-1.849166 6.87202,-3.996138 7.79688,-6.142578 0.46243,-1.07322 0.54046,-2.154833 0.0566,-3.558594 -0.48382,-1.403761 -1.59352,-3.115002 -3.56641,-5.08789 a 1.4566767,1.4566767 0 0 1 -0.0117,-0.01172 L 72,13.558594 l -0.002,-0.002 c -2.360461,-2.225808 -5.500354,-3.34961 -8.597656,-3.34961 z m 45.939449,79.998047 c -2.64033,0.09532 -5.06585,1.304857 -6.09961,3.189453 0.29289,0.10957 0.55221,0.22058 1.01954,0.328125 1.37503,0.316434 3.31963,0.542222 5.21093,0.583985 1.89131,0.04176 3.76134,-0.113616 4.91407,-0.433594 0.51958,-0.14423 0.8073,-0.316107 0.93164,-0.40625 -0.25999,-1.079658 -0.8934,-1.846192 -1.92188,-2.414063 -1.07322,-0.59257 -2.54715,-0.90208 -4.05469,-0.847656 z m -70.509762,9.087891 c -2.090061,-0.145362 -4.72053,0.673313 -6.003906,1.705081 -0.641688,0.51588 -0.887896,0.99276 -0.91211,1.31054 -0.02421,0.31779 0.06549,0.75172 0.925782,1.47852 a 1.4566767,1.4566767 0 0 1 0.01367,0.0117 c 1.35352,1.17061 2.867771,1.05974 4.611328,0.10937 1.464512,-0.79827 2.765689,-2.29912 3.632812,-3.875 -0.588706,-0.381638 -1.308952,-0.67356 -2.267578,-0.740231 z m 61.033203,0.611328 c -0.461503,0.578513 -0.728387,1.098963 -0.755859,1.472653 -0.03738,0.5085 0.134422,0.90445 0.529297,1.27735 0.739641,0.69848 2.327091,0.98567 3.957031,0.10937 -0.0359,-0.18943 -0.0984,-0.45737 -0.34375,-0.81445 -0.50163,-0.73008 -1.65445,-1.53832 -3.386719,-2.044923 z" + inkscape:href="#use7639" + id="87235" + style="fill:none;stroke:url(#radialGradient11553);stroke-width:5.74646091;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter9298)" + xlink:href="#use7639" + inkscape:original="M 63.400391 8.75 C 59.950391 8.75 56.549609 10 54.099609 12.5 L 12.900391 54.699219 C -2.6996094 70.299219 23.000781 69.000391 32.300781 74.900391 C 36.600781 77.700391 18.499219 81.3 22.199219 85 C 25.799219 88.7 43.9 92.099219 47.5 95.699219 C 51.1 99.399219 40.200781 103.3 43.800781 107 C 47.300781 110.7 55.699219 107.19961 57.199219 115.59961 C 58.299219 121.79961 72.6 118.70039 79 113.40039 C 83 110.00039 72.099219 110.00078 75.699219 106.30078 C 84.699219 97.200781 92.7 102.20078 96 93.800781 C 97.8 89.300781 82.4 86.099219 86.5 83.199219 C 96.3 76.299219 132.29922 72.799219 115.69922 56.199219 L 73 12.5 C 70.35 10 66.850391 8.75 63.400391 8.75 z M 109.28711 88.75 C 105.82461 88.875 102.30039 90.600781 101.40039 93.800781 C 101.40039 95.900781 117.70078 97.100781 116.80078 93.300781 C 116.15078 90.100781 112.74961 88.625 109.28711 88.75 z M 38.931641 97.839844 C 33.944141 97.492969 27.550391 101.22539 31.900391 104.90039 C 35.600391 108.10039 41.2 104.19922 43 99.699219 C 42.1 98.524219 40.594141 97.955469 38.931641 97.839844 z M 99.400391 98.199219 C 94.800391 102.39922 100.19922 106.80039 104.69922 103.90039 C 105.89922 103.10039 104.60039 99.199219 99.400391 98.199219 z " + inkscape:radius="-1.456531" + sodipodi:type="inkscape:offset" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="csssssscs" + transform="matrix(0.4883067,0,0,0.4883067,-5.810401,-7.704252)" + id="path5897" + d="m 95.5,172 c -5.09061,1.5019 -21.59202,7.7371 -19.25,12.5 2.2436,4.5627 40.6114,6.4013 46.5,20 2.5679,5.9301 -5.8924,10.4033 -3.75,16.5 1.6497,4.6948 14.412,16.4908 22.486,22.0678 6.333,4.3744 14.651,-3.5224 11.264,-10.0678 -5.3959,-10.4276 18.4427,-23.1991 29.25,-29 6.3052,-3.3844 -13,-20 -13,-20 0,0 -73.5,-12 -73.5,-12 z" + style="opacity:0.32512309;fill:url(#linearGradient5905);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.72590113;filter:url(#filter5983-5)" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="cssssssssss" + id="path5783" + d="m 41.74217,78.53304 c 2.23193,1.63922 6.63675,0.65053 9.28212,1.84176 6.34952,2.85921 14.15494,6.04542 12.71857,0.40455 0,0 -1.61577,1.34204 -1.61577,1.34204 0,0 -0.0315,-2.55754 -0.0315,-2.55754 0,0 -3.75198,0.91629 -3.75198,0.91629 0,0 -2.90617,-2.33276 -4.23852,-3.10199 -0.27829,-0.16067 -1.7077,1.29281 -1.7077,1.29281 0,0 -0.25697,-1.5438 -0.25697,-1.5438 -1.85737,-0.19764 -3.69616,-0.28481 -5.31515,-0.27182 -3.88094,0.0311 -6.49906,0.63774 -5.08307,1.6777 z" + style="fill:url(#linearGradient5801);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.72590113" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="csssssc" + transform="matrix(0.4883067,0,0,0.4883067,-5.810401,-7.704252)" + id="path5803" + d="m 182.75,187.25 c -1.7598,6.4783 21.6278,15.2799 19.875,19.75 -3.859,9.8416 -24.976,3.1375 -41.125,23.75 -2.3132,2.9525 3.25,13.5 2.5,12.25 -0.75,-1.25 -6.4649,-9.9629 -5,-14.25 4.5942,-13.4452 49.0128,-18.4575 40.875,-24.875 -4.6799,-3.6906 -21.5055,-13.8872 -17.125,-16.625 z" + style="opacity:0.47783251;fill:url(#radialGradient5811);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.72590113;filter:url(#filter5845)" /> + <ellipse + transform="matrix(0.4883067,0,0,0.4883067,-6.359746,-8.009444)" + id="path6041" + style="display:inline;overflow:visible;visibility:visible;opacity:0.58620689;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.72590113;marker:none;enable-background:accumulate" + cx="233.9375" + cy="201.1875" + rx="2.5625" + ry="1.0625" /> + <ellipse + style="display:inline;overflow:visible;visibility:visible;opacity:0.58620689;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.72590113;marker:none;enable-background:accumulate" + id="path6043" + transform="matrix(0.3096579,0,0,0.4883067,27.52844,1.573576)" + cx="233.9375" + cy="201.1875" + rx="2.5625" + ry="1.0625" /> + <ellipse + style="display:inline;overflow:visible;visibility:visible;opacity:0.58620689;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.72590113;marker:none;enable-background:accumulate" + id="path6045" + transform="matrix(0.5478563,0,0,0.4883067,-92.10223,1.115795)" + cx="233.9375" + cy="201.1875" + rx="2.5625" + ry="1.0625" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccc" + id="path5049" + d="m 36.67228,76.52865 c -7.15299,4.42411 -18.27403,6.03423 -6.10383,8.97264 -1.44971,-3.2281 3.13858,-2.87202 6.10383,-8.97264 z" + style="display:inline;overflow:visible;visibility:visible;opacity:0.25123153;fill:url(#linearGradient5822);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:11.72603416;marker:none;enable-background:accumulate" /> + </g> + <g + transform="matrix(0.25,0,0,0.25,966.8289,192.2732)" + id="g37023" + style="stroke-width:4"> + <g + id="g36520" + style="opacity:0.17000002;stroke-width:4" /> + <path + id="path36522" + d="m 57.799,16.177 c -0.379,0.606 -1.203,0.826 -2.164,0.669 -0.535,-0.044 -1.145,-0.252 -1.721,-0.617 -0.201,-0.124 -0.379,-0.266 -0.545,-0.409 -1,-0.777 -1.578,-1.785 -1.535,-2.612 -0.477,0.984 0.305,2.498 1.832,3.463 1.584,1.014 3.375,1.034 3.998,0.06 0.131,-0.208 0.193,-0.438 0.213,-0.683 -0.029,0.043 -0.053,0.095 -0.078,0.129 z" + style="fill:#0077ac;stroke-width:4" + inkscape:connector-curvature="0" /> + <path + id="path36524" + d="M 56.334,12.189 C 54.74,11.176 52.955,11.15 52.33,12.128 c -0.621,0.979 0.172,2.588 1.752,3.597 1.596,1.014 3.387,1.036 4.01,0.06 0.621,-0.978 -0.168,-2.588 -1.758,-3.596 z m 1.262,3.145 c -0.502,0.795 -1.965,0.774 -3.252,-0.048 -1.295,-0.814 -1.936,-2.129 -1.428,-2.924 0.5,-0.792 1.961,-0.769 3.254,0.052 1.285,0.821 1.93,2.123 1.426,2.92 z" + style="fill:#0073ac;stroke-width:4" + inkscape:connector-curvature="0" /> + <path + id="path36533" + d="m 5.564,8.523 c -2.396,0.49 -3.953,2.851 -3.466,5.245 l 9.564,58.035 c 0.491,2.396 2.859,3.957 5.251,3.467 l 50.768,-8.803 c 2.404,-0.492 3.953,-2.855 3.461,-5.252 L 59.549,4.128 C 59.057,1.734 56.701,0.177 54.299,0.668 Z m 62.239,50.16 c 0.49,2.395 -1.074,4.758 -3.463,5.25 L 18.995,71.62 c -2.4,0.492 -4.765,1.352 -4.048,-1.043 L 6.655,16.307 C 4.954,13.912 6.515,11.548 8.911,11.057 L 52.224,4.314 c 2.391,-0.491 4.762,1.066 5.25,3.461 z" + style="fill:url(#linearGradient40971);stroke-width:4" + inkscape:connector-curvature="0" /> + <path + id="path36542" + d="M 6.09,8.688 C 3.74,9.173 2.206,11.492 2.692,13.843 l 9.335,56.94 c 0.487,2.359 2.804,3.883 5.151,3.4 l 49.834,-8.611 c 2.35,-0.482 3.881,-2.797 3.4,-5.15 L 59.037,4.426 C 58.555,2.073 56.238,0.542 53.889,1.03 Z" + style="fill:url(#linearGradient40973);stroke:#6b5735;stroke-width:0.40000001;stroke-miterlimit:4;stroke-dasharray:none" + inkscape:connector-curvature="0" /> + <path + id="path36555" + d="m 9.815,11.62 c -2.056,0.423 -3.399,2.446 -2.979,4.494 l 8.13,49.646 c 0.423,2.055 2.45,3.381 4.509,2.961 l 43.64,-7.547 c 2.059,-0.422 3.398,-2.443 2.98,-4.494 L 56.182,7.86 C 55.762,5.809 53.733,4.477 51.674,4.902 Z" + style="fill:#c5ddec;fill-opacity:1;stroke:#ffffff;stroke-width:4" + inkscape:connector-curvature="0" /> + <path + id="path36557" + d="M 55.586,8.812 C 55.186,6.761 53.234,5.436 51.248,5.863 l -40.365,6.81 C 8.899,13.1 7.598,15.131 8.002,17.178 l 0.571,3.664 47.78,-8.077 z" + style="fill:#6aa7ce;stroke-width:4" + inkscape:connector-curvature="0" /> + <path + id="path36564" + d="m 14.49,14.562 c 0.451,1.118 -0.086,2.386 -1.204,2.839 -1.112,0.449 -2.382,-0.094 -2.829,-1.21 -0.449,-1.112 0.084,-2.382 1.196,-2.833 1.122,-0.452 2.39,0.091 2.837,1.204 z" + style="fill:url(#radialGradient40975);stroke:#ffffff;stroke-width:1" + inkscape:connector-curvature="0" /> + <path + id="path36571" + d="m 23.288,13.111 c 0.449,1.118 -0.098,2.387 -1.21,2.838 -1.11,0.447 -2.38,-0.09 -2.833,-1.208 -0.449,-1.112 0.092,-2.385 1.199,-2.834 1.119,-0.449 2.393,0.088 2.844,1.204 z" + style="fill:url(#radialGradient40977);stroke:#ffffff;stroke-width:1" + inkscape:connector-curvature="0" /> + <path + id="path36578" + d="m 32.229,11.634 c 0.451,1.118 -0.092,2.386 -1.204,2.84 -1.12,0.449 -2.39,-0.092 -2.837,-1.206 -0.451,-1.112 0.088,-2.389 1.198,-2.836 1.123,-0.452 2.394,0.089 2.843,1.202 z" + style="fill:url(#radialGradient40979);stroke:#ffffff;stroke-width:1" + inkscape:connector-curvature="0" /> + <path + id="path36585" + d="m 41.244,10.148 c 0.453,1.116 -0.09,2.386 -1.207,2.835 -1.114,0.449 -2.384,-0.086 -2.836,-1.206 -0.451,-1.116 0.092,-2.384 1.202,-2.833 1.122,-0.453 2.392,0.088 2.841,1.204 z" + style="fill:url(#radialGradient40981);stroke:#ffffff;stroke-width:1" + inkscape:connector-curvature="0" /> + <path + id="path36592" + d="m 49.873,8.723 c 0.447,1.118 -0.092,2.384 -1.207,2.84 -1.117,0.449 -2.385,-0.093 -2.834,-1.209 -0.451,-1.113 0.09,-2.384 1.201,-2.833 1.117,-0.452 2.387,0.089 2.84,1.202 z" + style="fill:url(#radialGradient40983);stroke:#ffffff;stroke-width:1" + inkscape:connector-curvature="0" /> + <path + id="path36601" + d="m 27.43,3.371 1.769,9.261 c 0.038,0.156 0.226,0.25 0.416,0.208 l 1.681,-0.375 c 0.19,-0.042 0.326,-0.206 0.288,-0.365 L 29.835,2.985 Z" + style="fill:#a4a4a4;fill-opacity:1;stroke:#727d7f;stroke-width:1;stroke-opacity:1" + inkscape:connector-curvature="0" /> + <path + id="path36610" + d="m 36.293,1.894 1.771,9.263 c 0.036,0.156 0.224,0.25 0.415,0.208 l 1.682,-0.377 c 0.189,-0.042 0.323,-0.206 0.286,-0.364 l -1.75,-9.117 z" + style="fill:#a4a4a4;fill-opacity:1;stroke:#727d7f;stroke-width:1;stroke-opacity:1" + inkscape:connector-curvature="0" /> + <path + id="path36619" + d="m 45.045,0.53 1.77,9.261 c 0.037,0.159 0.223,0.249 0.414,0.207 L 48.911,9.623 C 49.104,9.581 49.235,9.418 49.202,9.258 L 47.45,0.143 Z" + style="fill:#a4a4a4;fill-opacity:1;stroke:#727d7f;stroke-width:1;stroke-opacity:1" + inkscape:connector-curvature="0" /> + <path + id="path36628" + d="m 17.973,4.902 2.089,9.186 c 0.04,0.162 0.228,0.258 0.423,0.214 l 1.674,-0.372 c 0.195,-0.043 0.325,-0.213 0.291,-0.377 L 20.355,4.518 Z" + style="fill:#a4a4a4;fill-opacity:1;stroke:#727d7f;stroke-width:1;stroke-opacity:1" + inkscape:connector-curvature="0" /> + <path + id="path36637" + d="m 9.239,6.316 2.082,9.752 c 0.038,0.152 0.226,0.234 0.422,0.194 l 1.677,-0.378 c 0.192,-0.044 0.324,-0.199 0.288,-0.352 L 11.753,5.906 Z" + style="fill:#a4a4a4;fill-opacity:1;stroke:#727d7f;stroke-width:1;stroke-opacity:1" + inkscape:connector-curvature="0" /> + <path + id="path36639" + d="m 37.306,44.509 c -1.23,-0.9 -2.976,-1.12 -5.233,-0.663 -2.379,0.485 -3.992,1.392 -4.843,2.72 -0.706,1.098 -0.922,2.602 -0.698,4.475 l -4.088,0.83 -0.705,-3.484 c -0.096,-0.459 -0.092,-0.797 0.009,-1.027 0.094,-0.219 0.297,-0.379 0.603,-0.457 l 0.627,-0.168 c 0.231,-0.066 0.327,-0.207 0.281,-0.42 C 23.23,46.161 23.19,46.066 23.146,46.034 23.102,46.006 23,46.006 22.84,46.04 c -0.04,0.004 -0.146,0.034 -0.325,0.084 -0.701,0.174 -1.382,0.33 -2.037,0.461 -0.687,0.139 -1.401,0.268 -2.133,0.385 -0.175,0.02 -0.279,0.039 -0.311,0.045 -0.152,0.033 -0.252,0.072 -0.28,0.113 -0.034,0.049 -0.034,0.15 -0.004,0.307 0.044,0.215 0.191,0.305 0.447,0.27 l 0.602,-0.082 c 0.329,-0.047 0.581,0.014 0.757,0.184 0.178,0.164 0.312,0.477 0.407,0.941 l 1.896,9.35 c 0.096,0.457 0.096,0.795 0,1.021 -0.096,0.223 -0.296,0.379 -0.611,0.461 l -0.606,0.164 c -0.014,0.008 -0.032,0.016 -0.056,0.02 -0.208,0.057 -0.292,0.184 -0.252,0.387 0.032,0.164 0.076,0.258 0.128,0.293 0.056,0.031 0.155,0.031 0.3,0 0.039,-0.008 0.14,-0.027 0.295,-0.063 0.725,-0.191 1.438,-0.355 2.125,-0.492 0.654,-0.133 1.342,-0.258 2.057,-0.367 0.176,-0.027 0.281,-0.043 0.327,-0.053 0.153,-0.033 0.244,-0.068 0.279,-0.119 0.032,-0.051 0.032,-0.156 -0.004,-0.32 -0.038,-0.199 -0.157,-0.287 -0.359,-0.258 -0.027,0 -0.042,0 -0.056,0 l -0.623,0.086 c -0.329,0.049 -0.583,-0.008 -0.757,-0.176 -0.182,-0.168 -0.317,-0.48 -0.409,-0.943 l -0.787,-3.861 4.058,-0.824 c 0.518,2.008 1.298,3.451 2.372,4.246 1.22,0.904 2.936,1.133 5.14,0.688 2.402,-0.49 4.042,-1.404 4.92,-2.744 0.875,-1.34 1.064,-3.232 0.569,-5.674 -0.507,-2.481 -1.374,-4.163 -2.603,-5.061 z m 0.522,10.51 c -0.526,1.139 -1.615,1.871 -3.254,2.205 -1.646,0.332 -2.936,0.082 -3.866,-0.76 -0.931,-0.836 -1.625,-2.387 -2.085,-4.645 -0.447,-2.207 -0.403,-3.893 0.132,-5.043 0.535,-1.151 1.618,-1.891 3.243,-2.22 1.649,-0.336 2.938,-0.084 3.865,0.757 0.927,0.838 1.62,2.389 2.077,4.645 0.456,2.236 0.419,3.924 -0.112,5.061 z" + style="fill:#1b6a9e;stroke:#1b6a9e;stroke-width:2" + inkscape:connector-curvature="0" /> + <g + id="g36643" + style="stroke-width:4"> + <path + inkscape:connector-curvature="0" + id="path36641" + d="m 51.076,35.627 8.537,12.767 1.287,-0.262 0.18,0.895 -5.152,1.045 -0.184,-0.891 2.795,-0.568 -2.516,-3.772 -7.096,1.44 -0.809,4.445 2.621,-0.527 0.18,0.891 -5.055,1.027 -0.182,-0.893 1.309,-0.266 2.74,-14.129 -4.02,0.818 -0.184,-0.893 z m -0.32,1.248 -1.693,8.45 6.412,-1.302 z m -4.406,-6.064 2.285,-0.465 4.635,3.813 -1.049,0.21 z" + style="fill:#e24c49;stroke:#db3c72;stroke-width:2" /> + </g> + <g + id="g36647" + style="stroke-width:4"> + <path + inkscape:connector-curvature="0" + id="path36645" + d="m 27.973,27.345 0.843,-1.6 2.372,0.986 c -0.104,0.268 -0.363,0.417 -0.944,0.535 l -3.014,0.611 0.411,2.032 c 2.903,0.06 4.018,0.919 4.18,1.709 0.122,0.585 -0.289,1.106 -0.868,1.225 -0.282,0.056 -0.605,0.008 -0.935,-0.172 -0.336,-0.887 -1.351,-1.901 -2.316,-2.468 l 1.573,7.729 c 0.004,0.131 -0.623,0.698 -1.719,0.922 l -0.41,0.084 -1.394,-6.853 c -0.7,1.725 -1.721,3.324 -3.079,4.804 l -0.308,-0.188 c 1.286,-2.395 1.896,-5.455 2.003,-8.242 l -3.296,0.669 -0.183,-0.344 4.028,-0.818 -0.671,-3.297 C 23,25.15 21.656,25.615 20.393,26.005 l -0.134,-0.224 c 2.552,-1.336 5.556,-3.415 6.989,-4.755 l 2.939,1.232 c -0.108,0.136 -0.308,0.237 -0.571,0.285 -0.212,0.048 -0.46,0.059 -0.751,0.04 -0.687,0.369 -1.546,0.773 -2.472,1.19 l 0.759,3.735 z m 9.715,-5.785 2.813,1.047 c -0.094,0.189 -0.409,0.409 -0.845,0.591 l 2.325,11.43 c 0.004,0.035 -0.496,0.652 -2.197,1 l -0.359,-1.759 -4.065,0.826 0.271,1.336 c 0.009,0.036 -0.104,0.82 -2.126,1.234 l -2.857,-14.067 2.569,0.396 3.744,-0.763 z M 35.287,34.327 39.352,33.5 37.25,23.153 33.185,23.979 Z" + style="fill:#6f577d;stroke-width:4" /> + </g> + <g + id="g36651" + style="opacity:0.17000002;stroke-width:4" /> + <g + transform="matrix(1.7217847,0,0,1.7217847,-78.193568,-9.265088)" + id="g99162-9"> + <circle + cx="100.287" + cy="110.081" + r="34.144001" + transform="matrix(0.3316761,0,0,0.3316761,48.927852,9.2318583)" + id="circle99164-2" + style="fill:#84c225;fill-rule:evenodd;stroke:#5d9d35;stroke-width:2.82220006" /> + <path + d="m 84.515333,38.943636 v 3.981494 h 3.981494 v 4.799639 h -3.981494 v 3.981494 H 79.732961 V 47.724769 H 75.751467 V 42.92513 h 3.981494 v -3.981494 h 4.782372" + id="path99166-0" + style="font-style:normal;font-weight:normal;font-size:12px;font-family:'Bitstream Vera Sans';display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none" + inkscape:connector-curvature="0" /> + </g> + </g> + <g + style="stroke-width:4" + id="g40577" + transform="matrix(0.25,0,0,0.25,1026.8289,192.2732)"> + <g + style="opacity:0.17000002;stroke-width:4" + id="g40301" /> + <path + inkscape:connector-curvature="0" + style="fill:#0077ac;stroke-width:4" + d="m 57.799,16.177 c -0.379,0.606 -1.203,0.826 -2.164,0.669 -0.535,-0.044 -1.145,-0.252 -1.721,-0.617 -0.201,-0.124 -0.379,-0.266 -0.545,-0.409 -1,-0.777 -1.578,-1.785 -1.535,-2.612 -0.477,0.984 0.305,2.498 1.832,3.463 1.584,1.014 3.375,1.034 3.998,0.06 0.131,-0.208 0.193,-0.438 0.213,-0.683 -0.029,0.043 -0.053,0.095 -0.078,0.129 z" + id="path40303" /> + <path + inkscape:connector-curvature="0" + style="fill:#0073ac;stroke-width:4" + d="M 56.334,12.189 C 54.74,11.176 52.955,11.15 52.33,12.128 c -0.621,0.979 0.172,2.588 1.752,3.597 1.596,1.014 3.387,1.036 4.01,0.06 0.621,-0.978 -0.168,-2.588 -1.758,-3.596 z m 1.262,3.145 c -0.502,0.795 -1.965,0.774 -3.252,-0.048 -1.295,-0.814 -1.936,-2.129 -1.428,-2.924 0.5,-0.792 1.961,-0.769 3.254,0.052 1.285,0.821 1.93,2.123 1.426,2.92 z" + id="path40305" /> + <path + inkscape:connector-curvature="0" + style="fill:url(#linearGradient40579);stroke-width:4" + d="m 5.564,8.523 c -2.396,0.49 -3.953,2.851 -3.466,5.245 l 9.564,58.035 c 0.491,2.396 2.859,3.957 5.251,3.467 l 50.768,-8.803 c 2.404,-0.492 3.953,-2.855 3.461,-5.252 L 59.549,4.128 C 59.057,1.734 56.701,0.177 54.299,0.668 Z m 62.239,50.16 c 0.49,2.395 -1.074,4.758 -3.463,5.25 L 18.995,71.62 c -2.4,0.492 -4.765,1.352 -4.048,-1.043 L 6.655,16.307 C 4.954,13.912 6.515,11.548 8.911,11.057 L 52.224,4.314 c 2.391,-0.491 4.762,1.066 5.25,3.461 z" + id="path40307" /> + <path + inkscape:connector-curvature="0" + style="fill:url(#linearGradient40581);stroke:#6b5735;stroke-width:0.40000001;stroke-miterlimit:4;stroke-dasharray:none" + d="M 6.09,8.688 C 3.74,9.173 2.206,11.492 2.692,13.843 l 9.335,56.94 c 0.487,2.359 2.804,3.883 5.151,3.4 l 49.834,-8.611 c 2.35,-0.482 3.881,-2.797 3.4,-5.15 L 59.037,4.426 C 58.555,2.073 56.238,0.542 53.889,1.03 Z" + id="path40309" /> + <path + inkscape:connector-curvature="0" + style="fill:#c5ddec;fill-opacity:1;stroke:#ffffff;stroke-width:4" + d="m 9.815,11.62 c -2.056,0.423 -3.399,2.446 -2.979,4.494 l 8.13,49.646 c 0.423,2.055 2.45,3.381 4.509,2.961 l 43.64,-7.547 c 2.059,-0.422 3.398,-2.443 2.98,-4.494 L 56.182,7.86 C 55.762,5.809 53.733,4.477 51.674,4.902 Z" + id="path40311" /> + <path + inkscape:connector-curvature="0" + style="fill:#6aa7ce;stroke-width:4" + d="M 55.586,8.812 C 55.186,6.761 53.234,5.436 51.248,5.863 l -40.365,6.81 C 8.899,13.1 7.598,15.131 8.002,17.178 l 0.571,3.664 47.78,-8.077 z" + id="path40313" /> + <path + inkscape:connector-curvature="0" + style="fill:url(#radialGradient40583);stroke:#ffffff;stroke-width:1" + d="m 14.49,14.562 c 0.451,1.118 -0.086,2.386 -1.204,2.839 -1.112,0.449 -2.382,-0.094 -2.829,-1.21 -0.449,-1.112 0.084,-2.382 1.196,-2.833 1.122,-0.452 2.39,0.091 2.837,1.204 z" + id="path40315" /> + <path + inkscape:connector-curvature="0" + style="fill:url(#radialGradient40585);stroke:#ffffff;stroke-width:1" + d="m 23.288,13.111 c 0.449,1.118 -0.098,2.387 -1.21,2.838 -1.11,0.447 -2.38,-0.09 -2.833,-1.208 -0.449,-1.112 0.092,-2.385 1.199,-2.834 1.119,-0.449 2.393,0.088 2.844,1.204 z" + id="path40317" /> + <path + inkscape:connector-curvature="0" + style="fill:url(#radialGradient40587);stroke:#ffffff;stroke-width:1" + d="m 32.229,11.634 c 0.451,1.118 -0.092,2.386 -1.204,2.84 -1.12,0.449 -2.39,-0.092 -2.837,-1.206 -0.451,-1.112 0.088,-2.389 1.198,-2.836 1.123,-0.452 2.394,0.089 2.843,1.202 z" + id="path40319" /> + <path + inkscape:connector-curvature="0" + style="fill:url(#radialGradient40589);stroke:#ffffff;stroke-width:1" + d="m 41.244,10.148 c 0.453,1.116 -0.09,2.386 -1.207,2.835 -1.114,0.449 -2.384,-0.086 -2.836,-1.206 -0.451,-1.116 0.092,-2.384 1.202,-2.833 1.122,-0.453 2.392,0.088 2.841,1.204 z" + id="path40321" /> + <path + inkscape:connector-curvature="0" + style="fill:url(#radialGradient40591);stroke:#ffffff;stroke-width:1" + d="m 49.873,8.723 c 0.447,1.118 -0.092,2.384 -1.207,2.84 -1.117,0.449 -2.385,-0.093 -2.834,-1.209 -0.451,-1.113 0.09,-2.384 1.201,-2.833 1.117,-0.452 2.387,0.089 2.84,1.202 z" + id="path40323" /> + <path + inkscape:connector-curvature="0" + style="fill:#a4a4a4;fill-opacity:1;stroke:#727d7f;stroke-width:1;stroke-opacity:1" + d="m 27.43,3.371 1.769,9.261 c 0.038,0.156 0.226,0.25 0.416,0.208 l 1.681,-0.375 c 0.19,-0.042 0.326,-0.206 0.288,-0.365 L 29.835,2.985 Z" + id="path40325" /> + <path + inkscape:connector-curvature="0" + style="fill:#a4a4a4;fill-opacity:1;stroke:#727d7f;stroke-width:1;stroke-opacity:1" + d="m 36.293,1.894 1.771,9.263 c 0.036,0.156 0.224,0.25 0.415,0.208 l 1.682,-0.377 c 0.189,-0.042 0.323,-0.206 0.286,-0.364 l -1.75,-9.117 z" + id="path40327" /> + <path + inkscape:connector-curvature="0" + style="fill:#a4a4a4;fill-opacity:1;stroke:#727d7f;stroke-width:1;stroke-opacity:1" + d="m 45.045,0.53 1.77,9.261 c 0.037,0.159 0.223,0.249 0.414,0.207 L 48.911,9.623 C 49.104,9.581 49.235,9.418 49.202,9.258 L 47.45,0.143 Z" + id="path40329" /> + <path + inkscape:connector-curvature="0" + style="fill:#a4a4a4;fill-opacity:1;stroke:#727d7f;stroke-width:1;stroke-opacity:1" + d="m 17.973,4.902 2.089,9.186 c 0.04,0.162 0.228,0.258 0.423,0.214 l 1.674,-0.372 c 0.195,-0.043 0.325,-0.213 0.291,-0.377 L 20.355,4.518 Z" + id="path40331" /> + <path + inkscape:connector-curvature="0" + style="fill:#a4a4a4;fill-opacity:1;stroke:#727d7f;stroke-width:1;stroke-opacity:1" + d="m 9.239,6.316 2.082,9.752 c 0.038,0.152 0.226,0.234 0.422,0.194 l 1.677,-0.378 c 0.192,-0.044 0.324,-0.199 0.288,-0.352 L 11.753,5.906 Z" + id="path40333" /> + <path + inkscape:connector-curvature="0" + style="fill:#1b6a9e;stroke:#1b6a9e;stroke-width:2" + d="m 37.306,44.509 c -1.23,-0.9 -2.976,-1.12 -5.233,-0.663 -2.379,0.485 -3.992,1.392 -4.843,2.72 -0.706,1.098 -0.922,2.602 -0.698,4.475 l -4.088,0.83 -0.705,-3.484 c -0.096,-0.459 -0.092,-0.797 0.009,-1.027 0.094,-0.219 0.297,-0.379 0.603,-0.457 l 0.627,-0.168 c 0.231,-0.066 0.327,-0.207 0.281,-0.42 C 23.23,46.161 23.19,46.066 23.146,46.034 23.102,46.006 23,46.006 22.84,46.04 c -0.04,0.004 -0.146,0.034 -0.325,0.084 -0.701,0.174 -1.382,0.33 -2.037,0.461 -0.687,0.139 -1.401,0.268 -2.133,0.385 -0.175,0.02 -0.279,0.039 -0.311,0.045 -0.152,0.033 -0.252,0.072 -0.28,0.113 -0.034,0.049 -0.034,0.15 -0.004,0.307 0.044,0.215 0.191,0.305 0.447,0.27 l 0.602,-0.082 c 0.329,-0.047 0.581,0.014 0.757,0.184 0.178,0.164 0.312,0.477 0.407,0.941 l 1.896,9.35 c 0.096,0.457 0.096,0.795 0,1.021 -0.096,0.223 -0.296,0.379 -0.611,0.461 l -0.606,0.164 c -0.014,0.008 -0.032,0.016 -0.056,0.02 -0.208,0.057 -0.292,0.184 -0.252,0.387 0.032,0.164 0.076,0.258 0.128,0.293 0.056,0.031 0.155,0.031 0.3,0 0.039,-0.008 0.14,-0.027 0.295,-0.063 0.725,-0.191 1.438,-0.355 2.125,-0.492 0.654,-0.133 1.342,-0.258 2.057,-0.367 0.176,-0.027 0.281,-0.043 0.327,-0.053 0.153,-0.033 0.244,-0.068 0.279,-0.119 0.032,-0.051 0.032,-0.156 -0.004,-0.32 -0.038,-0.199 -0.157,-0.287 -0.359,-0.258 -0.027,0 -0.042,0 -0.056,0 l -0.623,0.086 c -0.329,0.049 -0.583,-0.008 -0.757,-0.176 -0.182,-0.168 -0.317,-0.48 -0.409,-0.943 l -0.787,-3.861 4.058,-0.824 c 0.518,2.008 1.298,3.451 2.372,4.246 1.22,0.904 2.936,1.133 5.14,0.688 2.402,-0.49 4.042,-1.404 4.92,-2.744 0.875,-1.34 1.064,-3.232 0.569,-5.674 -0.507,-2.481 -1.374,-4.163 -2.603,-5.061 z m 0.522,10.51 c -0.526,1.139 -1.615,1.871 -3.254,2.205 -1.646,0.332 -2.936,0.082 -3.866,-0.76 -0.931,-0.836 -1.625,-2.387 -2.085,-4.645 -0.447,-2.207 -0.403,-3.893 0.132,-5.043 0.535,-1.151 1.618,-1.891 3.243,-2.22 1.649,-0.336 2.938,-0.084 3.865,0.757 0.927,0.838 1.62,2.389 2.077,4.645 0.456,2.236 0.419,3.924 -0.112,5.061 z" + id="path40335" /> + <g + style="stroke-width:4" + id="g40339"> + <path + style="fill:#e24c49;stroke:#db3c72;stroke-width:2" + d="m 51.076,35.627 8.537,12.767 1.287,-0.262 0.18,0.895 -5.152,1.045 -0.184,-0.891 2.795,-0.568 -2.516,-3.772 -7.096,1.44 -0.809,4.445 2.621,-0.527 0.18,0.891 -5.055,1.027 -0.182,-0.893 1.309,-0.266 2.74,-14.129 -4.02,0.818 -0.184,-0.893 z m -0.32,1.248 -1.693,8.45 6.412,-1.302 z m -4.406,-6.064 2.285,-0.465 4.635,3.813 -1.049,0.21 z" + id="path40337" + inkscape:connector-curvature="0" /> + </g> + <g + style="stroke-width:4" + id="g40343"> + <path + style="fill:#6f577d;stroke-width:4" + d="m 27.973,27.345 0.843,-1.6 2.372,0.986 c -0.104,0.268 -0.363,0.417 -0.944,0.535 l -3.014,0.611 0.411,2.032 c 2.903,0.06 4.018,0.919 4.18,1.709 0.122,0.585 -0.289,1.106 -0.868,1.225 -0.282,0.056 -0.605,0.008 -0.935,-0.172 -0.336,-0.887 -1.351,-1.901 -2.316,-2.468 l 1.573,7.729 c 0.004,0.131 -0.623,0.698 -1.719,0.922 l -0.41,0.084 -1.394,-6.853 c -0.7,1.725 -1.721,3.324 -3.079,4.804 l -0.308,-0.188 c 1.286,-2.395 1.896,-5.455 2.003,-8.242 l -3.296,0.669 -0.183,-0.344 4.028,-0.818 -0.671,-3.297 C 23,25.15 21.656,25.615 20.393,26.005 l -0.134,-0.224 c 2.552,-1.336 5.556,-3.415 6.989,-4.755 l 2.939,1.232 c -0.108,0.136 -0.308,0.237 -0.571,0.285 -0.212,0.048 -0.46,0.059 -0.751,0.04 -0.687,0.369 -1.546,0.773 -2.472,1.19 l 0.759,3.735 z m 9.715,-5.785 2.813,1.047 c -0.094,0.189 -0.409,0.409 -0.845,0.591 l 2.325,11.43 c 0.004,0.035 -0.496,0.652 -2.197,1 l -0.359,-1.759 -4.065,0.826 0.271,1.336 c 0.009,0.036 -0.104,0.82 -2.126,1.234 l -2.857,-14.067 2.569,0.396 3.744,-0.763 z M 35.287,34.327 39.352,33.5 37.25,23.153 33.185,23.979 Z" + id="path40341" + inkscape:connector-curvature="0" /> + </g> + <g + style="opacity:0.17000002;stroke-width:4" + id="g40345" /> + <g + style="stroke-width:4" + id="g40575"> + <linearGradient + id="linearGradient40353" + gradientUnits="userSpaceOnUse" + x1="-1549.6245" + y1="-1857.6021" + x2="-1547.8977" + y2="-1860.6862" + gradientTransform="matrix(-0.0794,-0.9968,0.9968,-0.0794,1786.5422,-1638.24)"> + <stop + offset="0" + style="stop-color:#CC772F" + id="stop40347" /> + <stop + offset="0.309" + style="stop-color:#E98E38" + id="stop40349" /> + <stop + offset="1" + style="stop-color:#EDCE27" + id="stop40351" /> + </linearGradient> + <path + style="clip-rule:evenodd;fill:url(#linearGradient40593);fill-rule:evenodd;stroke:#cc772f;stroke-width:4" + d="m 43.936,72.554 20.6,-43.974 4.682,2.664 -20.599,43.974 c -2.438,3.145 -1.934,1.434 -1.244,-0.707 -0.453,0.809 -1.594,1.895 -1.098,-0.621 -2.955,5.109 -1.283,0.199 -0.951,-0.547 -2.045,3.101 -1.459,-0.026 -1.39,-0.789 z" + id="path40355" + inkscape:connector-curvature="0" /> + <line + style="fill:#f3cb83;stroke:#f3b262;stroke-width:4;stroke-linecap:square;stroke-miterlimit:10" + x1="45.044998" + y1="74.742996" + x2="65.939003" + y2="29.065001" + id="line40357" /> + <line + style="fill:none;stroke:#f3cb83;stroke-width:1;stroke-linecap:square;stroke-miterlimit:10" + x1="45.495998" + y1="75.177002" + x2="66.390999" + y2="29.497" + id="line40359" /> + <line + style="fill:none;stroke:#f3cb83;stroke-width:1;stroke-linecap:square;stroke-miterlimit:10" + x1="45.356998" + y1="75.186996" + x2="66.25" + y2="29.509001" + id="line40361" /> + <line + style="fill:none;stroke:#f3cb83;stroke-width:1;stroke-linecap:square;stroke-miterlimit:10" + x1="45.216999" + y1="75.202003" + x2="66.111" + y2="29.521" + id="line40363" /> + <line + style="fill:none;stroke:#f3cb83;stroke-width:1;stroke-linecap:square;stroke-miterlimit:10" + x1="45.076" + y1="75.213997" + x2="65.971001" + y2="29.535" + id="line40365" /> + <path + style="fill:#343833;stroke-width:4" + d="m 67.986,20.949 0.045,-0.108 v 0 z m 4.731,2.562 0.07,0.042 -0.043,0.104 -0.076,-0.042 z m -3.428,7.777 v 0 l -0.072,-0.044 v 0 z M 64.535,28.58 Z" + id="path40367" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#e24c49;fill-rule:evenodd;stroke:#aa342e;stroke-width:4" + d="m 68.031,20.845 0.67,-1.485 c 1.152,-2.542 6.365,-1.044 4.682,2.668 l -0.666,1.483 z" + id="path40369" + inkscape:connector-curvature="0" /> + <path + style="fill:#343833;stroke-width:4" + d="m 68.701,19.359 z m 4.086,4.194 -0.043,0.104 -0.076,-0.042 0.049,-0.104 z m -4.801,-2.604 v 0 l 0.045,-0.108 v 0 z" + id="path40371" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#f6ca2a;fill-rule:evenodd;stroke-width:4" + d="m 71.9,24.912 c 0.188,-0.427 0.145,-0.319 0.621,-1.38 0,0 0,0 0.074,0.042 -0.191,0.426 -0.145,0.315 -0.627,1.38 10e-4,0 10e-4,0 -0.068,-0.042 z" + id="path40373" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#f4c92a;fill-rule:evenodd;stroke-width:4" + d="m 71.826,24.868 c 0.191,-0.423 0.143,-0.317 0.625,-1.378 0,0 0,0 0.07,0.042 -0.193,0.426 -0.143,0.319 -0.621,1.38 0,0 0,0 -0.074,-0.044 z" + id="path40375" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#f4c92a;fill-rule:evenodd;stroke-width:4" + d="m 71.75,24.828 c 0.195,-0.425 0.146,-0.319 0.625,-1.379 0,0 0,0 0.076,0.041 -0.191,0.426 -0.145,0.318 -0.625,1.378 0,0 0,0 -0.076,-0.04 z" + id="path40377" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#f2c82b;fill-rule:evenodd;stroke-width:4" + d="m 71.68,24.789 c 0.189,-0.43 0.146,-0.324 0.625,-1.383 0,0 0,0 0.07,0.043 -0.193,0.423 -0.145,0.317 -0.625,1.379 0,0 0,0 -0.07,-0.039 z" + id="path40379" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#f0c52d;fill-rule:evenodd;stroke-width:4" + d="m 71.605,24.742 c 0.193,-0.423 0.145,-0.315 0.623,-1.373 0,0 0,0 0.076,0.037 -0.195,0.422 -0.146,0.32 -0.625,1.383 0.001,0 0.001,0 -0.074,-0.047 z" + id="path40381" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#ecc23a;fill-rule:evenodd;stroke-width:4" + d="m 71.533,24.705 c 0.191,-0.428 0.145,-0.324 0.625,-1.38 0,0 0,0 0.07,0.044 -0.191,0.423 -0.145,0.313 -0.623,1.373 0,0 0,0 -0.072,-0.037 z" + id="path40383" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#ecc344;fill-rule:evenodd;stroke-width:4" + d="m 71.459,24.661 c 0.195,-0.428 0.143,-0.317 0.625,-1.378 0,0 0,0 0.074,0.042 -0.195,0.419 -0.148,0.319 -0.625,1.38 0,0 0,0 -0.074,-0.044 z" + id="path40385" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#ebc24f;fill-rule:evenodd;stroke-width:4" + d="m 71.385,24.619 c 0.193,-0.424 0.148,-0.318 0.625,-1.378 0,0 0,0 0.074,0.042 -0.195,0.421 -0.146,0.319 -0.625,1.378 0,0 0,0 -0.074,-0.042 z" + id="path40387" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#e9c158;fill-rule:evenodd;stroke-width:4" + d="m 71.314,24.579 c 0.191,-0.426 0.145,-0.319 0.623,-1.38 0,0 0,0 0.072,0.042 -0.191,0.425 -0.141,0.317 -0.625,1.378 0.001,0 0.001,0 -0.07,-0.04 z" + id="path40389" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#e4be5c;fill-rule:evenodd;stroke-width:4" + d="m 71.238,24.535 c 0.193,-0.426 0.143,-0.317 0.625,-1.378 0,0 0,0 0.074,0.042 -0.193,0.421 -0.143,0.317 -0.623,1.38 0,0 0,0 -0.076,-0.044 z" + id="path40391" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#e4bf61;fill-rule:evenodd;stroke-width:4" + d="m 71.166,24.491 c 0.195,-0.422 0.072,-0.355 0.623,-1.378 0,0 0,0 0.074,0.044 -0.193,0.427 -0.146,0.317 -0.625,1.378 0,0 0,0 -0.072,-0.044 z" + id="path40393" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#e1bb64;fill-rule:evenodd;stroke-width:4" + d="m 71.096,24.453 c 0.188,-0.426 0.143,-0.317 0.621,-1.382 0,0 0,0 0.072,0.042 -0.191,0.43 -0.143,0.319 -0.623,1.378 0,0 0,0 -0.07,-0.038 z" + id="path40395" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#ddb967;fill-rule:evenodd;stroke-width:4" + d="m 71.018,24.411 c 0.195,-0.427 0.145,-0.317 0.629,-1.378 0,0 0,0 0.07,0.038 -0.193,0.428 -0.145,0.319 -0.621,1.382 0,0 0,0 -0.078,-0.042 z" + id="path40397" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#dab869;fill-rule:evenodd;stroke-width:4" + d="m 70.947,24.369 c 0.191,-0.423 0.141,-0.317 0.623,-1.378 0,0 0,0 0.146,0.08 -0.193,0.428 -0.215,0.279 -0.621,1.382 -0.077,-0.042 -0.077,-0.042 -0.148,-0.084 z" + id="path40399" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#d7b66b;fill-rule:evenodd;stroke-width:4" + d="m 70.873,24.327 c 0.193,-0.423 0.145,-0.317 0.625,-1.378 0,0 0,0 0.148,0.084 -0.191,0.424 -0.219,0.275 -0.629,1.378 -0.07,-0.042 -0.07,-0.042 -0.144,-0.084 z" + id="path40401" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#d7b66e;fill-rule:evenodd;stroke-width:4" + d="m 70.801,24.285 c 0.193,-0.425 0.07,-0.361 0.625,-1.378 0,0 0,0 0.145,0.084 -0.189,0.424 -0.217,0.275 -0.623,1.378 -0.075,-0.042 -0.075,-0.042 -0.147,-0.084 z" + id="path40403" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#d4b470;fill-rule:evenodd;stroke-width:4" + d="m 70.729,24.243 c 0.191,-0.423 0.066,-0.357 0.625,-1.378 0,0 0,0 0.145,0.084 -0.191,0.424 -0.219,0.275 -0.625,1.378 -0.073,-0.042 -0.073,-0.042 -0.145,-0.084 z" + id="path40405" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#d2b270;fill-rule:evenodd;stroke-width:4" + d="m 70.654,24.203 c 0.188,-0.427 0.074,-0.361 0.621,-1.377 0,0 0,0 0.15,0.081 -0.191,0.424 -0.217,0.276 -0.625,1.378 -0.071,-0.042 -0.071,-0.042 -0.146,-0.082 z" + id="path40407" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#d0b373;fill-rule:evenodd;stroke-width:4" + d="m 70.58,24.161 c 0.195,-0.427 0.148,-0.319 0.625,-1.38 0,0 0,0 0.148,0.084 -0.195,0.426 -0.221,0.276 -0.625,1.378 -0.074,-0.04 -0.074,-0.04 -0.148,-0.082 z" + id="path40409" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#d1b374;fill-rule:evenodd;stroke-width:4" + d="m 70.508,24.119 c 0.193,-0.423 0.072,-0.359 0.625,-1.379 0,0 0,0 0.143,0.086 -0.188,0.423 -0.213,0.275 -0.621,1.377 -0.075,-0.042 -0.075,-0.042 -0.147,-0.084 z" + id="path40411" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#cdb175;fill-rule:evenodd;stroke-width:4" + d="m 70.436,24.078 c 0.195,-0.426 0.072,-0.359 0.623,-1.378 0,0 0,0 0.146,0.081 -0.191,0.424 -0.143,0.32 -0.625,1.38 -0.072,-0.042 -0.072,-0.042 -0.144,-0.083 z" + id="path40413" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#ccae77;fill-rule:evenodd;stroke-width:4" + d="m 70.359,24.036 c 0.197,-0.43 0.072,-0.362 0.623,-1.378 0,0 0,0 0.15,0.082 -0.193,0.425 -0.146,0.319 -0.625,1.379 -0.071,-0.041 -0.071,-0.041 -0.148,-0.083 z" + id="path40415" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#c8ad78;fill-rule:evenodd;stroke-width:4" + d="m 70.283,23.992 c 0.195,-0.422 0.076,-0.355 0.629,-1.376 0,0 0,0 0.146,0.084 -0.191,0.423 -0.146,0.317 -0.623,1.378 -0.076,-0.042 -0.076,-0.042 -0.152,-0.086 z" + id="path40417" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#c8ac7a;fill-rule:evenodd;stroke-width:4" + d="m 70.217,23.954 c 0.119,-0.47 0.07,-0.361 0.621,-1.378 0,0 0,0 0.145,0.082 -0.188,0.421 -0.141,0.319 -0.623,1.378 -0.077,-0.044 -0.077,-0.044 -0.143,-0.082 z" + id="path40419" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#c7ab7b;fill-rule:evenodd;stroke-width:4" + d="m 70.145,23.906 c 0.115,-0.46 0.068,-0.355 0.623,-1.374 0,0 0,0 0.145,0.084 -0.193,0.425 -0.141,0.317 -0.629,1.376 -0.067,-0.038 -0.067,-0.038 -0.139,-0.086 z" + id="path40421" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#fccd29;fill-rule:evenodd;stroke-width:4" + d="m 67.365,22.326 c 0.188,-0.425 0.141,-0.317 0.621,-1.377 0.074,0.041 0,0 0.074,0.041 -0.195,0.426 -0.145,0.32 -0.625,1.38 0.001,0 0.001,0 -0.07,-0.044 z" + id="path40423" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#f6ca2a;fill-rule:evenodd;stroke-width:4" + d="m 67.436,22.37 c 0.191,-0.427 0.145,-0.319 0.625,-1.38 0.074,0.04 0,0 0.074,0.04 -0.195,0.43 -0.145,0.321 -0.625,1.382 0,0 0,0 -0.074,-0.042 z" + id="path40425" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#f6ca2a;fill-rule:evenodd;stroke-width:4" + d="m 67.51,22.412 c 0.191,-0.425 0.143,-0.319 0.625,-1.382 0,0 0,0 0.068,0.046 -0.191,0.424 -0.139,0.316 -0.619,1.376 0,0 0,0 -0.074,-0.04 z" + id="path40427" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#f4c92a;fill-rule:evenodd;stroke-width:4" + d="m 67.584,22.452 c 0.188,-0.425 0.141,-0.315 0.619,-1.376 0,0 0,0 0.074,0.04 -0.191,0.428 -0.143,0.317 -0.621,1.378 0,0 0,0 -0.072,-0.042 z" + id="path40429" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#f4c92a;fill-rule:evenodd;stroke-width:4" + d="m 67.656,22.494 c 0.189,-0.423 0.143,-0.317 0.621,-1.378 0,0 0,0 0.074,0.042 -0.193,0.428 -0.145,0.317 -0.623,1.378 0.001,0 0.001,0 -0.072,-0.042 z" + id="path40431" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#f2c82b;fill-rule:evenodd;stroke-width:4" + d="m 67.729,22.536 c 0.191,-0.421 0.145,-0.319 0.623,-1.378 0,0 0,0 0.076,0.042 -0.195,0.424 -0.148,0.317 -0.629,1.376 0,0 0,0 -0.07,-0.04 z" + id="path40433" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#f2c62c;fill-rule:evenodd;stroke-width:4" + d="m 67.799,22.576 c 0.191,-0.422 0.145,-0.315 0.629,-1.376 0,0 0,0 0.07,0.04 -0.193,0.426 -0.143,0.319 -0.625,1.376 -0.074,-0.04 0,0 -0.074,-0.04 z" + id="path40435" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#f0c52d;fill-rule:evenodd;stroke-width:4" + d="m 67.873,22.616 c 0.191,-0.419 0.143,-0.313 0.625,-1.376 0,0 0,0 0.072,0.044 -0.191,0.423 -0.143,0.319 -0.623,1.378 -0.074,-0.046 -0.074,-0.046 -0.074,-0.046 z" + id="path40437" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#f0c631;fill-rule:evenodd;stroke-width:4" + d="m 67.947,22.662 c 0.191,-0.428 0.068,-0.359 0.623,-1.378 0,0 0,0 0.072,0.042 -0.191,0.424 -0.145,0.315 -0.623,1.374 -0.072,-0.038 -0.072,-0.038 -0.072,-0.038 z" + id="path40439" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#ecc23a;fill-rule:evenodd;stroke-width:4" + d="m 67.947,22.662 c 0.191,-0.428 0.145,-0.319 0.623,-1.378 0.072,0.042 0.072,0.042 0.146,0.082 -0.191,0.425 -0.143,0.317 -0.621,1.378 C 68.02,22.7 68.02,22.7 67.947,22.662 Z" + id="path40441" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#ecc344;fill-rule:evenodd;stroke-width:4" + d="m 68.02,22.7 c 0.191,-0.422 0.143,-0.317 0.623,-1.374 0.074,0.04 0.074,0.04 0.148,0.082 -0.195,0.423 -0.145,0.319 -0.625,1.376 -0.07,-0.04 -0.07,-0.04 -0.146,-0.084 z" + id="path40443" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#ebc24a;fill-rule:evenodd;stroke-width:4" + d="m 68.096,22.744 c 0.191,-0.424 0.145,-0.317 0.621,-1.378 0.074,0.042 0.074,0.042 0.145,0.082 -0.191,0.425 -0.143,0.321 -0.621,1.38 -0.075,-0.044 -0.075,-0.044 -0.145,-0.084 z" + id="path40445" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#ebc24f;fill-rule:evenodd;stroke-width:4" + d="m 68.166,22.784 c 0.193,-0.42 0.145,-0.315 0.625,-1.376 0.07,0.04 0,0 0.148,0.084 -0.27,0.381 -0.221,0.277 -0.625,1.377 -0.074,-0.041 -0.074,-0.041 -0.148,-0.085 z" + id="path40447" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#e9c158;fill-rule:evenodd;stroke-width:4" + d="m 68.24,22.828 c 0.191,-0.424 0.145,-0.32 0.621,-1.38 0.078,0.044 0,0 0.078,0.044 -0.195,0.423 -0.148,0.313 -0.625,1.377 0,0 0,0 -0.074,-0.041 z" + id="path40449" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#e9c15b;fill-rule:evenodd;stroke-width:4" + d="m 68.314,22.869 c 0.191,-0.423 0.143,-0.317 0.625,-1.377 0,0 0,0 0.068,0.042 -0.189,0.423 -0.143,0.319 -0.623,1.373 0.001,0 0.001,0 -0.07,-0.038 z" + id="path40451" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#e4be5c;fill-rule:evenodd;stroke-width:4" + d="m 68.385,22.907 c 0.195,-0.423 0.146,-0.317 0.623,-1.373 0,0 0,0 0.074,0.04 -0.191,0.421 -0.143,0.317 -0.625,1.375 0,0 0,0 -0.072,-0.042 z" + id="path40453" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#e4bf61;fill-rule:evenodd;stroke-width:4" + d="m 68.457,22.949 c 0.193,-0.421 0.143,-0.313 0.625,-1.375 0,0 0,0 0.074,0.045 -0.193,0.422 -0.141,0.314 -0.625,1.378 0,0 0,0 -0.074,-0.048 z" + id="path40455" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#e1bb63;fill-rule:evenodd;stroke-width:4" + d="m 68.531,22.997 c 0.195,-0.427 0.146,-0.321 0.625,-1.378 0,0 0,0 0.072,0.038 -0.191,0.428 -0.143,0.317 -0.625,1.376 0.001,0 0.001,0 -0.072,-0.036 z" + id="path40457" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#e1bb64;fill-rule:evenodd;stroke-width:4" + d="m 68.604,23.033 c 0.191,-0.421 0.146,-0.315 0.625,-1.376 0,0 0,0 0.074,0.042 -0.193,0.424 -0.146,0.32 -0.625,1.378 0,0 0,0 -0.074,-0.044 z" + id="path40459" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#dcba67;fill-rule:evenodd;stroke-width:4" + d="m 68.678,23.077 c 0.117,-0.465 0.072,-0.359 0.625,-1.378 0,0 0,0 0.074,0.038 -0.195,0.43 -0.145,0.321 -0.623,1.382 0,0 0,0 -0.076,-0.042 z" + id="path40461" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#ddb967;fill-rule:evenodd;stroke-width:4" + d="m 68.678,23.077 c 0.191,-0.423 0.143,-0.319 0.625,-1.378 0.074,0.038 0.074,0.038 0.146,0.084 -0.195,0.422 -0.143,0.319 -0.623,1.378 -0.072,-0.042 0,0 -0.148,-0.084 z" + id="path40463" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#dab869;fill-rule:evenodd;stroke-width:4" + d="m 68.754,23.119 c 0.189,-0.423 0.145,-0.317 0.623,-1.382 0.072,0.046 0.072,0.046 0.145,0.086 -0.195,0.421 -0.145,0.317 -0.623,1.378 -0.073,-0.04 -0.001,0 -0.145,-0.082 z" + id="path40465" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#dab86a;fill-rule:evenodd;stroke-width:4" + d="m 68.826,23.161 c 0.191,-0.425 0.141,-0.317 0.623,-1.378 0.072,0.04 0.072,0.04 0.146,0.082 -0.191,0.424 -0.143,0.317 -0.625,1.378 -0.072,-0.042 -0.072,-0.042 -0.144,-0.082 z" + id="path40467" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#d7b66b;fill-rule:evenodd;stroke-width:4" + d="m 68.898,23.201 c 0.195,-0.424 0.143,-0.315 0.623,-1.378 0.074,0.042 0,0 0.145,0.084 -0.188,0.427 -0.141,0.319 -0.621,1.378 -0.074,-0.042 -0.074,-0.042 -0.147,-0.084 z" + id="path40469" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#d7b66e;fill-rule:evenodd;stroke-width:4" + d="m 68.971,23.243 c 0.193,-0.424 0.145,-0.317 0.625,-1.378 0.07,0.042 0,0 0.145,0.084 -0.191,0.423 -0.145,0.319 -0.621,1.378 -0.075,-0.042 -0.075,-0.042 -0.149,-0.084 z" + id="path40471" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#d4b46f;fill-rule:evenodd;stroke-width:4" + d="m 69.045,23.285 c 0.195,-0.424 0.145,-0.319 0.621,-1.378 0.074,0.042 0,0 0.152,0.086 -0.193,0.421 -0.148,0.315 -0.629,1.376 -0.07,-0.042 -0.07,-0.042 -0.144,-0.084 z" + id="path40473" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#d4b470;fill-rule:evenodd;stroke-width:4" + d="m 69.119,23.327 c 0.191,-0.428 0.143,-0.317 0.621,-1.378 0,0 0,0 0.148,0.084 -0.195,0.423 -0.148,0.319 -0.625,1.373 -0.074,-0.037 -0.074,-0.037 -0.144,-0.079 z" + id="path40475" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#d2b270;fill-rule:evenodd;stroke-width:4" + d="m 69.189,23.369 c 0.191,-0.424 0.145,-0.317 0.629,-1.376 0,0 0,0 0.141,0.08 -0.191,0.425 -0.219,0.279 -0.619,1.378 -0.076,-0.045 -0.076,-0.045 -0.151,-0.082 z" + id="path40477" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#d2b372;fill-rule:evenodd;stroke-width:4" + d="m 69.264,23.406 c 0.191,-0.421 0.145,-0.313 0.625,-1.373 0,0 0,0 0.145,0.082 -0.266,0.383 -0.215,0.275 -0.621,1.381 -0.073,-0.045 -0.073,-0.045 -0.149,-0.09 z" + id="path40479" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#d0b373;fill-rule:evenodd;stroke-width:4" + d="m 69.34,23.451 c 0.189,-0.424 0.068,-0.357 0.619,-1.378 0,0 0,0 0.074,0.042 -0.191,0.427 -0.141,0.317 -0.621,1.381 0,0 0,0 -0.072,-0.045 z" + id="path40481" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#d1b374;fill-rule:evenodd;stroke-width:4" + d="m 69.412,23.496 c 0.117,-0.469 0.07,-0.361 0.621,-1.381 0,0 0,0 0.078,0.041 -0.195,0.428 -0.146,0.32 -0.625,1.38 0,0 0,0 -0.074,-0.04 z" + id="path40483" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#cdb175;fill-rule:evenodd;stroke-width:4" + d="m 69.412,23.496 c 0.188,-0.427 0.145,-0.321 0.621,-1.381 0.078,0.041 0.078,0.041 0.146,0.086 -0.193,0.421 -0.143,0.317 -0.625,1.375 0.001,0 0.001,0 -0.142,-0.08 z" + id="path40485" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#cdb175;fill-rule:evenodd;stroke-width:4" + d="m 69.486,23.536 c 0.191,-0.423 0.143,-0.319 0.625,-1.38 0.068,0.045 0.068,0.045 0.141,0.084 -0.189,0.426 -0.145,0.318 -0.619,1.38 0,0 0,0 -0.147,-0.084 z" + id="path40487" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#ccb078;fill-rule:evenodd;stroke-width:4" + d="m 69.555,23.576 c 0.193,-0.423 0.143,-0.315 0.625,-1.375 0.072,0.039 0.072,0.039 0.148,0.081 -0.193,0.424 -0.145,0.319 -0.625,1.38 0,0 0,0 -0.148,-0.086 z" + id="path40489" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#ccae77;fill-rule:evenodd;stroke-width:4" + d="m 69.633,23.62 c 0.191,-0.425 0.139,-0.321 0.619,-1.38 0.076,0.042 0.076,0.042 0.148,0.082 -0.191,0.426 -0.145,0.322 -0.621,1.378 -0.076,-0.038 0,0 -0.146,-0.08 z" + id="path40491" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#c8ad77;fill-rule:evenodd;stroke-width:4" + d="m 69.703,23.662 c 0.193,-0.423 0.146,-0.319 0.625,-1.38 0.072,0.04 0,0 0.146,0.082 -0.195,0.428 -0.146,0.319 -0.621,1.38 -0.074,-0.044 0.001,0 -0.15,-0.082 z" + id="path40493" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#c8ad78;fill-rule:evenodd;stroke-width:4" + d="m 69.779,23.7 c 0.189,-0.423 0.141,-0.315 0.621,-1.378 0.074,0.042 0,0 0.148,0.086 -0.197,0.422 -0.148,0.317 -0.629,1.378 -0.065,-0.042 -0.065,-0.042 -0.14,-0.086 z" + id="path40495" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#c7ab78;fill-rule:evenodd;stroke-width:4" + d="m 69.854,23.744 c 0.188,-0.426 0.139,-0.315 0.621,-1.38 0,0 0,0 0.145,0.086 -0.189,0.421 -0.145,0.315 -0.625,1.376 -0.075,-0.04 -0.075,-0.04 -0.141,-0.082 z" + id="path40497" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#c7ab7a;fill-rule:evenodd;stroke-width:4" + d="m 69.92,23.786 c 0.191,-0.423 0.148,-0.319 0.629,-1.378 0,0 0,0 0.143,0.082 -0.189,0.426 -0.143,0.319 -0.623,1.38 -0.075,-0.044 -0.075,-0.044 -0.149,-0.084 z" + id="path40499" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#c4aa7b;fill-rule:evenodd;stroke-width:4" + d="m 69.994,23.826 c 0.195,-0.424 0.146,-0.317 0.625,-1.376 0,0 0,0 0.148,0.082 -0.195,0.423 -0.145,0.319 -0.623,1.374 -0.076,-0.036 -0.076,-0.036 -0.15,-0.08 z" + id="path40501" + inkscape:connector-curvature="0" /> + <polygon + style="fill:none;stroke:#343833;stroke-width:0;stroke-linecap:square;stroke-miterlimit:10" + points="68.498,21.24 67.873,22.616 67.584,22.452 68.203,21.076 " + id="polygon40503" /> + <polygon + style="clip-rule:evenodd;fill:#fccd29;fill-rule:evenodd;stroke-width:4" + points="72.668,23.614 72.045,24.992 71.75,24.828 72.375,23.449 " + id="polygon40505" /> + <polygon + style="fill:none;stroke:#343833;stroke-width:0;stroke-linecap:square;stroke-miterlimit:10" + points="72.668,23.614 72.045,24.992 71.75,24.828 72.375,23.449 " + id="polygon40507" /> + <polygon + style="fill:none;stroke:#343833;stroke-width:0;stroke-linecap:square;stroke-miterlimit:10" + points="72.084,23.283 71.459,24.661 71.166,24.491 71.789,23.113 " + id="polygon40509" /> + <polygon + style="fill:none;stroke:#343833;stroke-width:0;stroke-linecap:square;stroke-miterlimit:10" + points="71.57,22.991 70.947,24.369 70.654,24.203 71.275,22.826 " + id="polygon40511" /> + <polygon + style="clip-rule:evenodd;fill:#c4aa7b;fill-rule:evenodd;stroke-width:4" + points="70.982,22.658 70.283,23.992 69.994,23.826 70.619,22.45 " + id="polygon40513" /> + <polygon + style="fill:none;stroke:#343833;stroke-width:0;stroke-linecap:square;stroke-miterlimit:10" + points="70.982,22.658 70.283,23.992 69.994,23.826 70.619,22.45 " + id="polygon40515" /> + <polygon + style="fill:none;stroke:#343833;stroke-width:0;stroke-linecap:square;stroke-miterlimit:10" + points="70.328,22.282 69.703,23.662 69.412,23.496 70.033,22.115 " + id="polygon40517" /> + <polygon + style="fill:none;stroke:#343833;stroke-width:0;stroke-linecap:square;stroke-miterlimit:10" + points="69.74,21.949 69.119,23.327 68.826,23.161 69.449,21.783 " + id="polygon40519" /> + <polygon + style="fill:none;stroke:#343833;stroke-width:0;stroke-linecap:square;stroke-miterlimit:10" + points="69.156,21.619 68.531,22.997 68.24,22.828 68.861,21.448 " + id="polygon40521" /> + <g + style="stroke-width:4" + id="g40555"> + <linearGradient + id="linearGradient40527" + gradientUnits="userSpaceOnUse" + x1="-1521.8286" + y1="-1846.4146" + x2="-1523.4501" + y2="-1843.4415" + gradientTransform="matrix(-0.0794,-0.9968,0.9968,-0.0794,1786.5422,-1638.24)"> + <stop + offset="0" + style="stop-color:#FFFFFF" + id="stop40523" /> + <stop + offset="1" + style="stop-color:#9FA4AB" + id="stop40525" /> + </linearGradient> + <polygon + style="clip-rule:evenodd;fill:url(#linearGradient40595);fill-rule:evenodd;stroke:#8f989b;stroke-width:4" + points="72.668,23.614 69.217,31.244 64.535,28.58 67.986,20.949 " + id="polygon40529" /> + <linearGradient + id="linearGradient40535" + gradientUnits="userSpaceOnUse" + x1="-1526.4932" + y1="-1845.8735" + x2="-1523.0596" + y2="-1845.8735" + gradientTransform="matrix(-0.0794,-0.9968,0.9968,-0.0794,1786.5422,-1638.24)"> + <stop + offset="0" + style="stop-color:#FFFFFF" + id="stop40531" /> + <stop + offset="1" + style="stop-color:#9FA4AB" + id="stop40533" /> + </linearGradient> + <polygon + style="fill:url(#linearGradient40597);stroke:#343833;stroke-width:0;stroke-linecap:square;stroke-miterlimit:10" + points="70.08,29.339 69.883,29.763 65.205,27.097 65.396,26.676 " + id="polygon40537" /> + <linearGradient + id="linearGradient40543" + gradientUnits="userSpaceOnUse" + x1="-1525.1694" + y1="-1845.1729" + x2="-1521.835" + y2="-1845.1729" + gradientTransform="matrix(-0.0794,-0.9968,0.9968,-0.0794,1786.5422,-1638.24)"> + <stop + offset="0" + style="stop-color:#FFFFFF" + id="stop40539" /> + <stop + offset="1" + style="stop-color:#9FA4AB" + id="stop40541" /> + </linearGradient> + <polygon + style="fill:url(#linearGradient40599);stroke:#737a7f;stroke-width:0;stroke-linecap:square;stroke-miterlimit:10" + points="70.654,28.067 70.512,28.385 65.826,25.721 65.973,25.401 " + id="polygon40545" /> + <linearGradient + id="linearGradient40551" + gradientUnits="userSpaceOnUse" + x1="-1523.8447" + y1="-1844.4126" + x2="-1520.4072" + y2="-1844.4126" + gradientTransform="matrix(-0.0794,-0.9968,0.9968,-0.0794,1786.5422,-1638.24)"> + <stop + offset="0" + style="stop-color:#FFFFFF" + id="stop40547" /> + <stop + offset="1" + style="stop-color:#9FA4AB" + id="stop40549" /> + </linearGradient> + <polygon + style="fill:url(#linearGradient40601);stroke:#737a7f;stroke-width:0;stroke-linecap:square;stroke-miterlimit:10" + points="71.326,26.584 71.133,27.007 66.451,24.342 66.643,23.916 " + id="polygon40553" /> + </g> + <path + style="fill:none;stroke:#f1cbba;stroke-width:13.60639954;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" + d="M 72.936,19.769" + id="path40557" + inkscape:connector-curvature="0" /> + <path + style="fill:none;stroke:#f1cbba;stroke-width:13.60639954;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" + d="M 72.375,23.045" + id="path40559" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#8a9196;fill-rule:evenodd;stroke-width:4" + d="m 41.451,82.737 -0.902,3.615 2.023,-2.848 c 0.117,-0.868 -0.662,-1.177 -1.121,-0.767 z" + id="path40561" + inkscape:connector-curvature="0" /> + <path + style="stroke:#343833;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" + d="m 41.451,82.737 -0.902,3.615 2.023,-2.848 c 0.117,-0.868 -0.662,-1.177 -1.121,-0.767 z" + id="path40563" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#c6bdaf;fill-rule:evenodd;stroke-width:4" + d="m 48.619,75.218 -6.002,8.18 c 0.072,-0.762 -0.781,-1.109 -1.166,-0.66 l 2.484,-10.184 c -0.068,0.764 -0.654,3.891 1.391,0.789 -0.332,0.746 -2.004,5.656 0.951,0.547 -0.496,2.516 0.645,1.43 1.098,0.621 -0.689,2.14 -1.193,3.851 1.244,0.707 z" + id="path40565" + inkscape:connector-curvature="0" /> + <path + style="fill:#e5bd87;stroke:#c48e30;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" + d="m 48.619,75.218 -6.002,8.18 c 0.072,-0.762 -0.781,-1.109 -1.166,-0.66 l 2.484,-10.184 c -0.068,0.764 -0.654,3.891 1.391,0.789 -0.332,0.746 -2.004,5.656 0.951,0.547 -0.496,2.516 0.645,1.43 1.098,0.621 -0.689,2.14 -1.193,3.851 1.244,0.707 z" + id="path40567" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#dadde0;fill-rule:evenodd;stroke-width:4" + d="m 41.99,83.976 -0.844,1.254 0.699,-1.34 c 10e-4,0 0.192,-0.02 0.145,0.086 z" + id="path40569" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;opacity:0.58999999;fill:#e6d7c2;fill-rule:evenodd;stroke-width:4" + d="m 42.291,82.685 -0.25,0.229 3.115,-9.793 c 0.041,0.637 0.389,1.891 0.389,1.891 l 1.051,-0.283 -4.273,8.381 z" + id="path40571" + inkscape:connector-curvature="0" /> + <path + style="clip-rule:evenodd;fill:#e6d7c2;fill-rule:evenodd;stroke-width:4" + d="m 42.494,82.229 -0.195,0.189 3.09,-8.99 c -0.035,0.609 0.086,1.85 0.086,1.85 l 0.756,-0.146 -3.754,7.504 z" + id="path40573" + inkscape:connector-curvature="0" /> + </g> + </g> + <rect + inkscape:label="AddFont" + width="24" + height="24" + x="1083.9999" + y="191.36221" + id="AddFont" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> + <rect + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + id="DelFont" + y="191.36221" + x="1143.9999" + height="24" + width="24" + inkscape:label="DelFont" /> + <path + inkscape:connector-curvature="0" + id="path38067" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.39169598px;line-height:1.25;font-family:Laksaman;-inkscape-font-specification:Laksaman;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.99999994" + d="m 1095.2033,204.25897 h -1.0005 l -1.2775,-3.54009 h -4.7406 l -1.2467,3.54009 h -1.0005 l 4.1711,-11.20515 h 0.9236 z m -2.555,-4.30967 -2.0779,-5.87963 -2.1087,5.87963 z" /> + <path + inkscape:connector-curvature="0" + id="path37258" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.39169598px;line-height:1.25;font-family:MathJax_Script;-inkscape-font-specification:MathJax_Script;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.99999994" + d="m 1091.8813,211.33547 v -0.077 c 0.1078,0.0308 0.2001,0.0616 0.354,0.0616 0.4772,0 0.9697,-0.29244 0.9697,-0.69263 0,-0.33861 -0.2309,-0.58488 -0.6003,-0.58488 -0.1693,0 -0.3386,0.0462 -0.5233,0.12313 -0.3232,0.15392 -0.5079,0.35401 -0.6926,0.7388 -0.1078,0.21549 -0.1385,0.32323 -0.1385,0.53871 0,0.23088 0.077,0.43097 0.2462,0.58489 0.2309,0.23087 0.5849,0.35401 1.0774,0.35401 0.8158,0 1.7701,-0.41558 2.7859,-1.16977 l 0.2155,-0.15392 0.1693,0.0616 c 0.5234,0.20009 1.1082,0.33861 1.7701,0.43096 0.277,0.0462 0.7696,0.0924 0.8465,0.0924 0.015,0 -0.015,0.0616 -0.1231,0.21549 -0.1847,0.27705 -0.2001,0.30783 -0.077,0.40018 h 0.708 c 0.5849,0 0.7235,0 0.7542,-0.0154 0.015,-0.0154 0.1078,-0.16931 0.2155,-0.32323 l 0.1847,-0.30783 c 0.7542,-0.16931 1.5084,-0.63106 2.0779,-1.18516 l 0.1231,-0.12313 0.062,-0.16931 c 0.062,-0.21549 0.062,-0.30784 -0.1077,-0.30784 -0.031,0.0154 -0.1078,0.077 -0.2001,0.16931 -0.431,0.43097 -1.0159,0.80037 -1.57,0.98507 l 0.092,-0.13852 2.9706,-4.78682 c 2.201,-3.55548 2.8782,-4.64829 2.8782,-4.69447 0,-0.12313 -0.031,-0.13852 -0.2001,-0.13852 h -0.1231 c -0.1847,0 -0.2463,0 -0.2771,0.0154 -0.015,0.0154 -0.092,0.12313 -0.1693,0.23087 l -0.1385,0.21549 -0.2001,0.12313 c -2.124,1.32369 -4.2173,2.86286 -5.7411,4.21733 l -0.1847,0.15391 -0.1385,-0.12313 c -0.6157,-0.50793 -1.4468,-0.80037 -2.5243,-0.80037 -0.5233,0 -0.9542,0.0923 -1.339,0.29244 -0.3848,0.1847 -0.5695,0.35401 -0.8312,0.7388 -0.5695,0.86194 -0.8619,1.56996 -0.8619,2.32415 0,0.80037 0.4002,1.41604 0.9081,1.83161 0.1077,0.0924 0.4463,0.32323 0.4925,0.33862 0.031,0.0154 -0.046,0.077 -0.2462,0.23087 -0.7235,0.50793 -1.4469,0.80037 -1.9856,0.80037 -0.4617,0 -0.8311,-0.12313 -0.9081,-0.47714 z m 12.7443,-8.527 c 0,0.0154 -0.9696,1.40065 -2.1548,3.07834 l -2.1548,3.04756 -0.015,-0.0924 c -0.031,-0.89272 -0.2001,-1.56996 -0.5541,-2.10867 l -0.092,-0.15391 0.031,-0.0308 c 1.0466,-0.96967 2.4935,-2.10866 3.9249,-3.07834 0.2924,-0.20009 1.0158,-0.67723 1.0312,-0.67723 0,0 0,0.0154 -0.015,0.0154 z m -5.8796,3.80175 0.046,0.0616 -0.2463,0.23087 c -0.7696,0.72341 -1.6315,1.72387 -2.2626,2.58581 -0.1077,0.1847 -0.354,0.47714 -0.5079,0.63106 -0.1693,0.1847 -0.1385,0.1847 -0.354,0.0308 -0.1847,-0.12313 -0.4617,-0.40018 -0.5541,-0.5541 -0.2001,-0.29244 -0.2924,-0.53871 -0.2924,-0.93889 0,-0.18471 0.015,-0.3848 0.046,-0.50793 0.1232,-0.52332 0.4618,-1.18516 0.8466,-1.70848 0.1385,-0.16931 0.3848,-0.40018 0.5233,-0.47714 0.2001,-0.12314 0.2617,-0.13853 0.5541,-0.13853 0.9389,0.10775 1.6931,0.27705 2.201,0.78498 z m 0.8773,2.49345 c 0,0.27706 -0.062,0.81576 -0.077,0.87733 -0.015,0.0308 -0.1847,0.29244 -0.3848,0.56949 l -0.3694,0.53871 -0.077,-0.0154 c -0.031,0 -0.1847,-0.0154 -0.3232,-0.0308 -0.8004,-0.0616 -1.5238,-0.21549 -2.1087,-0.44636 l -0.1385,-0.0462 0.1385,-0.15391 c 0.2771,-0.29245 0.431,-0.49254 0.7542,-0.9235 0.4464,-0.63106 1.0005,-1.27752 1.6931,-2.00093 l 0.3848,-0.40018 c 0.046,0.0616 0.077,0.13853 0.1385,0.21548 0.2309,0.46176 0.3694,1.13899 0.3694,1.81622 z" /> + <g + aria-label="+" + style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:1" + id="text38073"> + <path + d="m 1104,192.36218 v 3 h 3 v 1 h -3 v 3 h -1 v -3 l -2.9971,9.8e-4 -0,-1.00098 h 3 v -3 z" + style="fill:#00ff00;fill-opacity:1;stroke-width:1" + id="path38075" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccccccccccc" /> + </g> + <path + d="m 1155.2033,204.25897 h -1.0005 l -1.2775,-3.54009 h -4.7406 l -1.2467,3.54009 h -1.0005 l 4.1711,-11.20515 h 0.9236 z m -2.555,-4.30967 -2.0779,-5.87963 -2.1087,5.87963 z" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.39169598px;line-height:1.25;font-family:Laksaman;-inkscape-font-specification:Laksaman;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.99999994" + id="path38078" + inkscape:connector-curvature="0" /> + <path + d="m 1151.8813,211.33547 v -0.077 c 0.1078,0.0308 0.2001,0.0616 0.354,0.0616 0.4772,0 0.9697,-0.29244 0.9697,-0.69263 0,-0.33861 -0.2309,-0.58488 -0.6003,-0.58488 -0.1693,0 -0.3386,0.0462 -0.5233,0.12313 -0.3232,0.15392 -0.5079,0.35401 -0.6926,0.7388 -0.1078,0.21549 -0.1385,0.32323 -0.1385,0.53871 0,0.23088 0.077,0.43097 0.2462,0.58489 0.2309,0.23087 0.5849,0.35401 1.0774,0.35401 0.8158,0 1.7701,-0.41558 2.7859,-1.16977 l 0.2155,-0.15392 0.1693,0.0616 c 0.5234,0.20009 1.1082,0.33861 1.7701,0.43096 0.277,0.0462 0.7696,0.0924 0.8465,0.0924 0.015,0 -0.015,0.0616 -0.1231,0.21549 -0.1847,0.27705 -0.2001,0.30783 -0.077,0.40018 h 0.708 c 0.5849,0 0.7235,0 0.7542,-0.0154 0.015,-0.0154 0.1078,-0.16931 0.2155,-0.32323 l 0.1847,-0.30783 c 0.7542,-0.16931 1.5084,-0.63106 2.0779,-1.18516 l 0.1231,-0.12313 0.062,-0.16931 c 0.062,-0.21549 0.062,-0.30784 -0.1077,-0.30784 -0.031,0.0154 -0.1078,0.077 -0.2001,0.16931 -0.431,0.43097 -1.0159,0.80037 -1.57,0.98507 l 0.092,-0.13852 2.9706,-4.78682 c 2.201,-3.55548 2.8782,-4.64829 2.8782,-4.69447 0,-0.12313 -0.031,-0.13852 -0.2001,-0.13852 h -0.1231 c -0.1847,0 -0.2463,0 -0.2771,0.0154 -0.015,0.0154 -0.092,0.12313 -0.1693,0.23087 l -0.1385,0.21549 -0.2001,0.12313 c -2.124,1.32369 -4.2173,2.86286 -5.7411,4.21733 l -0.1847,0.15391 -0.1385,-0.12313 c -0.6157,-0.50793 -1.4468,-0.80037 -2.5243,-0.80037 -0.5233,0 -0.9542,0.0923 -1.339,0.29244 -0.3848,0.1847 -0.5695,0.35401 -0.8312,0.7388 -0.5695,0.86194 -0.8619,1.56996 -0.8619,2.32415 0,0.80037 0.4002,1.41604 0.9081,1.83161 0.1077,0.0924 0.4463,0.32323 0.4925,0.33862 0.031,0.0154 -0.046,0.077 -0.2462,0.23087 -0.7235,0.50793 -1.4469,0.80037 -1.9856,0.80037 -0.4617,0 -0.8311,-0.12313 -0.9081,-0.47714 z m 12.7443,-8.527 c 0,0.0154 -0.9696,1.40065 -2.1548,3.07834 l -2.1548,3.04756 -0.015,-0.0924 c -0.031,-0.89272 -0.2001,-1.56996 -0.5541,-2.10867 l -0.092,-0.15391 0.031,-0.0308 c 1.0466,-0.96967 2.4935,-2.10866 3.9249,-3.07834 0.2924,-0.20009 1.0158,-0.67723 1.0312,-0.67723 0,0 0,0.0154 -0.015,0.0154 z m -5.8796,3.80175 0.046,0.0616 -0.2463,0.23087 c -0.7696,0.72341 -1.6315,1.72387 -2.2626,2.58581 -0.1077,0.1847 -0.354,0.47714 -0.5079,0.63106 -0.1693,0.1847 -0.1385,0.1847 -0.354,0.0308 -0.1847,-0.12313 -0.4617,-0.40018 -0.5541,-0.5541 -0.2001,-0.29244 -0.2924,-0.53871 -0.2924,-0.93889 0,-0.18471 0.015,-0.3848 0.046,-0.50793 0.1232,-0.52332 0.4618,-1.18516 0.8466,-1.70848 0.1385,-0.16931 0.3848,-0.40018 0.5233,-0.47714 0.2001,-0.12314 0.2617,-0.13853 0.5541,-0.13853 0.9389,0.10775 1.6931,0.27705 2.201,0.78498 z m 0.8773,2.49345 c 0,0.27706 -0.062,0.81576 -0.077,0.87733 -0.015,0.0308 -0.1847,0.29244 -0.3848,0.56949 l -0.3694,0.53871 -0.077,-0.0154 c -0.031,0 -0.1847,-0.0154 -0.3232,-0.0308 -0.8004,-0.0616 -1.5238,-0.21549 -2.1087,-0.44636 l -0.1385,-0.0462 0.1385,-0.15391 c 0.2771,-0.29245 0.431,-0.49254 0.7542,-0.9235 0.4464,-0.63106 1.0005,-1.27752 1.6931,-2.00093 l 0.3848,-0.40018 c 0.046,0.0616 0.077,0.13853 0.1385,0.21548 0.2309,0.46176 0.3694,1.13899 0.3694,1.81622 z" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.39169598px;line-height:1.25;font-family:MathJax_Script;-inkscape-font-specification:MathJax_Script;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.99999994" + id="path38080" + inkscape:connector-curvature="0" /> + <g + id="g38084" + style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#fe0000;fill-opacity:1;stroke:none;stroke-width:1" + aria-label="+" + transform="translate(60)"> + <path + inkscape:connector-curvature="0" + id="path38082" + style="fill:#fe0000;fill-opacity:1;stroke-width:1" + d="m 1106,195.36218 v 1 h -6 v -1 z" + sodipodi:nodetypes="ccccc" /> + </g> </svg> diff -r 2b00f90c6888 -r d5b2369a103f runtime/PLCObject.py --- a/runtime/PLCObject.py Fri Apr 09 09:45:28 2021 +0200 +++ b/runtime/PLCObject.py Fri Apr 09 09:47:06 2021 +0200 @@ -459,6 +459,7 @@ self.PythonThreadAcknowledge(cmd) self.PythonRuntimeCall("start") self.LogMessage("Python extensions started") + self.PostStartPLC() self.PythonThreadLoop() self.PythonRuntimeCall("stop", reverse_order=True) elif cmd == "Finish": @@ -496,6 +497,16 @@ """ pass + def PostStartPLC(self): + """ + Here goes actions to be taken after PLC is started, + with all libraries and python object already created, + and python extensions "Start" methods being called. + This is called before python thread processing py_eval blocks starts. + For example : attach additional ressource to web services + """ + pass + @RunInMain def StartPLC(self): diff -r 2b00f90c6888 -r d5b2369a103f svghmi/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/Makefile Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,26 @@ +#! gmake + +# Makefile to generate XSLT stylesheets from ysl2 files in the same directory + +# This uses YML2. +# hg clone https://pep.foundation/dev/repos/yml2/ + +# It should be just fine if yml2 is cloned just asside beremiz +# otherwise, point yml2path to yml2 source directory +# make yml2path=path/to/yml/dir + +yml2path ?= $(abspath ../../yml2) + +ysl2files := gen_index_xhtml.ysl2 gen_dnd_widget_svg.ysl2 +ysl2includes := $(filter-out $(ysl2files), $(wildcard *.ysl2)) +xsltfiles := $(patsubst %.ysl2, %.xslt, $(ysl2files)) + +all:$(xsltfiles) + +%.xslt: %.ysl2 $(ysl2includes) svghmi.js ../yslt_noindent.yml2 + $(yml2path)/yml2c -I $(yml2path):../ $< -o $@.tmp + xmlstarlet fo $@.tmp > $@ + rm $@.tmp + +clean: + rm -f $(xsltfiles) diff -r 2b00f90c6888 -r d5b2369a103f svghmi/README --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/README Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,1 @@ +SVG HMI diff -r 2b00f90c6888 -r d5b2369a103f svghmi/__init__.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/__init__.py Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,10 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# This file is part of Beremiz +# Copyright (C) 2019: Edouard TISSERANT +# +# See COPYING file for copyrights details. + +from __future__ import absolute_import +from svghmi.svghmi import * diff -r 2b00f90c6888 -r d5b2369a103f svghmi/default.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/default.svg Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,92 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="1280" + height="720" + viewBox="0 0 1280 720" + version="1.1" + id="hmi0" + sodipodi:docname="default.svg" + inkscape:version="0.92.3 (2405546, 2018-03-11)"> + <metadata + id="metadata4542"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title /> + </cc:Work> + </rdf:RDF> + </metadata> + <defs + id="defs2" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:document-units="px" + inkscape:current-layer="hmi0" + showgrid="false" + units="px" + inkscape:zoom="0.7" + inkscape:cx="576.80864" + inkscape:cy="330.28432" + inkscape:window-width="1600" + inkscape:window-height="886" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1" /> + <rect + style="color:#000000" + id="page0" + width="1280" + height="720" + x="0" + y="0"> + <desc + id="desc_page0">This is description for page 0 + +all lines in the form "name: value" +are used as js object definition initializer + +role: "page" +name: "Home" + +after triple opening braces is global JavaScript code + +{{{ +/* JS style Comment */ +alert("Hello World"); +}}} + +after triple closing braces is back to description +</desc> + </rect> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="436.32812" + y="418.24219" + id="text5151" + inkscape:label="count"><desc + id="desc5153">path: "count" +format: "%4.4d"</desc><tspan + sodipodi:role="line" + id="tspan5149" + x="436.32812" + y="418.24219" + style="stroke-width:1px">8888</tspan></text> +</svg> diff -r 2b00f90c6888 -r d5b2369a103f svghmi/detachable_pages.ysl2 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/detachable_pages.ysl2 Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,226 @@ +// detachable_pages.ysl2 +// +// compute what elements are required by pages +// and decide where to cut when removing/attaching +// pages elements on page switch + +const "hmi_pages_descs", "$parsed_widgets/widget[@type = 'Page']"; +const "hmi_pages", "$hmi_elements[@id = $hmi_pages_descs/@id]"; + +const "default_page" choose { + when "count($hmi_pages) > 1" { + choose { + when "$hmi_pages_descs/arg[1]/@value = 'Home'" > Home + otherwise { + error > No Home page defined! + } + } + } + when "count($hmi_pages) = 0" { + error > No page defined! + } + otherwise > «func:widget($hmi_pages/@id)/arg[1]/@value» +} + +emit "preamble:default-page" { + | + | var default_page = "«$default_page»"; +} + +const "keypads_descs", "$parsed_widgets/widget[@type = 'Keypad']"; +const "keypads", "$hmi_elements[@id = $keypads_descs/@id]"; + +// returns all directly or indirectly refered elements +def "func:refered_elements" { + param "elems"; + const "descend", "$elems/descendant-or-self::svg:*"; + const "clones", "$descend[self::svg:use]"; + const "originals", "//svg:*[concat('#',@id) = $clones/@xlink:href]"; + choose { + when "$originals" + result "$descend | func:refered_elements($originals)"; + otherwise + result "$descend"; + } +} + +// variable "overlapping_geometry" was added for optimization. +// It avoids calling func:overlapping_geometry 3 times for each page +// (apparently libxml doesn't cache exslt function results) +// in order to optimize further, func:overlapping_geometry +// should be implemented in python or even C, +// as this is still the main bottleneck here +const "_overlapping_geometry" { + foreach "$hmi_pages | $keypads" { + const "k", "concat('overlapping:', @id)"; + value "ns:ProgressStart($k, concat('collecting membership of ', @inkscape:label))"; + elt { + attrib "id" > «@id» + copy "func:overlapping_geometry(.)"; + } + value "ns:ProgressEnd($k)"; + } +} + +const "overlapping_geometry", "exsl:node-set($_overlapping_geometry)"; + +def "func:all_related_elements" { + param "page"; + const "page_overlapping_geometry", "$overlapping_geometry/elt[@id = $page/@id]/*"; + const "page_overlapping_elements", "//svg:*[@id = $page_overlapping_geometry/@Id]"; + const "page_sub_elements", "func:refered_elements($page | $page_overlapping_elements)"; + result "$page_sub_elements"; +} + + +def "func:required_elements" { + param "pages"; + choose{ + when "$pages"{ + result """func:all_related_elements($pages[1]) + | func:required_elements($pages[position()!=1])"""; + }otherwise{ + result "/.."; + } + } +} + +const "required_page_elements", + "func:required_elements($hmi_pages | $keypads)/ancestor-or-self::svg:*"; + +const "hmi_lists_descs", "$parsed_widgets/widget[@type = 'List']"; +const "hmi_lists", "$hmi_elements[@id = $hmi_lists_descs/@id]"; + +const "required_list_elements", "func:refered_elements($hmi_lists[@id = $required_page_elements/@id])"; + +const "required_elements", "$defs | $required_list_elements | $required_page_elements"; + +const "discardable_elements", "//svg:*[not(@id = $required_elements/@id)]"; + +def "func:sumarized_elements" { + param "elements"; + const "short_list", "$elements[not(ancestor::*/@id = $elements/@id)]"; + const "filled_groups", """$short_list/parent::*[ + not(child::*[ + not(@id = $discardable_elements/@id) and + not(@id = $short_list/@id) + ])]"""; + const "groups_to_add", "$filled_groups[not(ancestor::*/@id = $filled_groups/@id)]"; + result "$groups_to_add | $short_list[not(ancestor::*/@id = $filled_groups/@id)]"; +} + +def "func:detachable_elements" { + param "pages"; + choose{ + when "$pages"{ + result """func:sumarized_elements(func:all_related_elements($pages[1])) + | func:detachable_elements($pages[position()!=1])"""; + }otherwise{ + result "/.."; + } + } +} + +// Avoid nested detachables +const "_detachable_elements", "func:detachable_elements($hmi_pages | $keypads)"; +const "detachable_elements", "$_detachable_elements[not(ancestor::*/@id = $_detachable_elements/@id)]"; + +emit "declarations:detachable-elements" { + | + | var detachable_elements = { + foreach "$detachable_elements"{ + | "«@id»":[id("«@id»"), id("«../@id»")]`if "position()!=last()" > ,` + } + | } +} + +const "forEach_widgets_ids", "$parsed_widgets/widget[@type = 'ForEach']/@id"; +const "forEach_widgets", "$hmi_widgets[@id = $forEach_widgets_ids]"; +const "in_forEach_widget_ids", "func:refered_elements($forEach_widgets)[not(@id = $forEach_widgets_ids)]/@id"; + +template "svg:*", mode="page_desc" { + if "ancestor::*[@id = $hmi_pages/@id]" error > HMI:Page «@id» is nested in another HMI:Page + + + const "desc", "func:widget(@id)"; + const "pagename", "$desc/arg[1]/@value"; + const "msg", "concat('generating page description ', $pagename)"; + value "ns:ProgressStart($pagename, $msg)"; + const "page", "."; + const "p", "$geometry[@Id = $page/@id]"; + + const "page_all_elements", "func:all_related_elements($page)"; + + const "all_page_widgets","$hmi_widgets[@id = $page_all_elements/@id and @id != $page/@id]"; + const "page_managed_widgets","$all_page_widgets[not(@id=$in_forEach_widget_ids)]"; + const "page_relative_widgets", + "$page_managed_widgets[func:is_descendant_path(func:widget(@id)/path/@value, $desc/path/@value)]"; + + // Take closest ancestor in detachable_elements + // since nested detachable elements are filtered out + const "sumarized_page", + """func:sumarized_elements($page_all_elements)"""; + + const "required_detachables", + """$sumarized_page/ + ancestor-or-self::*[@id = $detachable_elements/@id]"""; + + | "«$pagename»": { + //| widget: hmi_widgets["«@id»"], + | bbox: [«$p/@x», «$p/@y», «$p/@w», «$p/@h»], + if "$desc/path/@value" { + if "count($desc/path/@index)=0" + warning > Page id="«$page/@id»" : No match for path "«$desc/path/@value»" in HMI tree + | page_index: «$desc/path/@index», + } + | widgets: [ + foreach "$page_managed_widgets" { + const "widget_paths_relativeness" + foreach "func:widget(@id)/path" { + value "func:is_descendant_path(@value, $desc/path/@value)"; + if "position()!=last()" > , + } + | [hmi_widgets["«@id»"], [«$widget_paths_relativeness»]]`if "position()!=last()" > ,` + } + | ], + | jumps: [ + foreach "$parsed_widgets/widget[@id = $all_page_widgets/@id and @type='Jump']" { + | hmi_widgets["«@id»"]`if "position()!=last()" > ,` + } + | ], + | required_detachables: { + foreach "$required_detachables" { + | "«@id»": detachable_elements["«@id»"]`if "position()!=last()" > ,` + } + | } + /* TODO generate some code for init() instead */ + apply "$parsed_widgets/widget[@id = $all_page_widgets/@id]", mode="per_page_widget_template"{ + with "page_desc", "$desc"; + } + | }`if "position()!=last()" > ,` + value "ns:ProgressEnd($pagename)"; +} + +emit "definitions:page-desc" { + | + | var page_desc = { + apply "$hmi_pages", mode="page_desc"; + | } +} + +template "*", mode="per_page_widget_template"; + + +emit "debug:detachable-pages" { + | + | DETACHABLES: + foreach "$detachable_elements"{ + | «@id» + } + | In Foreach: + foreach "$in_forEach_widget_ids"{ + | «.» + } + | Overlapping + apply "$overlapping_geometry", mode="testtree"; +} diff -r 2b00f90c6888 -r d5b2369a103f svghmi/fonts.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/fonts.py Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,78 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# This file is part of Beremiz +# Copyright (C) 2021: Edouard TISSERANT +# +# See COPYING file for copyrights details. + +from __future__ import print_function +import sys +from base64 import b64encode + +from fontTools import ttLib + +# Inkscape seems to refer to font with different family name depending on platform. +# this are heuristics that would need extensive testing to be sure. +FamilyNameIDs = [1] if sys.platform.startswith('win') else [1, 16] + +def GetFontTypeAndFamilyName(filename): + """ + Getting font family, format and MIME type + """ + + familyname = None + uniquename = None + formatname = None + mimetype = None + + font = ttLib.TTFont(filename) + # https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6name.html + for name in font["name"].names: + #print(name.nameID, name.platformID, name.langID, name.toUnicode()) + if name.nameID in FamilyNameIDs and name.platformID==3 and name.langID==1033: + familyname = name.toUnicode() + if name.nameID==4 and name.platformID==3 and name.langID==1033: + uniquename = name.toUnicode() + + if font.flavor : + # woff and woff2 + formatname = font.flavor + mimetype = "font/" + formatname + # conditions on sfntVersion was deduced from fontTools.ttLib.sfnt + elif font.sfntVersion in ("\x00\x01\x00\x00", "true"): + formatname = "truetype" + mimetype = "font/ttf" + elif font.sfntVersion == "OTTO": + formatname = "opentype" + mimetype = "font/otf" + + return familyname,uniquename,formatname,mimetype + +def DataURIFromFile(filename, mimetype): + with open(filename, "rb") as fp: + data = fp.read() + return "".join([ + "data:", + mimetype, + ";base64,", + b64encode(data).strip()]) + +def GetCSSFontFaceFromFontFile(filename): + familyname, uniquename, formatname, mimetype = GetFontTypeAndFamilyName(filename) + data_uri = DataURIFromFile(filename, mimetype) + css_font_face = \ + """ + @font-face {{ + font-family: "{}"; + src: url("{}") format("{}") + }} + """.format(familyname, data_uri, formatname) + return css_font_face + + +# tests +if __name__ == '__main__': + print(GetCSSFontFaceFromFontFile("/usr/share/matplotlib/mpl-data/fonts/ttf/DejaVuSans.ttf")) + print(GetCSSFontFaceFromFontFile("/usr/share/fonts/opentype/urw-base35/NimbusSans-Regular.otf")) + print(GetCSSFontFaceFromFontFile("/usr/share/yelp/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_SansSerif-Regular.woff")) diff -r 2b00f90c6888 -r d5b2369a103f svghmi/gen_dnd_widget_svg.xslt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/gen_dnd_widget_svg.xslt Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,182 @@ +<?xml version="1.0"?> +<xsl:stylesheet xmlns:func="http://exslt.org/functions" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:svg="http://www.w3.org/2000/svg" xmlns:str="http://exslt.org/strings" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:exsl="http://exslt.org/common" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ns="beremiz" xmlns:cc="http://creativecommons.org/ns#" xmlns:regexp="http://exslt.org/regular-expressions" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:dc="http://purl.org/dc/elements/1.1/" extension-element-prefixes="ns func exsl regexp str dyn" version="1.0" exclude-result-prefixes="ns func exsl regexp str dyn"> + <xsl:output method="xml"/> + <xsl:param name="hmi_path"/> + <xsl:variable name="svg" select="/svg:svg"/> + <xsl:variable name="hmi_elements" select="//svg:*[starts-with(@inkscape:label, 'HMI:')]"/> + <xsl:variable name="subhmitree" select="ns:GetSubHMITree()"/> + <xsl:variable name="indexed_hmitree" select="/.."/> + <xsl:template mode="parselabel" match="*"> + <xsl:variable name="label" select="@inkscape:label"/> + <xsl:variable name="id" select="@id"/> + <xsl:variable name="description" select="substring-after($label,'HMI:')"/> + <xsl:variable name="_args" select="substring-before($description,'@')"/> + <xsl:variable name="args"> + <xsl:choose> + <xsl:when test="$_args"> + <xsl:value-of select="$_args"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$description"/> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:variable name="_type" select="substring-before($args,':')"/> + <xsl:variable name="type"> + <xsl:choose> + <xsl:when test="$_type"> + <xsl:value-of select="$_type"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$args"/> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:if test="$type"> + <widget> + <xsl:attribute name="id"> + <xsl:value-of select="$id"/> + </xsl:attribute> + <xsl:attribute name="type"> + <xsl:value-of select="$type"/> + </xsl:attribute> + <xsl:for-each select="str:split(substring-after($args, ':'), ':')"> + <arg> + <xsl:attribute name="value"> + <xsl:value-of select="."/> + </xsl:attribute> + </arg> + </xsl:for-each> + <xsl:variable name="paths" select="substring-after($description,'@')"/> + <xsl:for-each select="str:split($paths, '@')"> + <xsl:if test="string-length(.) > 0"> + <path> + <xsl:variable name="pathminmax" select="str:split(.,',')"/> + <xsl:variable name="path" select="$pathminmax[1]"/> + <xsl:variable name="pathminmaxcount" select="count($pathminmax)"/> + <xsl:attribute name="value"> + <xsl:value-of select="$path"/> + </xsl:attribute> + <xsl:choose> + <xsl:when test="$pathminmaxcount = 3"> + <xsl:attribute name="min"> + <xsl:value-of select="$pathminmax[2]"/> + </xsl:attribute> + <xsl:attribute name="max"> + <xsl:value-of select="$pathminmax[3]"/> + </xsl:attribute> + </xsl:when> + <xsl:when test="$pathminmaxcount = 2"> + <xsl:message terminate="yes"> + <xsl:text>Widget id:</xsl:text> + <xsl:value-of select="$id"/> + <xsl:text> label:</xsl:text> + <xsl:value-of select="$label"/> + <xsl:text> has wrong syntax of path section </xsl:text> + <xsl:value-of select="$pathminmax"/> + </xsl:message> + </xsl:when> + </xsl:choose> + <xsl:choose> + <xsl:when test="regexp:test($path,'^\.[a-zA-Z0-9_]+$')"> + <xsl:attribute name="type"> + <xsl:text>PAGE_LOCAL</xsl:text> + </xsl:attribute> + </xsl:when> + <xsl:when test="regexp:test($path,'^[a-zA-Z0-9_]+$')"> + <xsl:attribute name="type"> + <xsl:text>HMI_LOCAL</xsl:text> + </xsl:attribute> + </xsl:when> + <xsl:otherwise> + <xsl:variable name="item" select="$indexed_hmitree/*[@hmipath = $path]"/> + <xsl:variable name="pathtype" select="local-name($item)"/> + <xsl:if test="$pathminmaxcount = 3 and not($pathtype = 'HMI_INT' or $pathtype = 'HMI_REAL')"> + <xsl:message terminate="yes"> + <xsl:text>Widget id:</xsl:text> + <xsl:value-of select="$id"/> + <xsl:text> label:</xsl:text> + <xsl:value-of select="$label"/> + <xsl:text> path section </xsl:text> + <xsl:value-of select="$pathminmax"/> + <xsl:text> use min and max on non mumeric value</xsl:text> + </xsl:message> + </xsl:if> + <xsl:if test="count($item) = 1"> + <xsl:attribute name="index"> + <xsl:value-of select="$item/@index"/> + </xsl:attribute> + <xsl:attribute name="type"> + <xsl:value-of select="$pathtype"/> + </xsl:attribute> + </xsl:if> + </xsl:otherwise> + </xsl:choose> + </path> + </xsl:if> + </xsl:for-each> + </widget> + </xsl:if> + </xsl:template> + <xsl:variable name="_parsed_widgets"> + <xsl:apply-templates mode="parselabel" select="$hmi_elements"/> + </xsl:variable> + <xsl:variable name="parsed_widgets" select="exsl:node-set($_parsed_widgets)"/> + <xsl:variable name="selected_node_type" select="local-name($subhmitree)"/> + <xsl:variable name="svg_widget" select="$parsed_widgets/widget[1]"/> + <xsl:variable name="svg_widget_type" select="$svg_widget/@type"/> + <xsl:variable name="svg_widget_path" select="$svg_widget/@path"/> + <xsl:variable name="svg_widget_count" select="count($parsed_widgets/widget)"/> + <xsl:template xmlns="http://www.w3.org/2000/svg" mode="inline_svg" match="@*"> + <xsl:copy/> + </xsl:template> + <xsl:template xmlns="http://www.w3.org/2000/svg" mode="inline_svg" match="@inkscape:label[starts-with(., 'HMI:')]"> + <xsl:attribute name="inkscape:label"> + <xsl:value-of select="substring-before(., '@')"/> + <xsl:text>@</xsl:text> + <xsl:value-of select="$hmi_path"/> + </xsl:attribute> + </xsl:template> + <xsl:template mode="inline_svg" match="node()"> + <xsl:copy> + <xsl:apply-templates mode="inline_svg" select="@* | node()"/> + </xsl:copy> + </xsl:template> + <xsl:variable name="NODES_TYPES" select="str:split('HMI_ROOT HMI_NODE')"/> + <xsl:variable name="HMI_NODES_COMPAT" select="str:split('Page Jump Foreach')"/> + <xsl:template match="/"> + <xsl:comment> + <xsl:text>Widget dropped in Inkscape from Beremiz</xsl:text> + </xsl:comment> + <xsl:choose> + <xsl:when test="$svg_widget_count < 1"> + <xsl:message terminate="yes"> + <xsl:text>No widget detected on selected SVG</xsl:text> + </xsl:message> + </xsl:when> + <xsl:when test="$svg_widget_count > 1"> + <xsl:message terminate="yes"> + <xsl:text>Multiple widget DnD not yet supported</xsl:text> + </xsl:message> + </xsl:when> + <xsl:when test="$selected_node_type = $NODES_TYPES and not($svg_widget_type = $HMI_NODES_COMPAT)"> + <xsl:message terminate="yes"> + <xsl:text>Widget incompatible with selected HMI tree node</xsl:text> + </xsl:message> + </xsl:when> + </xsl:choose> + <xsl:variable name="testmsg"> + <msg> + <xsl:value-of select="$hmi_path"/> + </msg> + <msg> + <xsl:value-of select="$selected_node_type"/> + </msg> + <msg> + <xsl:value-of select="$svg_widget_type"/> + </msg> + </xsl:variable> + <xsl:value-of select="ns:GiveDetails($testmsg)"/> + <xsl:apply-templates mode="inline_svg" select="/"/> + </xsl:template> +</xsl:stylesheet> diff -r 2b00f90c6888 -r d5b2369a103f svghmi/gen_dnd_widget_svg.ysl2 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/gen_dnd_widget_svg.ysl2 Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,74 @@ +include yslt_noindent.yml2 + +in xsl decl svgtmpl(match, xmlns="http://www.w3.org/2000/svg") alias template; + +istylesheet + /* From Inkscape */ + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:xhtml="http://www.w3.org/1999/xhtml" + + /* Namespace to invoke python code */ + xmlns:ns="beremiz" + + extension-element-prefixes="ns func exsl regexp str dyn" + exclude-result-prefixes="ns func exsl regexp str dyn" { + + param "hmi_path"; + const "svg", "/svg:svg"; + const "hmi_elements", "//svg:*[starts-with(@inkscape:label, 'HMI:')]"; + const "subhmitree", "ns:GetSubHMITree()"; + + const "indexed_hmitree", "/.."; // compatibility with parse_labels.ysl2 + include parse_labels.ysl2 + const "_parsed_widgets" apply "$hmi_elements", mode="parselabel"; + const "parsed_widgets","exsl:node-set($_parsed_widgets)"; + + const "selected_node_type","local-name($subhmitree)"; + const "svg_widget", "$parsed_widgets/widget[1]"; + const "svg_widget_type", "$svg_widget/@type"; + const "svg_widget_path", "$svg_widget/@path"; + const "svg_widget_count", "count($parsed_widgets/widget)"; + + svgtmpl "@*", mode="inline_svg" xsl:copy; + + svgtmpl "@inkscape:label[starts-with(., 'HMI:')]", mode="inline_svg" { + attrib "inkscape:label" > «substring-before(., '@')»@«$hmi_path» + } + + template "node()", mode="inline_svg" { + xsl:copy apply "@* | node()", mode="inline_svg"; + } + + + const "NODES_TYPES","str:split('HMI_ROOT HMI_NODE')"; + const "HMI_NODES_COMPAT","str:split('Page Jump Foreach')"; + template "/" { + comment > Widget dropped in Inkscape from Beremiz + + choose { + when "$svg_widget_count < 1" + error > No widget detected on selected SVG + when "$svg_widget_count > 1" + error > Multiple widget DnD not yet supported + when """$selected_node_type = $NODES_TYPES and \ + not($svg_widget_type = $HMI_NODES_COMPAT)""" + error > Widget incompatible with selected HMI tree node + } + + const "testmsg" { + msg value "$hmi_path"; + msg value "$selected_node_type"; + msg value "$svg_widget_type"; + } + + value "ns:GiveDetails($testmsg)"; + + apply "/", mode="inline_svg"; + } +} diff -r 2b00f90c6888 -r d5b2369a103f svghmi/gen_index_xhtml.xslt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/gen_index_xhtml.xslt Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,7920 @@ +<?xml version="1.0"?> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exsl="http://exslt.org/common" xmlns:regexp="http://exslt.org/regular-expressions" xmlns:str="http://exslt.org/strings" xmlns:func="http://exslt.org/functions" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:debug="debug" xmlns:preamble="preamble" xmlns:declarations="declarations" xmlns:definitions="definitions" xmlns:epilogue="epilogue" xmlns:ns="beremiz" version="1.0" extension-element-prefixes="ns func exsl regexp str dyn" exclude-result-prefixes="ns func exsl regexp str dyn debug preamble epilogue declarations definitions"> + <xsl:output cdata-section-elements="xhtml:script" method="xml"/> + <xsl:variable name="svg" select="/svg:svg"/> + <xsl:variable name="hmi_elements" select="//svg:*[starts-with(@inkscape:label, 'HMI:')]"/> + <xsl:variable name="hmitree" select="ns:GetHMITree()"/> + <xsl:variable name="_categories"> + <noindex> + <xsl:text>HMI_PLC_STATUS</xsl:text> + </noindex> + <noindex> + <xsl:text>HMI_CURRENT_PAGE</xsl:text> + </noindex> + </xsl:variable> + <xsl:variable name="categories" select="exsl:node-set($_categories)"/> + <xsl:variable name="_indexed_hmitree"> + <xsl:apply-templates mode="index" select="$hmitree"/> + </xsl:variable> + <xsl:variable name="indexed_hmitree" select="exsl:node-set($_indexed_hmitree)"/> + <preamble:hmi-tree/> + <xsl:template match="preamble:hmi-tree"> + <xsl:text> +</xsl:text> + <xsl:text>/* </xsl:text> + <xsl:value-of select="local-name()"/> + <xsl:text> */ +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>var hmi_hash = [</xsl:text> + <xsl:value-of select="$hmitree/@hash"/> + <xsl:text>]; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>var heartbeat_index = </xsl:text> + <xsl:value-of select="$indexed_hmitree/*[@hmipath = '/HEARTBEAT']/@index"/> + <xsl:text>; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>var hmitree_types = [ +</xsl:text> + <xsl:for-each select="$indexed_hmitree/*"> + <xsl:text> /* </xsl:text> + <xsl:value-of select="@index"/> + <xsl:text> */ "</xsl:text> + <xsl:value-of select="substring(local-name(), 5)"/> + <xsl:text>"</xsl:text> + <xsl:if test="position()!=last()"> + <xsl:text>,</xsl:text> + </xsl:if> + <xsl:text> +</xsl:text> + </xsl:for-each> + <xsl:text>]; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>var hmitree_paths = [ +</xsl:text> + <xsl:for-each select="$indexed_hmitree/*"> + <xsl:text> /* </xsl:text> + <xsl:value-of select="@index"/> + <xsl:text> */ "</xsl:text> + <xsl:value-of select="@hmipath"/> + <xsl:text>"</xsl:text> + <xsl:if test="position()!=last()"> + <xsl:text>,</xsl:text> + </xsl:if> + <xsl:text> +</xsl:text> + </xsl:for-each> + <xsl:text>]; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> +</xsl:text> + </xsl:template> + <xsl:template mode="index" match="*"> + <xsl:param name="index" select="0"/> + <xsl:param name="parentpath" select="''"/> + <xsl:variable name="content"> + <xsl:variable name="path"> + <xsl:choose> + <xsl:when test="count(ancestor::*)=0"> + <xsl:text>/</xsl:text> + </xsl:when> + <xsl:when test="count(ancestor::*)=1"> + <xsl:text>/</xsl:text> + <xsl:value-of select="@name"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$parentpath"/> + <xsl:text>/</xsl:text> + <xsl:value-of select="@name"/> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:choose> + <xsl:when test="not(local-name() = $categories/noindex)"> + <xsl:copy> + <xsl:attribute name="index"> + <xsl:value-of select="$index"/> + </xsl:attribute> + <xsl:attribute name="hmipath"> + <xsl:value-of select="$path"/> + </xsl:attribute> + <xsl:for-each select="@*"> + <xsl:copy/> + </xsl:for-each> + </xsl:copy> + <xsl:apply-templates mode="index" select="*[1]"> + <xsl:with-param name="index" select="$index + 1"/> + <xsl:with-param name="parentpath"> + <xsl:value-of select="$path"/> + </xsl:with-param> + </xsl:apply-templates> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates mode="index" select="*[1]"> + <xsl:with-param name="index" select="$index"/> + <xsl:with-param name="parentpath"> + <xsl:value-of select="$path"/> + </xsl:with-param> + </xsl:apply-templates> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:copy-of select="$content"/> + <xsl:apply-templates mode="index" select="following-sibling::*[1]"> + <xsl:with-param name="index" select="$index + count(exsl:node-set($content)/*)"/> + <xsl:with-param name="parentpath"> + <xsl:value-of select="$parentpath"/> + </xsl:with-param> + </xsl:apply-templates> + </xsl:template> + <xsl:template mode="parselabel" match="*"> + <xsl:variable name="label" select="@inkscape:label"/> + <xsl:variable name="id" select="@id"/> + <xsl:variable name="description" select="substring-after($label,'HMI:')"/> + <xsl:variable name="_args" select="substring-before($description,'@')"/> + <xsl:variable name="args"> + <xsl:choose> + <xsl:when test="$_args"> + <xsl:value-of select="$_args"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$description"/> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:variable name="_type" select="substring-before($args,':')"/> + <xsl:variable name="type"> + <xsl:choose> + <xsl:when test="$_type"> + <xsl:value-of select="$_type"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$args"/> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:if test="$type"> + <widget> + <xsl:attribute name="id"> + <xsl:value-of select="$id"/> + </xsl:attribute> + <xsl:attribute name="type"> + <xsl:value-of select="$type"/> + </xsl:attribute> + <xsl:for-each select="str:split(substring-after($args, ':'), ':')"> + <arg> + <xsl:attribute name="value"> + <xsl:value-of select="."/> + </xsl:attribute> + </arg> + </xsl:for-each> + <xsl:variable name="paths" select="substring-after($description,'@')"/> + <xsl:for-each select="str:split($paths, '@')"> + <xsl:if test="string-length(.) > 0"> + <path> + <xsl:variable name="pathminmax" select="str:split(.,',')"/> + <xsl:variable name="path" select="$pathminmax[1]"/> + <xsl:variable name="pathminmaxcount" select="count($pathminmax)"/> + <xsl:attribute name="value"> + <xsl:value-of select="$path"/> + </xsl:attribute> + <xsl:choose> + <xsl:when test="$pathminmaxcount = 3"> + <xsl:attribute name="min"> + <xsl:value-of select="$pathminmax[2]"/> + </xsl:attribute> + <xsl:attribute name="max"> + <xsl:value-of select="$pathminmax[3]"/> + </xsl:attribute> + </xsl:when> + <xsl:when test="$pathminmaxcount = 2"> + <xsl:message terminate="yes"> + <xsl:text>Widget id:</xsl:text> + <xsl:value-of select="$id"/> + <xsl:text> label:</xsl:text> + <xsl:value-of select="$label"/> + <xsl:text> has wrong syntax of path section </xsl:text> + <xsl:value-of select="$pathminmax"/> + </xsl:message> + </xsl:when> + </xsl:choose> + <xsl:choose> + <xsl:when test="regexp:test($path,'^\.[a-zA-Z0-9_]+$')"> + <xsl:attribute name="type"> + <xsl:text>PAGE_LOCAL</xsl:text> + </xsl:attribute> + </xsl:when> + <xsl:when test="regexp:test($path,'^[a-zA-Z0-9_]+$')"> + <xsl:attribute name="type"> + <xsl:text>HMI_LOCAL</xsl:text> + </xsl:attribute> + </xsl:when> + <xsl:otherwise> + <xsl:variable name="item" select="$indexed_hmitree/*[@hmipath = $path]"/> + <xsl:variable name="pathtype" select="local-name($item)"/> + <xsl:if test="$pathminmaxcount = 3 and not($pathtype = 'HMI_INT' or $pathtype = 'HMI_REAL')"> + <xsl:message terminate="yes"> + <xsl:text>Widget id:</xsl:text> + <xsl:value-of select="$id"/> + <xsl:text> label:</xsl:text> + <xsl:value-of select="$label"/> + <xsl:text> path section </xsl:text> + <xsl:value-of select="$pathminmax"/> + <xsl:text> use min and max on non mumeric value</xsl:text> + </xsl:message> + </xsl:if> + <xsl:if test="count($item) = 1"> + <xsl:attribute name="index"> + <xsl:value-of select="$item/@index"/> + </xsl:attribute> + <xsl:attribute name="type"> + <xsl:value-of select="$pathtype"/> + </xsl:attribute> + </xsl:if> + </xsl:otherwise> + </xsl:choose> + </path> + </xsl:if> + </xsl:for-each> + </widget> + </xsl:if> + </xsl:template> + <xsl:variable name="_parsed_widgets"> + <widget type="VarInitPersistent"> + <arg value="0"/> + <path value="lang"/> + </widget> + <xsl:apply-templates mode="parselabel" select="$hmi_elements"/> + </xsl:variable> + <xsl:variable name="parsed_widgets" select="exsl:node-set($_parsed_widgets)"/> + <func:function name="func:widget"> + <xsl:param name="id"/> + <func:result select="$parsed_widgets/widget[@id = $id]"/> + </func:function> + <func:function name="func:is_descendant_path"> + <xsl:param name="descend"/> + <xsl:param name="ancest"/> + <func:result select="string-length($ancest) > 0 and starts-with($descend,$ancest)"/> + </func:function> + <func:function name="func:same_class_paths"> + <xsl:param name="a"/> + <xsl:param name="b"/> + <xsl:variable name="class_a" select="$indexed_hmitree/*[@hmipath = $a]/@class"/> + <xsl:variable name="class_b" select="$indexed_hmitree/*[@hmipath = $b]/@class"/> + <func:result select="$class_a and $class_b and $class_a = $class_b"/> + </func:function> + <xsl:template mode="testtree" match="*"> + <xsl:param name="indent" select="''"/> + <xsl:value-of select="$indent"/> + <xsl:text> </xsl:text> + <xsl:value-of select="local-name()"/> + <xsl:text> </xsl:text> + <xsl:for-each select="@*"> + <xsl:value-of select="local-name()"/> + <xsl:text>="</xsl:text> + <xsl:value-of select="."/> + <xsl:text>" </xsl:text> + </xsl:for-each> + <xsl:text> +</xsl:text> + <xsl:apply-templates mode="testtree" select="*"> + <xsl:with-param name="indent"> + <xsl:value-of select="concat($indent,'>')"/> + </xsl:with-param> + </xsl:apply-templates> + </xsl:template> + <debug:hmi-tree/> + <xsl:template match="debug:hmi-tree"> + <xsl:text> +</xsl:text> + <xsl:text>/* </xsl:text> + <xsl:value-of select="local-name()"/> + <xsl:text> */ +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>Raw HMI tree +</xsl:text> + <xsl:apply-templates mode="testtree" select="$hmitree"/> + <xsl:text> +</xsl:text> + <xsl:text>Indexed HMI tree +</xsl:text> + <xsl:apply-templates mode="testtree" select="$indexed_hmitree"/> + <xsl:text> +</xsl:text> + <xsl:text>Parsed Widgets +</xsl:text> + <xsl:copy-of select="_parsed_widgets"/> + <xsl:apply-templates mode="testtree" select="$parsed_widgets"/> + <xsl:text> +</xsl:text> + </xsl:template> + <xsl:variable name="all_geometry" select="ns:GetSVGGeometry()"/> + <xsl:variable name="defs" select="//svg:defs/descendant-or-self::svg:*"/> + <xsl:variable name="geometry" select="$all_geometry[not(@Id = $defs/@id)]"/> + <debug:geometry/> + <xsl:template match="debug:geometry"> + <xsl:text> +</xsl:text> + <xsl:text>/* </xsl:text> + <xsl:value-of select="local-name()"/> + <xsl:text> */ +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>ID, x, y, w, h +</xsl:text> + <xsl:for-each select="$geometry"> + <xsl:text> </xsl:text> + <xsl:value-of select="@Id"/> + <xsl:text> </xsl:text> + <xsl:value-of select="@x"/> + <xsl:text> </xsl:text> + <xsl:value-of select="@y"/> + <xsl:text> </xsl:text> + <xsl:value-of select="@w"/> + <xsl:text> </xsl:text> + <xsl:value-of select="@h"/> + <xsl:text> +</xsl:text> + </xsl:for-each> + <xsl:text> +</xsl:text> + </xsl:template> + <func:function name="func:intersect_1d"> + <xsl:param name="a0"/> + <xsl:param name="a1"/> + <xsl:param name="b0"/> + <xsl:param name="b1"/> + <xsl:variable name="d0" select="$a0 >= $b0"/> + <xsl:variable name="d1" select="$a1 >= $b1"/> + <xsl:choose> + <xsl:when test="not($d0) and $d1"> + <func:result select="3"/> + </xsl:when> + <xsl:when test="$d0 and not($d1)"> + <func:result select="2"/> + </xsl:when> + <xsl:when test="$d0 and $d1 and $a0 < $b1"> + <func:result select="1"/> + </xsl:when> + <xsl:when test="not($d0) and not($d1) and $b0 < $a1"> + <func:result select="1"/> + </xsl:when> + <xsl:otherwise> + <func:result select="0"/> + </xsl:otherwise> + </xsl:choose> + </func:function> + <func:function name="func:intersect"> + <xsl:param name="a"/> + <xsl:param name="b"/> + <xsl:variable name="x_intersect" select="func:intersect_1d($a/@x, $a/@x+$a/@w, $b/@x, $b/@x+$b/@w)"/> + <xsl:choose> + <xsl:when test="$x_intersect != 0"> + <xsl:variable name="y_intersect" select="func:intersect_1d($a/@y, $a/@y+$a/@h, $b/@y, $b/@y+$b/@h)"/> + <func:result select="$x_intersect * $y_intersect"/> + </xsl:when> + <xsl:otherwise> + <func:result select="0"/> + </xsl:otherwise> + </xsl:choose> + </func:function> + <xsl:variable name="groups" select="/svg:svg | //svg:g"/> + <func:function name="func:overlapping_geometry"> + <xsl:param name="elt"/> + <xsl:variable name="g" select="$geometry[@Id = $elt/@id]"/> + <xsl:variable name="candidates" select="$geometry[@Id != $elt/@id]"/> + <func:result select="$candidates[(@Id = $groups/@id and (func:intersect($g, .) = 9)) or (not(@Id = $groups/@id) and (func:intersect($g, .) > 0 ))]"/> + </func:function> + <xsl:variable name="hmi_pages_descs" select="$parsed_widgets/widget[@type = 'Page']"/> + <xsl:variable name="hmi_pages" select="$hmi_elements[@id = $hmi_pages_descs/@id]"/> + <xsl:variable name="default_page"> + <xsl:choose> + <xsl:when test="count($hmi_pages) > 1"> + <xsl:choose> + <xsl:when test="$hmi_pages_descs/arg[1]/@value = 'Home'"> + <xsl:text>Home</xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:message terminate="yes"> + <xsl:text>No Home page defined!</xsl:text> + </xsl:message> + </xsl:otherwise> + </xsl:choose> + </xsl:when> + <xsl:when test="count($hmi_pages) = 0"> + <xsl:message terminate="yes"> + <xsl:text>No page defined!</xsl:text> + </xsl:message> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="func:widget($hmi_pages/@id)/arg[1]/@value"/> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + <preamble:default-page/> + <xsl:template match="preamble:default-page"> + <xsl:text> +</xsl:text> + <xsl:text>/* </xsl:text> + <xsl:value-of select="local-name()"/> + <xsl:text> */ +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>var default_page = "</xsl:text> + <xsl:value-of select="$default_page"/> + <xsl:text>"; +</xsl:text> + <xsl:text> +</xsl:text> + </xsl:template> + <xsl:variable name="keypads_descs" select="$parsed_widgets/widget[@type = 'Keypad']"/> + <xsl:variable name="keypads" select="$hmi_elements[@id = $keypads_descs/@id]"/> + <func:function name="func:refered_elements"> + <xsl:param name="elems"/> + <xsl:variable name="descend" select="$elems/descendant-or-self::svg:*"/> + <xsl:variable name="clones" select="$descend[self::svg:use]"/> + <xsl:variable name="originals" select="//svg:*[concat('#',@id) = $clones/@xlink:href]"/> + <xsl:choose> + <xsl:when test="$originals"> + <func:result select="$descend | func:refered_elements($originals)"/> + </xsl:when> + <xsl:otherwise> + <func:result select="$descend"/> + </xsl:otherwise> + </xsl:choose> + </func:function> + <xsl:variable name="_overlapping_geometry"> + <xsl:for-each select="$hmi_pages | $keypads"> + <xsl:variable name="k" select="concat('overlapping:', @id)"/> + <xsl:value-of select="ns:ProgressStart($k, concat('collecting membership of ', @inkscape:label))"/> + <elt> + <xsl:attribute name="id"> + <xsl:value-of select="@id"/> + </xsl:attribute> + <xsl:copy-of select="func:overlapping_geometry(.)"/> + </elt> + <xsl:value-of select="ns:ProgressEnd($k)"/> + </xsl:for-each> + </xsl:variable> + <xsl:variable name="overlapping_geometry" select="exsl:node-set($_overlapping_geometry)"/> + <func:function name="func:all_related_elements"> + <xsl:param name="page"/> + <xsl:variable name="page_overlapping_geometry" select="$overlapping_geometry/elt[@id = $page/@id]/*"/> + <xsl:variable name="page_overlapping_elements" select="//svg:*[@id = $page_overlapping_geometry/@Id]"/> + <xsl:variable name="page_sub_elements" select="func:refered_elements($page | $page_overlapping_elements)"/> + <func:result select="$page_sub_elements"/> + </func:function> + <func:function name="func:required_elements"> + <xsl:param name="pages"/> + <xsl:choose> + <xsl:when test="$pages"> + <func:result select="func:all_related_elements($pages[1]) | func:required_elements($pages[position()!=1])"/> + </xsl:when> + <xsl:otherwise> + <func:result select="/.."/> + </xsl:otherwise> + </xsl:choose> + </func:function> + <xsl:variable name="required_page_elements" select="func:required_elements($hmi_pages | $keypads)/ancestor-or-self::svg:*"/> + <xsl:variable name="hmi_lists_descs" select="$parsed_widgets/widget[@type = 'List']"/> + <xsl:variable name="hmi_lists" select="$hmi_elements[@id = $hmi_lists_descs/@id]"/> + <xsl:variable name="required_list_elements" select="func:refered_elements($hmi_lists[@id = $required_page_elements/@id])"/> + <xsl:variable name="required_elements" select="$defs | $required_list_elements | $required_page_elements"/> + <xsl:variable name="discardable_elements" select="//svg:*[not(@id = $required_elements/@id)]"/> + <func:function name="func:sumarized_elements"> + <xsl:param name="elements"/> + <xsl:variable name="short_list" select="$elements[not(ancestor::*/@id = $elements/@id)]"/> + <xsl:variable name="filled_groups" select="$short_list/parent::*[ not(child::*[ not(@id = $discardable_elements/@id) and not(@id = $short_list/@id) ])]"/> + <xsl:variable name="groups_to_add" select="$filled_groups[not(ancestor::*/@id = $filled_groups/@id)]"/> + <func:result select="$groups_to_add | $short_list[not(ancestor::*/@id = $filled_groups/@id)]"/> + </func:function> + <func:function name="func:detachable_elements"> + <xsl:param name="pages"/> + <xsl:choose> + <xsl:when test="$pages"> + <func:result select="func:sumarized_elements(func:all_related_elements($pages[1])) | func:detachable_elements($pages[position()!=1])"/> + </xsl:when> + <xsl:otherwise> + <func:result select="/.."/> + </xsl:otherwise> + </xsl:choose> + </func:function> + <xsl:variable name="_detachable_elements" select="func:detachable_elements($hmi_pages | $keypads)"/> + <xsl:variable name="detachable_elements" select="$_detachable_elements[not(ancestor::*/@id = $_detachable_elements/@id)]"/> + <declarations:detachable-elements/> + <xsl:template match="declarations:detachable-elements"> + <xsl:text> +</xsl:text> + <xsl:text>/* </xsl:text> + <xsl:value-of select="local-name()"/> + <xsl:text> */ +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>var detachable_elements = { +</xsl:text> + <xsl:for-each select="$detachable_elements"> + <xsl:text> "</xsl:text> + <xsl:value-of select="@id"/> + <xsl:text>":[id("</xsl:text> + <xsl:value-of select="@id"/> + <xsl:text>"), id("</xsl:text> + <xsl:value-of select="../@id"/> + <xsl:text>")]</xsl:text> + <xsl:if test="position()!=last()"> + <xsl:text>,</xsl:text> + </xsl:if> + <xsl:text> +</xsl:text> + </xsl:for-each> + <xsl:text>} +</xsl:text> + <xsl:text> +</xsl:text> + </xsl:template> + <xsl:variable name="forEach_widgets_ids" select="$parsed_widgets/widget[@type = 'ForEach']/@id"/> + <xsl:variable name="forEach_widgets" select="$hmi_widgets[@id = $forEach_widgets_ids]"/> + <xsl:variable name="in_forEach_widget_ids" select="func:refered_elements($forEach_widgets)[not(@id = $forEach_widgets_ids)]/@id"/> + <xsl:template mode="page_desc" match="svg:*"> + <xsl:if test="ancestor::*[@id = $hmi_pages/@id]"> + <xsl:message terminate="yes"> + <xsl:text>HMI:Page </xsl:text> + <xsl:value-of select="@id"/> + <xsl:text> is nested in another HMI:Page</xsl:text> + </xsl:message> + </xsl:if> + <xsl:variable name="desc" select="func:widget(@id)"/> + <xsl:variable name="pagename" select="$desc/arg[1]/@value"/> + <xsl:variable name="msg" select="concat('generating page description ', $pagename)"/> + <xsl:value-of select="ns:ProgressStart($pagename, $msg)"/> + <xsl:variable name="page" select="."/> + <xsl:variable name="p" select="$geometry[@Id = $page/@id]"/> + <xsl:variable name="page_all_elements" select="func:all_related_elements($page)"/> + <xsl:variable name="all_page_widgets" select="$hmi_widgets[@id = $page_all_elements/@id and @id != $page/@id]"/> + <xsl:variable name="page_managed_widgets" select="$all_page_widgets[not(@id=$in_forEach_widget_ids)]"/> + <xsl:variable name="page_relative_widgets" select="$page_managed_widgets[func:is_descendant_path(func:widget(@id)/path/@value, $desc/path/@value)]"/> + <xsl:variable name="sumarized_page" select="func:sumarized_elements($page_all_elements)"/> + <xsl:variable name="required_detachables" select="$sumarized_page/ ancestor-or-self::*[@id = $detachable_elements/@id]"/> + <xsl:text> "</xsl:text> + <xsl:value-of select="$pagename"/> + <xsl:text>": { +</xsl:text> + <xsl:text> bbox: [</xsl:text> + <xsl:value-of select="$p/@x"/> + <xsl:text>, </xsl:text> + <xsl:value-of select="$p/@y"/> + <xsl:text>, </xsl:text> + <xsl:value-of select="$p/@w"/> + <xsl:text>, </xsl:text> + <xsl:value-of select="$p/@h"/> + <xsl:text>], +</xsl:text> + <xsl:if test="$desc/path/@value"> + <xsl:if test="count($desc/path/@index)=0"> + <xsl:message terminate="no"> + <xsl:text>Page id="</xsl:text> + <xsl:value-of select="$page/@id"/> + <xsl:text>" : No match for path "</xsl:text> + <xsl:value-of select="$desc/path/@value"/> + <xsl:text>" in HMI tree</xsl:text> + </xsl:message> + </xsl:if> + <xsl:text> page_index: </xsl:text> + <xsl:value-of select="$desc/path/@index"/> + <xsl:text>, +</xsl:text> + </xsl:if> + <xsl:text> widgets: [ +</xsl:text> + <xsl:for-each select="$page_managed_widgets"> + <xsl:variable name="widget_paths_relativeness"> + <xsl:for-each select="func:widget(@id)/path"> + <xsl:value-of select="func:is_descendant_path(@value, $desc/path/@value)"/> + <xsl:if test="position()!=last()"> + <xsl:text>,</xsl:text> + </xsl:if> + </xsl:for-each> + </xsl:variable> + <xsl:text> [hmi_widgets["</xsl:text> + <xsl:value-of select="@id"/> + <xsl:text>"], [</xsl:text> + <xsl:value-of select="$widget_paths_relativeness"/> + <xsl:text>]]</xsl:text> + <xsl:if test="position()!=last()"> + <xsl:text>,</xsl:text> + </xsl:if> + <xsl:text> +</xsl:text> + </xsl:for-each> + <xsl:text> ], +</xsl:text> + <xsl:text> jumps: [ +</xsl:text> + <xsl:for-each select="$parsed_widgets/widget[@id = $all_page_widgets/@id and @type='Jump']"> + <xsl:text> hmi_widgets["</xsl:text> + <xsl:value-of select="@id"/> + <xsl:text>"]</xsl:text> + <xsl:if test="position()!=last()"> + <xsl:text>,</xsl:text> + </xsl:if> + <xsl:text> +</xsl:text> + </xsl:for-each> + <xsl:text> ], +</xsl:text> + <xsl:text> required_detachables: { +</xsl:text> + <xsl:for-each select="$required_detachables"> + <xsl:text> "</xsl:text> + <xsl:value-of select="@id"/> + <xsl:text>": detachable_elements["</xsl:text> + <xsl:value-of select="@id"/> + <xsl:text>"]</xsl:text> + <xsl:if test="position()!=last()"> + <xsl:text>,</xsl:text> + </xsl:if> + <xsl:text> +</xsl:text> + </xsl:for-each> + <xsl:text> } +</xsl:text> + <xsl:apply-templates mode="per_page_widget_template" select="$parsed_widgets/widget[@id = $all_page_widgets/@id]"> + <xsl:with-param name="page_desc" select="$desc"/> + </xsl:apply-templates> + <xsl:text> }</xsl:text> + <xsl:if test="position()!=last()"> + <xsl:text>,</xsl:text> + </xsl:if> + <xsl:text> +</xsl:text> + <xsl:value-of select="ns:ProgressEnd($pagename)"/> + </xsl:template> + <definitions:page-desc/> + <xsl:template match="definitions:page-desc"> + <xsl:text> +</xsl:text> + <xsl:text>/* </xsl:text> + <xsl:value-of select="local-name()"/> + <xsl:text> */ +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>var page_desc = { +</xsl:text> + <xsl:apply-templates mode="page_desc" select="$hmi_pages"/> + <xsl:text>} +</xsl:text> + <xsl:text> +</xsl:text> + </xsl:template> + <xsl:template mode="per_page_widget_template" match="*"/> + <debug:detachable-pages/> + <xsl:template match="debug:detachable-pages"> + <xsl:text> +</xsl:text> + <xsl:text>/* </xsl:text> + <xsl:value-of select="local-name()"/> + <xsl:text> */ +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>DETACHABLES: +</xsl:text> + <xsl:for-each select="$detachable_elements"> + <xsl:text> </xsl:text> + <xsl:value-of select="@id"/> + <xsl:text> +</xsl:text> + </xsl:for-each> + <xsl:text>In Foreach: +</xsl:text> + <xsl:for-each select="$in_forEach_widget_ids"> + <xsl:text> </xsl:text> + <xsl:value-of select="."/> + <xsl:text> +</xsl:text> + </xsl:for-each> + <xsl:text>Overlapping +</xsl:text> + <xsl:apply-templates mode="testtree" select="$overlapping_geometry"/> + <xsl:text> +</xsl:text> + </xsl:template> + <xsl:template xmlns="http://www.w3.org/2000/svg" mode="inline_svg" match="@*"> + <xsl:copy/> + </xsl:template> + <xsl:template mode="inline_svg" match="node()"> + <xsl:if test="not(@id = $discardable_elements/@id)"> + <xsl:copy> + <xsl:apply-templates mode="inline_svg" select="@* | node()"/> + </xsl:copy> + </xsl:if> + </xsl:template> + <xsl:template mode="inline_svg" match="svg:svg/@width"/> + <xsl:template mode="inline_svg" match="svg:svg/@height"/> + <xsl:template xmlns="http://www.w3.org/2000/svg" mode="inline_svg" match="svg:svg"> + <svg> + <xsl:attribute name="preserveAspectRatio"> + <xsl:text>none</xsl:text> + </xsl:attribute> + <xsl:attribute name="height"> + <xsl:text>100vh</xsl:text> + </xsl:attribute> + <xsl:attribute name="width"> + <xsl:text>100vw</xsl:text> + </xsl:attribute> + <xsl:apply-templates mode="inline_svg" select="@* | node()"/> + </svg> + </xsl:template> + <xsl:template mode="inline_svg" match="svg:svg[@viewBox!=concat('0 0 ', @width, ' ', @height)]"> + <xsl:message terminate="yes"> + <xsl:text>ViewBox settings other than X=0, Y=0 and Scale=1 are not supported</xsl:text> + </xsl:message> + </xsl:template> + <xsl:template mode="inline_svg" match="sodipodi:namedview[@units!='px' or @inkscape:document-units!='px']"> + <xsl:message terminate="yes"> + <xsl:text>All units must be set to "px" in Inkscape's document properties</xsl:text> + </xsl:message> + </xsl:template> + <xsl:template xmlns="http://www.w3.org/2000/svg" mode="inline_svg" match="svg:text/@inkscape:label[starts-with(., '_')]"> + <xsl:attribute name="{name()}"> + <xsl:value-of select="substring(., 2)"/> + </xsl:attribute> + </xsl:template> + <xsl:variable name="targets_not_to_unlink" select="$hmi_lists/descendant-or-self::svg:*"/> + <xsl:variable name="to_unlink" select="$hmi_elements[not(@id = $hmi_pages/@id)]/descendant-or-self::svg:use"/> + <func:function name="func:is_unlinkable"> + <xsl:param name="targetid"/> + <xsl:param name="eltid"/> + <func:result select="$eltid = $to_unlink/@id and not($targetid = $targets_not_to_unlink/@id)"/> + </func:function> + <xsl:template xmlns="http://www.w3.org/2000/svg" mode="inline_svg" match="svg:use"> + <xsl:variable name="targetid" select="substring-after(@xlink:href,'#')"/> + <xsl:choose> + <xsl:when test="func:is_unlinkable($targetid, @id)"> + <xsl:call-template name="unlink_clone"> + <xsl:with-param name="targetid" select="$targetid"/> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <xsl:copy> + <xsl:apply-templates mode="inline_svg" select="@*"/> + </xsl:copy> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + <xsl:variable name="_excluded_use_attrs"> + <name> + <xsl:text>href</xsl:text> + </name> + <name> + <xsl:text>width</xsl:text> + </name> + <name> + <xsl:text>height</xsl:text> + </name> + <name> + <xsl:text>x</xsl:text> + </name> + <name> + <xsl:text>y</xsl:text> + </name> + <name> + <xsl:text>id</xsl:text> + </name> + </xsl:variable> + <xsl:variable name="excluded_use_attrs" select="exsl:node-set($_excluded_use_attrs)"/> + <xsl:variable name="_merge_use_attrs"> + <name> + <xsl:text>transform</xsl:text> + </name> + <name> + <xsl:text>style</xsl:text> + </name> + </xsl:variable> + <xsl:variable name="merge_use_attrs" select="exsl:node-set($_merge_use_attrs)"/> + <xsl:template xmlns="http://www.w3.org/2000/svg" name="unlink_clone"> + <xsl:param name="targetid"/> + <xsl:param name="seed" select="''"/> + <xsl:variable name="target" select="//svg:*[@id = $targetid]"/> + <xsl:variable name="seeded_id"> + <xsl:choose> + <xsl:when test="string-length($seed) > 0"> + <xsl:value-of select="$seed"/> + <xsl:text>_</xsl:text> + <xsl:value-of select="@id"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="@id"/> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + <g> + <xsl:attribute name="id"> + <xsl:value-of select="$seeded_id"/> + </xsl:attribute> + <xsl:attribute name="original"> + <xsl:value-of select="@id"/> + </xsl:attribute> + <xsl:choose> + <xsl:when test="$target[self::svg:g]"> + <xsl:for-each select="@*[not(local-name() = $excluded_use_attrs/name | $merge_use_attrs)]"> + <xsl:attribute name="{name()}"> + <xsl:value-of select="."/> + </xsl:attribute> + </xsl:for-each> + <xsl:if test="@style | $target/@style"> + <xsl:attribute name="style"> + <xsl:value-of select="@style"/> + <xsl:if test="@style and $target/@style"> + <xsl:text>;</xsl:text> + </xsl:if> + <xsl:value-of select="$target/@style"/> + </xsl:attribute> + </xsl:if> + <xsl:if test="@transform | $target/@transform"> + <xsl:attribute name="transform"> + <xsl:value-of select="@transform"/> + <xsl:if test="@transform and $target/@transform"> + <xsl:text> </xsl:text> + </xsl:if> + <xsl:value-of select="$target/@transform"/> + </xsl:attribute> + </xsl:if> + <xsl:apply-templates mode="unlink_clone" select="$target/*"> + <xsl:with-param name="seed" select="$seeded_id"/> + </xsl:apply-templates> + </xsl:when> + <xsl:otherwise> + <xsl:for-each select="@*[not(local-name() = $excluded_use_attrs/name)]"> + <xsl:attribute name="{name()}"> + <xsl:value-of select="."/> + </xsl:attribute> + </xsl:for-each> + <xsl:apply-templates mode="unlink_clone" select="$target"> + <xsl:with-param name="seed" select="$seeded_id"/> + </xsl:apply-templates> + </xsl:otherwise> + </xsl:choose> + </g> + </xsl:template> + <xsl:template xmlns="http://www.w3.org/2000/svg" mode="unlink_clone" match="@id"> + <xsl:param name="seed"/> + <xsl:attribute name="id"> + <xsl:value-of select="$seed"/> + <xsl:text>_</xsl:text> + <xsl:value-of select="."/> + </xsl:attribute> + <xsl:attribute name="original"> + <xsl:value-of select="."/> + </xsl:attribute> + </xsl:template> + <xsl:template xmlns="http://www.w3.org/2000/svg" mode="unlink_clone" match="@*"> + <xsl:copy/> + </xsl:template> + <xsl:template xmlns="http://www.w3.org/2000/svg" mode="unlink_clone" match="svg:use"> + <xsl:param name="seed"/> + <xsl:variable name="targetid" select="substring-after(@xlink:href,'#')"/> + <xsl:choose> + <xsl:when test="func:is_unlinkable($targetid, @id)"> + <xsl:call-template name="unlink_clone"> + <xsl:with-param name="targetid" select="$targetid"/> + <xsl:with-param name="seed" select="$seed"/> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <xsl:copy> + <xsl:apply-templates mode="unlink_clone" select="@*"> + <xsl:with-param name="seed" select="$seed"/> + </xsl:apply-templates> + </xsl:copy> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + <xsl:template xmlns="http://www.w3.org/2000/svg" mode="unlink_clone" match="svg:*"> + <xsl:param name="seed"/> + <xsl:choose> + <xsl:when test="@id = $hmi_elements/@id"> + <use> + <xsl:attribute name="xlink:href"> + <xsl:value-of select="concat('#',@id)"/> + </xsl:attribute> + </use> + </xsl:when> + <xsl:otherwise> + <xsl:copy> + <xsl:apply-templates mode="unlink_clone" select="@* | node()"> + <xsl:with-param name="seed" select="$seed"/> + </xsl:apply-templates> + </xsl:copy> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + <xsl:variable name="result_svg"> + <xsl:apply-templates mode="inline_svg" select="/"/> + </xsl:variable> + <xsl:variable name="result_svg_ns" select="exsl:node-set($result_svg)"/> + <preamble:inline-svg/> + <xsl:template match="preamble:inline-svg"> + <xsl:text> +</xsl:text> + <xsl:text>/* </xsl:text> + <xsl:value-of select="local-name()"/> + <xsl:text> */ +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>let id = document.getElementById.bind(document); +</xsl:text> + <xsl:text>var svg_root = id("</xsl:text> + <xsl:value-of select="$svg/@id"/> + <xsl:text>"); +</xsl:text> + <xsl:text> +</xsl:text> + </xsl:template> + <debug:clone-unlinking/> + <xsl:template match="debug:clone-unlinking"> + <xsl:text> +</xsl:text> + <xsl:text>/* </xsl:text> + <xsl:value-of select="local-name()"/> + <xsl:text> */ +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>Unlinked : +</xsl:text> + <xsl:for-each select="$to_unlink"> + <xsl:value-of select="@id"/> + <xsl:text> +</xsl:text> + </xsl:for-each> + <xsl:text>Not to unlink : +</xsl:text> + <xsl:for-each select="$targets_not_to_unlink"> + <xsl:value-of select="@id"/> + <xsl:text> +</xsl:text> + </xsl:for-each> + <xsl:text> +</xsl:text> + </xsl:template> + <xsl:template mode="extract_i18n" match="svg:tspan"> + <xsl:if test="string-length(.) > 0"> + <line> + <xsl:value-of select="."/> + </line> + </xsl:if> + </xsl:template> + <xsl:template mode="extract_i18n" match="svg:text"> + <msg> + <xsl:attribute name="id"> + <xsl:value-of select="@id"/> + </xsl:attribute> + <xsl:attribute name="label"> + <xsl:value-of select="substring(@inkscape:label,2)"/> + </xsl:attribute> + <xsl:apply-templates mode="extract_i18n" select="svg:*"/> + </msg> + </xsl:template> + <xsl:variable name="translatable_texts" select="//svg:text[starts-with(@inkscape:label, '_')]"/> + <xsl:variable name="translatable_strings"> + <xsl:apply-templates mode="extract_i18n" select="$translatable_texts"/> + </xsl:variable> + <preamble:i18n/> + <xsl:template match="preamble:i18n"> + <xsl:text> +</xsl:text> + <xsl:text>/* </xsl:text> + <xsl:value-of select="local-name()"/> + <xsl:text> */ +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:variable name="translations" select="ns:GetTranslations($translatable_strings)"/> + <xsl:text>var langs = [ ["Default", "C"],</xsl:text> + <xsl:for-each select="$translations/langs/lang"> + <xsl:text>["</xsl:text> + <xsl:value-of select="."/> + <xsl:text>","</xsl:text> + <xsl:value-of select="@code"/> + <xsl:text>"]</xsl:text> + <xsl:if test="position()!=last()"> + <xsl:text>,</xsl:text> + </xsl:if> + </xsl:for-each> + <xsl:text>]; +</xsl:text> + <xsl:text>var translations = [ +</xsl:text> + <xsl:for-each select="$translatable_texts"> + <xsl:variable name="n" select="position()"/> + <xsl:variable name="current_id" select="@id"/> + <xsl:variable name="text_unlinked_uses" select="$result_svg_ns//svg:text[@original = $current_id]/@id"/> + <xsl:text> [[</xsl:text> + <xsl:for-each select="@id | $text_unlinked_uses"> + <xsl:text>id("</xsl:text> + <xsl:value-of select="."/> + <xsl:text>")</xsl:text> + <xsl:if test="position()!=last()"> + <xsl:text>,</xsl:text> + </xsl:if> + </xsl:for-each> + <xsl:text>],[</xsl:text> + <xsl:for-each select="$translations/messages/msgid[$n]/msg"> + <xsl:text>"</xsl:text> + <xsl:for-each select="line"> + <xsl:value-of select="."/> + <xsl:if test="position()!=last()"> + <xsl:text>\n</xsl:text> + </xsl:if> + </xsl:for-each> + <xsl:text>"</xsl:text> + <xsl:if test="position()!=last()"> + <xsl:text>,</xsl:text> + </xsl:if> + </xsl:for-each> + <xsl:text>]]</xsl:text> + <xsl:if test="position()!=last()"> + <xsl:text>,</xsl:text> + </xsl:if> + <xsl:text> +</xsl:text> + </xsl:for-each> + <xsl:text>] +</xsl:text> + <xsl:text> +</xsl:text> + </xsl:template> + <xsl:template mode="hmi_widgets" match="svg:*"> + <xsl:variable name="widget" select="func:widget(@id)"/> + <xsl:variable name="eltid" select="@id"/> + <xsl:variable name="args"> + <xsl:for-each select="$widget/arg"> + <xsl:text>"</xsl:text> + <xsl:value-of select="func:escape_quotes(@value)"/> + <xsl:text>"</xsl:text> + <xsl:if test="position()!=last()"> + <xsl:text>,</xsl:text> + </xsl:if> + </xsl:for-each> + </xsl:variable> + <xsl:variable name="indexes"> + <xsl:for-each select="$widget/path"> + <xsl:choose> + <xsl:when test="not(@index)"> + <xsl:choose> + <xsl:when test="not(@type)"> + <xsl:message terminate="no"> + <xsl:text>Widget </xsl:text> + <xsl:value-of select="$widget/@type"/> + <xsl:text> id="</xsl:text> + <xsl:value-of select="$eltid"/> + <xsl:text>" : No match for path "</xsl:text> + <xsl:value-of select="@value"/> + <xsl:text>" in HMI tree</xsl:text> + </xsl:message> + <xsl:text>undefined</xsl:text> + </xsl:when> + <xsl:when test="@type = 'PAGE_LOCAL'"> + <xsl:text>"</xsl:text> + <xsl:value-of select="@value"/> + <xsl:text>"</xsl:text> + </xsl:when> + <xsl:when test="@type = 'HMI_LOCAL'"> + <xsl:text>hmi_local_index("</xsl:text> + <xsl:value-of select="@value"/> + <xsl:text>")</xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:message terminate="yes"> + <xsl:text>Internal error while processing widget's non indexed HMI tree path : unknown type</xsl:text> + </xsl:message> + </xsl:otherwise> + </xsl:choose> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="@index"/> + </xsl:otherwise> + </xsl:choose> + <xsl:if test="position()!=last()"> + <xsl:text>,</xsl:text> + </xsl:if> + </xsl:for-each> + </xsl:variable> + <xsl:variable name="minmaxes"> + <xsl:for-each select="$widget/path"> + <xsl:choose> + <xsl:when test="@min and @max"> + <xsl:text>[</xsl:text> + <xsl:value-of select="@min"/> + <xsl:text>,</xsl:text> + <xsl:value-of select="@max"/> + <xsl:text>]</xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:text>undefined</xsl:text> + </xsl:otherwise> + </xsl:choose> + <xsl:if test="position()!=last()"> + <xsl:text>,</xsl:text> + </xsl:if> + </xsl:for-each> + </xsl:variable> + <xsl:text> "</xsl:text> + <xsl:value-of select="@id"/> + <xsl:text>": new </xsl:text> + <xsl:value-of select="$widget/@type"/> + <xsl:text>Widget ("</xsl:text> + <xsl:value-of select="@id"/> + <xsl:text>",[</xsl:text> + <xsl:value-of select="$args"/> + <xsl:text>],[</xsl:text> + <xsl:value-of select="$indexes"/> + <xsl:text>],[</xsl:text> + <xsl:value-of select="$minmaxes"/> + <xsl:text>],{ +</xsl:text> + <xsl:apply-templates mode="widget_defs" select="$widget"> + <xsl:with-param name="hmi_element" select="."/> + </xsl:apply-templates> + <xsl:text> })</xsl:text> + <xsl:if test="position()!=last()"> + <xsl:text>,</xsl:text> + </xsl:if> + <xsl:text> +</xsl:text> + </xsl:template> + <preamble:local-variable-indexes/> + <xsl:template match="preamble:local-variable-indexes"> + <xsl:text> +</xsl:text> + <xsl:text>/* </xsl:text> + <xsl:value-of select="local-name()"/> + <xsl:text> */ +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>let hmi_locals = {}; +</xsl:text> + <xsl:text>var last_remote_index = hmitree_types.length - 1; +</xsl:text> + <xsl:text>var next_available_index = hmitree_types.length; +</xsl:text> + <xsl:text>let cookies = new Map(document.cookie.split("; ").map(s=>s.split("="))); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>const local_defaults = { +</xsl:text> + <xsl:for-each select="$parsed_widgets/widget[starts-with(@type,'VarInit')]"> + <xsl:if test="count(path) != 1"> + <xsl:message terminate="yes"> + <xsl:text>VarInit </xsl:text> + <xsl:value-of select="@id"/> + <xsl:text> must have only one variable given.</xsl:text> + </xsl:message> + </xsl:if> + <xsl:if test="path/@type != 'PAGE_LOCAL' and path/@type != 'HMI_LOCAL'"> + <xsl:message terminate="yes"> + <xsl:text>VarInit </xsl:text> + <xsl:value-of select="@id"/> + <xsl:text> only applies to HMI variable.</xsl:text> + </xsl:message> + </xsl:if> + <xsl:text> "</xsl:text> + <xsl:value-of select="path/@value"/> + <xsl:text>":</xsl:text> + <xsl:choose> + <xsl:when test="@type = 'VarInitPersistent'"> + <xsl:text>cookies.has("</xsl:text> + <xsl:value-of select="path/@value"/> + <xsl:text>")?cookies.get("</xsl:text> + <xsl:value-of select="path/@value"/> + <xsl:text>"):</xsl:text> + <xsl:value-of select="arg[1]/@value"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="arg[1]/@value"/> + </xsl:otherwise> + </xsl:choose> + <xsl:text> +</xsl:text> + <xsl:if test="position()!=last()"> + <xsl:text>,</xsl:text> + </xsl:if> + </xsl:for-each> + <xsl:text>}; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>const persistent_locals = new Set([ +</xsl:text> + <xsl:for-each select="$parsed_widgets/widget[@type='VarInitPersistent']"> + <xsl:text> "</xsl:text> + <xsl:value-of select="path/@value"/> + <xsl:text>"</xsl:text> + <xsl:if test="position()!=last()"> + <xsl:text>,</xsl:text> + </xsl:if> + <xsl:text> +</xsl:text> + </xsl:for-each> + <xsl:text>]); +</xsl:text> + <xsl:text>var persistent_indexes = new Map(); +</xsl:text> + <xsl:text>var cache = hmitree_types.map(_ignored => undefined); +</xsl:text> + <xsl:text>var updates = new Map(); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>function page_local_index(varname, pagename){ +</xsl:text> + <xsl:text> let pagevars = hmi_locals[pagename]; +</xsl:text> + <xsl:text> let new_index; +</xsl:text> + <xsl:text> if(pagevars == undefined){ +</xsl:text> + <xsl:text> new_index = next_available_index++; +</xsl:text> + <xsl:text> hmi_locals[pagename] = {[varname]:new_index} +</xsl:text> + <xsl:text> } else { +</xsl:text> + <xsl:text> let result = pagevars[varname]; +</xsl:text> + <xsl:text> if(result != undefined) { +</xsl:text> + <xsl:text> return result; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> new_index = next_available_index++; +</xsl:text> + <xsl:text> pagevars[varname] = new_index; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> let defaultval = local_defaults[varname]; +</xsl:text> + <xsl:text> if(defaultval != undefined) { +</xsl:text> + <xsl:text> cache[new_index] = defaultval; +</xsl:text> + <xsl:text> updates.set(new_index, defaultval); +</xsl:text> + <xsl:text> if(persistent_locals.has(varname)) +</xsl:text> + <xsl:text> persistent_indexes.set(new_index, varname); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> return new_index; +</xsl:text> + <xsl:text>} +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>function hmi_local_index(varname){ +</xsl:text> + <xsl:text> return page_local_index(varname, "HMI_LOCAL"); +</xsl:text> + <xsl:text>} +</xsl:text> + <xsl:text> +</xsl:text> + </xsl:template> + <preamble:widget-base-class/> + <xsl:template match="preamble:widget-base-class"> + <xsl:text> +</xsl:text> + <xsl:text>/* </xsl:text> + <xsl:value-of select="local-name()"/> + <xsl:text> */ +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>var pending_widget_animates = []; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>class Widget { +</xsl:text> + <xsl:text> offset = 0; +</xsl:text> + <xsl:text> frequency = 10; /* FIXME arbitrary default max freq. Obtain from config ? */ +</xsl:text> + <xsl:text> unsubscribable = false; +</xsl:text> + <xsl:text> pending_animate = false; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> constructor(elt_id,args,indexes,minmaxes,members){ +</xsl:text> + <xsl:text> this.element_id = elt_id; +</xsl:text> + <xsl:text> this.element = id(elt_id); +</xsl:text> + <xsl:text> this.args = args; +</xsl:text> + <xsl:text> this.indexes = indexes; +</xsl:text> + <xsl:text> this.minmaxes = minmaxes; +</xsl:text> + <xsl:text> Object.keys(members).forEach(prop => this[prop]=members[prop]); +</xsl:text> + <xsl:text> this.lastapply = indexes.map(() => undefined); +</xsl:text> + <xsl:text> this.inhibit = indexes.map(() => undefined); +</xsl:text> + <xsl:text> this.pending = indexes.map(() => undefined); +</xsl:text> + <xsl:text> this.bound_unhinibit = this.unhinibit.bind(this); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> unsub(){ +</xsl:text> + <xsl:text> /* remove subsribers */ +</xsl:text> + <xsl:text> if(!this.unsubscribable) +</xsl:text> + <xsl:text> for(let i = 0; i < this.indexes.length; i++) { +</xsl:text> + <xsl:text> /* flush updates pending because of inhibition */ +</xsl:text> + <xsl:text> let inhibition = this.inhibit[i]; +</xsl:text> + <xsl:text> if(inhibition != undefined){ +</xsl:text> + <xsl:text> clearTimeout(inhibition); +</xsl:text> + <xsl:text> this.lastapply[i] = undefined; +</xsl:text> + <xsl:text> this.unhinibit(i); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> let index = this.indexes[i]; +</xsl:text> + <xsl:text> if(this.relativeness[i]) +</xsl:text> + <xsl:text> index += this.offset; +</xsl:text> + <xsl:text> subscribers(index).delete(this); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> this.offset = 0; +</xsl:text> + <xsl:text> this.relativeness = undefined; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> sub(new_offset=0, relativeness, container_id){ +</xsl:text> + <xsl:text> this.offset = new_offset; +</xsl:text> + <xsl:text> this.relativeness = relativeness; +</xsl:text> + <xsl:text> this.container_id = container_id ; +</xsl:text> + <xsl:text> /* add this's subsribers */ +</xsl:text> + <xsl:text> if(!this.unsubscribable) +</xsl:text> + <xsl:text> for(let i = 0; i < this.indexes.length; i++) { +</xsl:text> + <xsl:text> let index = this.get_variable_index(i); +</xsl:text> + <xsl:text> if(index == undefined) continue; +</xsl:text> + <xsl:text> subscribers(index).add(this); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> need_cache_apply.push(this); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> apply_cache() { +</xsl:text> + <xsl:text> if(!this.unsubscribable) for(let index in this.indexes){ +</xsl:text> + <xsl:text> /* dispatch current cache in newly opened page widgets */ +</xsl:text> + <xsl:text> let realindex = this.get_variable_index(index); +</xsl:text> + <xsl:text> if(realindex == undefined) continue; +</xsl:text> + <xsl:text> let cached_val = cache[realindex]; +</xsl:text> + <xsl:text> if(cached_val != undefined) +</xsl:text> + <xsl:text> this._dispatch(cached_val, cached_val, index); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> get_variable_index(varnum) { +</xsl:text> + <xsl:text> let index = this.indexes[varnum]; +</xsl:text> + <xsl:text> if(typeof(index) == "string"){ +</xsl:text> + <xsl:text> index = page_local_index(index, this.container_id); +</xsl:text> + <xsl:text> } else { +</xsl:text> + <xsl:text> if(this.relativeness[varnum]){ +</xsl:text> + <xsl:text> index += this.offset; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> return index; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> overshot(new_val, max) { +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> undershot(new_val, min) { +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> clip_min_max(index, new_val) { +</xsl:text> + <xsl:text> let minmax = this.minmaxes[index]; +</xsl:text> + <xsl:text> if(minmax !== undefined && typeof new_val == "number") { +</xsl:text> + <xsl:text> let [min,max] = minmax; +</xsl:text> + <xsl:text> if(new_val < min){ +</xsl:text> + <xsl:text> this.undershot(new_val, min); +</xsl:text> + <xsl:text> return min; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> if(new_val > max){ +</xsl:text> + <xsl:text> this.overshot(new_val, max); +</xsl:text> + <xsl:text> return max; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> return new_val; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> change_hmi_value(index, opstr) { +</xsl:text> + <xsl:text> let realindex = this.get_variable_index(index); +</xsl:text> + <xsl:text> if(realindex == undefined) return undefined; +</xsl:text> + <xsl:text> let old_val = cache[realindex]; +</xsl:text> + <xsl:text> let new_val = eval_operation_string(old_val, opstr); +</xsl:text> + <xsl:text> new_val = this.clip_min_max(index, new_val); +</xsl:text> + <xsl:text> return apply_hmi_value(realindex, new_val); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> _apply_hmi_value(index, new_val) { +</xsl:text> + <xsl:text> let realindex = this.get_variable_index(index); +</xsl:text> + <xsl:text> if(realindex == undefined) return undefined; +</xsl:text> + <xsl:text> new_val = this.clip_min_max(index, new_val); +</xsl:text> + <xsl:text> return apply_hmi_value(realindex, new_val); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> unhinibit(index){ +</xsl:text> + <xsl:text> this.inhibit[index] = undefined; +</xsl:text> + <xsl:text> let new_val = this.pending[index]; +</xsl:text> + <xsl:text> this.pending[index] = undefined; +</xsl:text> + <xsl:text> return this.apply_hmi_value(index, new_val); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> apply_hmi_value(index, new_val) { +</xsl:text> + <xsl:text> if(this.inhibit[index] == undefined){ +</xsl:text> + <xsl:text> let now = Date.now(); +</xsl:text> + <xsl:text> let min_interval = 1000/this.frequency; +</xsl:text> + <xsl:text> let lastapply = this.lastapply[index]; +</xsl:text> + <xsl:text> if(lastapply == undefined || now > lastapply + min_interval){ +</xsl:text> + <xsl:text> this.lastapply[index] = now; +</xsl:text> + <xsl:text> return this._apply_hmi_value(index, new_val); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> else { +</xsl:text> + <xsl:text> let elapsed = now - lastapply; +</xsl:text> + <xsl:text> this.pending[index] = new_val; +</xsl:text> + <xsl:text> this.inhibit[index] = setTimeout(this.bound_unhinibit, min_interval - elapsed, index); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> else { +</xsl:text> + <xsl:text> this.pending[index] = new_val; +</xsl:text> + <xsl:text> return new_val; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> new_hmi_value(index, value, oldval) { +</xsl:text> + <xsl:text> // TODO avoid searching, store index at sub() +</xsl:text> + <xsl:text> for(let i = 0; i < this.indexes.length; i++) { +</xsl:text> + <xsl:text> let refindex = this.get_variable_index(i); +</xsl:text> + <xsl:text> if(refindex == undefined) continue; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> if(index == refindex) { +</xsl:text> + <xsl:text> this._dispatch(value, oldval, i); +</xsl:text> + <xsl:text> break; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> _dispatch(value, oldval, varnum) { +</xsl:text> + <xsl:text> let dispatch = this.dispatch; +</xsl:text> + <xsl:text> if(dispatch != undefined){ +</xsl:text> + <xsl:text> try { +</xsl:text> + <xsl:text> dispatch.call(this, value, oldval, varnum); +</xsl:text> + <xsl:text> } catch(err) { +</xsl:text> + <xsl:text> console.log(err); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> _animate(){ +</xsl:text> + <xsl:text> this.animate(); +</xsl:text> + <xsl:text> this.pending_animate = false; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> request_animate(){ +</xsl:text> + <xsl:text> if(!this.pending_animate){ +</xsl:text> + <xsl:text> pending_widget_animates.push(this); +</xsl:text> + <xsl:text> this.pending_animate = true; +</xsl:text> + <xsl:text> requestHMIAnimation(); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> activate_activable(eltsub) { +</xsl:text> + <xsl:text> eltsub.inactive.style.display = "none"; +</xsl:text> + <xsl:text> eltsub.active.style.display = ""; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> inactivate_activable(eltsub) { +</xsl:text> + <xsl:text> eltsub.active.style.display = "none"; +</xsl:text> + <xsl:text> eltsub.inactive.style.display = ""; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text>} +</xsl:text> + <xsl:text> +</xsl:text> + </xsl:template> + <xsl:variable name="excluded_types" select="str:split('Page VarInit VarInitPersistent')"/> + <xsl:key name="TypesKey" match="widget" use="@type"/> + <declarations:hmi-classes/> + <xsl:template match="declarations:hmi-classes"> + <xsl:text> +</xsl:text> + <xsl:text>/* </xsl:text> + <xsl:value-of select="local-name()"/> + <xsl:text> */ +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:variable name="used_widget_types" select="$parsed_widgets/widget[ generate-id() = generate-id(key('TypesKey', @type)) and not(@type = $excluded_types)]"/> + <xsl:apply-templates mode="widget_class" select="$used_widget_types"/> + <xsl:text> +</xsl:text> + </xsl:template> + <xsl:template mode="widget_class" match="widget"> + <xsl:text>class </xsl:text> + <xsl:value-of select="@type"/> + <xsl:text>Widget extends Widget{ +</xsl:text> + <xsl:text> /* empty class, as </xsl:text> + <xsl:value-of select="@type"/> + <xsl:text> widget didn't provide any */ +</xsl:text> + <xsl:text>} +</xsl:text> + </xsl:template> + <xsl:variable name="included_ids" select="$parsed_widgets/widget[not(@type = $excluded_types) and not(@id = $discardable_elements/@id)]/@id"/> + <xsl:variable name="hmi_widgets" select="$hmi_elements[@id = $included_ids]"/> + <xsl:variable name="result_widgets" select="$result_svg_ns//*[@id = $hmi_widgets/@id]"/> + <declarations:hmi-elements/> + <xsl:template match="declarations:hmi-elements"> + <xsl:text> +</xsl:text> + <xsl:text>/* </xsl:text> + <xsl:value-of select="local-name()"/> + <xsl:text> */ +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>var hmi_widgets = { +</xsl:text> + <xsl:apply-templates mode="hmi_widgets" select="$hmi_widgets"/> + <xsl:text>} +</xsl:text> + <xsl:text> +</xsl:text> + </xsl:template> + <xsl:template name="defs_by_labels"> + <xsl:param name="labels" select="''"/> + <xsl:param name="mandatory" select="'yes'"/> + <xsl:param name="subelements" select="/.."/> + <xsl:param name="hmi_element"/> + <xsl:variable name="widget_type" select="@type"/> + <xsl:for-each select="str:split($labels)"> + <xsl:variable name="name" select="."/> + <xsl:variable name="elt" select="$result_widgets[@id = $hmi_element/@id]//*[@inkscape:label=$name][1]"/> + <xsl:choose> + <xsl:when test="not($elt/@id)"> + <xsl:if test="$mandatory='yes'"> + <xsl:message terminate="yes"> + <xsl:value-of select="$widget_type"/> + <xsl:text> widget must have a </xsl:text> + <xsl:value-of select="$name"/> + <xsl:text> element</xsl:text> + </xsl:message> + </xsl:if> + </xsl:when> + <xsl:otherwise> + <xsl:text> </xsl:text> + <xsl:value-of select="$name"/> + <xsl:text>_elt: id("</xsl:text> + <xsl:value-of select="$elt/@id"/> + <xsl:text>"), +</xsl:text> + <xsl:if test="$subelements"> + <xsl:text> </xsl:text> + <xsl:value-of select="$name"/> + <xsl:text>_sub: { +</xsl:text> + <xsl:for-each select="str:split($subelements)"> + <xsl:variable name="subname" select="."/> + <xsl:variable name="subelt" select="$elt/*[@inkscape:label=$subname][1]"/> + <xsl:choose> + <xsl:when test="not($subelt/@id)"> + <xsl:if test="$mandatory='yes'"> + <xsl:message terminate="yes"> + <xsl:value-of select="$widget_type"/> + <xsl:text> widget must have a </xsl:text> + <xsl:value-of select="$name"/> + <xsl:text>/</xsl:text> + <xsl:value-of select="$subname"/> + <xsl:text> element</xsl:text> + </xsl:message> + </xsl:if> + <xsl:text> /* missing </xsl:text> + <xsl:value-of select="$name"/> + <xsl:text>/</xsl:text> + <xsl:value-of select="$subname"/> + <xsl:text> element */ +</xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:text> "</xsl:text> + <xsl:value-of select="$subname"/> + <xsl:text>": id("</xsl:text> + <xsl:value-of select="$subelt/@id"/> + <xsl:text>")</xsl:text> + <xsl:if test="position()!=last()"> + <xsl:text>,</xsl:text> + </xsl:if> + <xsl:text> +</xsl:text> + </xsl:otherwise> + </xsl:choose> + </xsl:for-each> + <xsl:text> }, +</xsl:text> + </xsl:if> + </xsl:otherwise> + </xsl:choose> + </xsl:for-each> + </xsl:template> + <func:function name="func:escape_quotes"> + <xsl:param name="txt"/> + <xsl:choose> + <xsl:when test="contains($txt,'"')"> + <func:result select="concat(substring-before($txt,'"'),'\"',func:escape_quotes(substring-after($txt,'"')))"/> + </xsl:when> + <xsl:otherwise> + <func:result select="$txt"/> + </xsl:otherwise> + </xsl:choose> + </func:function> + <xsl:template mode="widget_class" match="widget[@type='Animate']"> + <xsl:text>class AnimateWidget extends Widget{ +</xsl:text> + <xsl:text> frequency = 5; +</xsl:text> + <xsl:text> speed = 0; +</xsl:text> + <xsl:text> start = false; +</xsl:text> + <xsl:text> widget_center = undefined; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> dispatch(value) { +</xsl:text> + <xsl:text> this.speed = value / 5; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> //reconfigure animation +</xsl:text> + <xsl:text> this.request_animate(); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> animate(){ +</xsl:text> + <xsl:text> // change animation properties +</xsl:text> + <xsl:text> for(let child of this.element.children){ +</xsl:text> + <xsl:text> if(child.nodeName.startsWith("animate")){ +</xsl:text> + <xsl:text> if(this.speed != 0 && !this.start){ +</xsl:text> + <xsl:text> this.start = true; +</xsl:text> + <xsl:text> this.element.beginElement(); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> if(this.speed > 0){ +</xsl:text> + <xsl:text> child.setAttribute("dur", this.speed+"s"); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> else if(this.speed < 0){ +</xsl:text> + <xsl:text> child.setAttribute("dur", (-1)*this.speed+"s"); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> else{ +</xsl:text> + <xsl:text> this.start = false; +</xsl:text> + <xsl:text> this.element.endElement(); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> init() { +</xsl:text> + <xsl:text> let widget_pos = this.element.getBBox(); +</xsl:text> + <xsl:text> this.widget_center = [(widget_pos.x+widget_pos.width/2), (widget_pos.y+widget_pos.height/2)]; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text>} +</xsl:text> + </xsl:template> + <xsl:template mode="widget_defs" match="widget[@type='Animate']"> + <xsl:param name="hmi_element"/> + <xsl:text> +</xsl:text> + </xsl:template> + <xsl:template mode="widget_class" match="widget[@type='AnimateRotation']"> + <xsl:text>class AnimateRotationWidget extends Widget{ +</xsl:text> + <xsl:text> frequency = 5; +</xsl:text> + <xsl:text> speed = 0; +</xsl:text> + <xsl:text> widget_center = undefined; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> dispatch(value) { +</xsl:text> + <xsl:text> this.speed = value / 5; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> //reconfigure animation +</xsl:text> + <xsl:text> this.request_animate(); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> animate(){ +</xsl:text> + <xsl:text> // change animation properties +</xsl:text> + <xsl:text> for(let child of this.element.children){ +</xsl:text> + <xsl:text> if(child.nodeName == "animateTransform"){ +</xsl:text> + <xsl:text> if(this.speed > 0){ +</xsl:text> + <xsl:text> child.setAttribute("dur", this.speed+"s"); +</xsl:text> + <xsl:text> child.setAttribute("from", "0 "+this.widget_center[0]+" "+this.widget_center[1]); +</xsl:text> + <xsl:text> child.setAttribute("to", "360 "+this.widget_center[0]+" "+this.widget_center[1]); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> else if(this.speed < 0){ +</xsl:text> + <xsl:text> child.setAttribute("dur", (-1)*this.speed+"s"); +</xsl:text> + <xsl:text> child.setAttribute("from", "360 "+this.widget_center[0]+" "+this.widget_center[1]); +</xsl:text> + <xsl:text> child.setAttribute("to", "0 "+this.widget_center[0]+" "+this.widget_center[1]); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> else{ +</xsl:text> + <xsl:text> child.setAttribute("from", "0 "+this.widget_center[0]+" "+this.widget_center[1]); +</xsl:text> + <xsl:text> child.setAttribute("to", "0 "+this.widget_center[0]+" "+this.widget_center[1]); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> init() { +</xsl:text> + <xsl:text> let widget_pos = this.element.getBBox(); +</xsl:text> + <xsl:text> this.widget_center = [(widget_pos.x+widget_pos.width/2), (widget_pos.y+widget_pos.height/2)]; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text>} +</xsl:text> + </xsl:template> + <xsl:template mode="widget_defs" match="widget[@type='AnimateRotation']"> + <xsl:param name="hmi_element"/> + <xsl:text> +</xsl:text> + </xsl:template> + <xsl:template mode="widget_class" match="widget[@type='Back']"> + <xsl:text>class BackWidget extends Widget{ +</xsl:text> + <xsl:text> on_click(evt) { +</xsl:text> + <xsl:text> if(jump_history.length > 1){ +</xsl:text> + <xsl:text> jump_history.pop(); +</xsl:text> + <xsl:text> let [page_name, index] = jump_history.pop(); +</xsl:text> + <xsl:text> switch_page(page_name, index); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> init() { +</xsl:text> + <xsl:text> this.element.setAttribute("onclick", "hmi_widgets['"+this.element_id+"'].on_click(evt)"); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text>} +</xsl:text> + </xsl:template> + <xsl:variable name="_button_fsm"> + <fsm> + <state name="init"> + <on-dispatch value="false"> + <jump state="released"/> + </on-dispatch> + <on-dispatch value="true"> + <jump state="pressed"/> + </on-dispatch> + </state> + <state name="pressing"> + <hmi-value value="true"/> + <on-dispatch value="true"> + <jump state="pressed"/> + </on-dispatch> + <on-mouse position="up"> + <jump state="shortpress"/> + </on-mouse> + </state> + <state name="pressed"> + <show eltname="active"/> + <on-mouse position="up"> + <jump state="releasing"/> + </on-mouse> + <on-dispatch value="false"> + <jump state="released"/> + </on-dispatch> + </state> + <state name="shortpress"> + <on-dispatch value="true"> + <jump state="releasing"/> + </on-dispatch> + <on-mouse position="down"> + <jump state="pressing"/> + </on-mouse> + </state> + <state name="releasing"> + <hmi-value value="false"/> + <on-dispatch value="false"> + <jump state="released"/> + </on-dispatch> + <on-mouse position="down"> + <jump state="shortrelease"/> + </on-mouse> + </state> + <state name="released"> + <show eltname="inactive"/> + <on-mouse position="down"> + <jump state="pressing"/> + </on-mouse> + <on-dispatch value="true"> + <jump state="pressed"/> + </on-dispatch> + </state> + <state name="shortrelease"> + <on-dispatch value="false"> + <jump state="pressing"/> + </on-dispatch> + <on-mouse position="up"> + <jump state="releasing"/> + </on-mouse> + </state> + </fsm> + </xsl:variable> + <xsl:template mode="dispatch_transition" match="fsm"> + <xsl:text> switch (this.state) { +</xsl:text> + <xsl:apply-templates mode="dispatch_transition" select="state"/> + <xsl:text> } +</xsl:text> + </xsl:template> + <xsl:template mode="dispatch_transition" match="state"> + <xsl:text> case "</xsl:text> + <xsl:value-of select="@name"/> + <xsl:text>": +</xsl:text> + <xsl:apply-templates select="on-dispatch"/> + <xsl:text> break; +</xsl:text> + </xsl:template> + <xsl:template match="on-dispatch"> + <xsl:text> if(value == </xsl:text> + <xsl:value-of select="@value"/> + <xsl:text>) { +</xsl:text> + <xsl:apply-templates mode="transition" select="jump"/> + <xsl:text> } +</xsl:text> + </xsl:template> + <xsl:template mode="mouse_transition" match="fsm"> + <xsl:param name="position"/> + <xsl:text> switch (this.state) { +</xsl:text> + <xsl:apply-templates mode="mouse_transition" select="state"> + <xsl:with-param name="position" select="$position"/> + </xsl:apply-templates> + <xsl:text> } +</xsl:text> + </xsl:template> + <xsl:template mode="mouse_transition" match="state"> + <xsl:param name="position"/> + <xsl:text> case "</xsl:text> + <xsl:value-of select="@name"/> + <xsl:text>": +</xsl:text> + <xsl:apply-templates select="on-mouse[@position = $position]"/> + <xsl:text> break; +</xsl:text> + </xsl:template> + <xsl:template match="on-mouse"> + <xsl:apply-templates mode="transition" select="jump"/> + </xsl:template> + <xsl:template mode="transition" match="jump"> + <xsl:text> this.state = "</xsl:text> + <xsl:value-of select="@state"/> + <xsl:text>"; +</xsl:text> + <xsl:text> this.</xsl:text> + <xsl:value-of select="@state"/> + <xsl:text>_action(); +</xsl:text> + </xsl:template> + <xsl:template mode="actions" match="fsm"> + <xsl:apply-templates mode="actions" select="state"/> + </xsl:template> + <xsl:template mode="actions" match="state"> + <xsl:text> </xsl:text> + <xsl:value-of select="@name"/> + <xsl:text>_action(){ +</xsl:text> + <xsl:apply-templates mode="actions" select="*"/> + <xsl:text> } +</xsl:text> + </xsl:template> + <xsl:template mode="actions" match="show"> + <xsl:text> this.display = "</xsl:text> + <xsl:value-of select="@eltname"/> + <xsl:text>"; +</xsl:text> + <xsl:text> this.request_animate(); +</xsl:text> + </xsl:template> + <xsl:template mode="actions" match="hmi-value"> + <xsl:text> this.apply_hmi_value(0, </xsl:text> + <xsl:value-of select="@value"/> + <xsl:text>); +</xsl:text> + </xsl:template> + <xsl:template mode="widget_class" match="widget[@type='Button']"> + <xsl:variable name="fsm" select="exsl:node-set($_button_fsm)"/> + <xsl:text>class ButtonWidget extends Widget{ +</xsl:text> + <xsl:text> frequency = 5; +</xsl:text> + <xsl:text> display = "inactive"; +</xsl:text> + <xsl:text> state = "init"; +</xsl:text> + <xsl:text> dispatch(value) { +</xsl:text> + <xsl:apply-templates mode="dispatch_transition" select="$fsm"/> + <xsl:text> } +</xsl:text> + <xsl:text> onmouseup(evt) { +</xsl:text> + <xsl:text> svg_root.removeEventListener("pointerup", this.bound_onmouseup, true); +</xsl:text> + <xsl:apply-templates mode="mouse_transition" select="$fsm"> + <xsl:with-param name="position" select="'up'"/> + </xsl:apply-templates> + <xsl:text> } +</xsl:text> + <xsl:text> onmousedown(evt) { +</xsl:text> + <xsl:text> svg_root.addEventListener("pointerup", this.bound_onmouseup, true); +</xsl:text> + <xsl:apply-templates mode="mouse_transition" select="$fsm"> + <xsl:with-param name="position" select="'down'"/> + </xsl:apply-templates> + <xsl:text> } +</xsl:text> + <xsl:apply-templates mode="actions" select="$fsm"/> + <xsl:text> animate(){ +</xsl:text> + <xsl:text> if (this.active_elt && this.inactive_elt) { +</xsl:text> + <xsl:for-each select="str:split('active inactive')"> + <xsl:text> if(this.display == "</xsl:text> + <xsl:value-of select="."/> + <xsl:text>") +</xsl:text> + <xsl:text> this.</xsl:text> + <xsl:value-of select="."/> + <xsl:text>_elt.style.display = ""; +</xsl:text> + <xsl:text> else +</xsl:text> + <xsl:text> this.</xsl:text> + <xsl:value-of select="."/> + <xsl:text>_elt.style.display = "none"; +</xsl:text> + </xsl:for-each> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> init() { +</xsl:text> + <xsl:text> this.bound_onmouseup = this.onmouseup.bind(this); +</xsl:text> + <xsl:text> this.element.addEventListener("pointerdown", this.onmousedown.bind(this)); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text>} +</xsl:text> + </xsl:template> + <xsl:template mode="widget_defs" match="widget[@type='Button']"> + <xsl:param name="hmi_element"/> + <xsl:call-template name="defs_by_labels"> + <xsl:with-param name="hmi_element" select="$hmi_element"/> + <xsl:with-param name="labels"> + <xsl:text>active inactive</xsl:text> + </xsl:with-param> + <xsl:with-param name="mandatory" select="'no'"/> + </xsl:call-template> + </xsl:template> + <xsl:template mode="widget_class" match="widget[@type='CircularBar']"> + <xsl:text>class CircularBarWidget extends Widget{ +</xsl:text> + <xsl:text> frequency = 10; +</xsl:text> + <xsl:text> range = undefined; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> dispatch(value) { +</xsl:text> + <xsl:text> this.display_val = value; +</xsl:text> + <xsl:text> this.request_animate(); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> animate(){ +</xsl:text> + <xsl:text> if(this.value_elt) +</xsl:text> + <xsl:text> this.value_elt.textContent = String(this.display_val); +</xsl:text> + <xsl:text> let [min,max,start,end] = this.range; +</xsl:text> + <xsl:text> let [cx,cy] = this.center; +</xsl:text> + <xsl:text> let [rx,ry] = this.proportions; +</xsl:text> + <xsl:text> let tip = start + (end-start)*Number(this.display_val)/(max-min); +</xsl:text> + <xsl:text> let size = 0; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> if (tip-start > Math.PI) +</xsl:text> + <xsl:text> size = 1; +</xsl:text> + <xsl:text> else +</xsl:text> + <xsl:text> size = 0; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> this.path_elt.setAttribute('d', "M "+(cx+rx*Math.cos(start))+","+(cy+ry*Math.sin(start))+ +</xsl:text> + <xsl:text> " A "+rx+","+ry+ +</xsl:text> + <xsl:text> " 0 "+size+ +</xsl:text> + <xsl:text> " 1 "+(cx+rx*Math.cos(tip))+","+(cy+ry*Math.sin(tip))); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> init() { +</xsl:text> + <xsl:text> let [start, end, cx, cy, rx, ry] = ["start", "end", "cx", "cy", "rx", "ry"]. +</xsl:text> + <xsl:text> map(tag=>Number(this.path_elt.getAttribute('sodipodi:'+tag))) +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> if (ry == 0) +</xsl:text> + <xsl:text> ry = rx; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> if (start > end) +</xsl:text> + <xsl:text> end = end + 2*Math.PI; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> let [min,max] = [[this.min_elt,0],[this.max_elt,100]].map(([elt,def],i)=>elt? +</xsl:text> + <xsl:text> Number(elt.textContent) : +</xsl:text> + <xsl:text> this.args.length >= i+1 ? this.args[i] : def); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> this.range = [min, max, start, end]; +</xsl:text> + <xsl:text> this.center = [cx, cy]; +</xsl:text> + <xsl:text> this.proportions = [rx, ry]; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text>} +</xsl:text> + </xsl:template> + <xsl:template mode="widget_defs" match="widget[@type='CircularBar']"> + <xsl:param name="hmi_element"/> + <xsl:call-template name="defs_by_labels"> + <xsl:with-param name="hmi_element" select="$hmi_element"/> + <xsl:with-param name="labels"> + <xsl:text>path</xsl:text> + </xsl:with-param> + </xsl:call-template> + <xsl:call-template name="defs_by_labels"> + <xsl:with-param name="hmi_element" select="$hmi_element"/> + <xsl:with-param name="labels"> + <xsl:text>value min max</xsl:text> + </xsl:with-param> + <xsl:with-param name="mandatory" select="'no'"/> + </xsl:call-template> + </xsl:template> + <xsl:template mode="widget_class" match="widget[@type='CircularSlider']"> + <xsl:text>class CircularSliderWidget extends Widget{ +</xsl:text> + <xsl:text> frequency = 5; +</xsl:text> + <xsl:text> range = undefined; +</xsl:text> + <xsl:text> circle = undefined; +</xsl:text> + <xsl:text> handle_pos = undefined; +</xsl:text> + <xsl:text> curr_value = 0; +</xsl:text> + <xsl:text> drag = false; +</xsl:text> + <xsl:text> enTimer = false; +</xsl:text> + <xsl:text> last_drag = false; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> dispatch(value) { +</xsl:text> + <xsl:text> let [min,max,start,totallength] = this.range; +</xsl:text> + <xsl:text> //save current value inside widget +</xsl:text> + <xsl:text> this.curr_value = value; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> //check if in range +</xsl:text> + <xsl:text> if (this.curr_value > max){ +</xsl:text> + <xsl:text> this.curr_value = max; +</xsl:text> + <xsl:text> this.apply_hmi_value(0, this.curr_value); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> else if (this.curr_value < min){ +</xsl:text> + <xsl:text> this.curr_value = min; +</xsl:text> + <xsl:text> this.apply_hmi_value(0, this.curr_value); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> if(this.value_elt) +</xsl:text> + <xsl:text> this.value_elt.textContent = String(value); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> //don't update if draging and setpoint ghost doesn't exist +</xsl:text> + <xsl:text> if(!this.drag || (this.setpoint_elt != undefined)){ +</xsl:text> + <xsl:text> this.update_DOM(value, this.handle_elt); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> update_DOM(value, elt){ +</xsl:text> + <xsl:text> let [min,max,totalDistance] = this.range; +</xsl:text> + <xsl:text> let length = Math.max(0,Math.min((totalDistance),(Number(value)-min)/(max-min)*(totalDistance))); +</xsl:text> + <xsl:text> let tip = this.range_elt.getPointAtLength(length); +</xsl:text> + <xsl:text> elt.setAttribute('transform',"translate("+(tip.x-this.handle_pos.x)+","+(tip.y-this.handle_pos.y)+")"); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> // show or hide ghost if exists +</xsl:text> + <xsl:text> if(this.setpoint_elt != undefined){ +</xsl:text> + <xsl:text> if(this.last_drag!= this.drag){ +</xsl:text> + <xsl:text> if(this.drag){ +</xsl:text> + <xsl:text> this.setpoint_elt.setAttribute("style", this.setpoint_style); +</xsl:text> + <xsl:text> }else{ +</xsl:text> + <xsl:text> this.setpoint_elt.setAttribute("style", "display:none"); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> this.last_drag = this.drag; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> on_release(evt) { +</xsl:text> + <xsl:text> //unbind events +</xsl:text> + <xsl:text> window.removeEventListener("touchmove", this.on_bound_drag, true); +</xsl:text> + <xsl:text> window.removeEventListener("mousemove", this.on_bound_drag, true); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> window.removeEventListener("mouseup", this.bound_on_release, true) +</xsl:text> + <xsl:text> window.removeEventListener("touchend", this.bound_on_release, true); +</xsl:text> + <xsl:text> window.removeEventListener("touchcancel", this.bound_on_release, true); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> //reset drag flag +</xsl:text> + <xsl:text> if(this.drag){ +</xsl:text> + <xsl:text> this.drag = false; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> // get final position +</xsl:text> + <xsl:text> this.update_position(evt); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> on_drag(evt){ +</xsl:text> + <xsl:text> //ignore drag event for X amount of time and if not selected +</xsl:text> + <xsl:text> if(this.enTimer && this.drag){ +</xsl:text> + <xsl:text> this.update_position(evt); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> //reset timer +</xsl:text> + <xsl:text> this.enTimer = false; +</xsl:text> + <xsl:text> setTimeout("{hmi_widgets['"+this.element_id+"'].enTimer = true;}", 100); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> update_position(evt){ +</xsl:text> + <xsl:text> if(this.drag && this.enTimer){ +</xsl:text> + <xsl:text> var svg_dist = 0; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> //calculate center of widget in html +</xsl:text> + <xsl:text> // --TODO maybe it would be better to bind this part to window change size event ??? +</xsl:text> + <xsl:text> let [xdest,ydest,svgWidth,svgHeight] = page_desc[current_visible_page].bbox; +</xsl:text> + <xsl:text> let [cX, cY,fiStart,fiEnd,minMax,x1,y1,width,height] = this.circle; +</xsl:text> + <xsl:text> let htmlCirc = this.range_elt.getBoundingClientRect(); +</xsl:text> + <xsl:text> let cxHtml = ((htmlCirc.right-htmlCirc.left)/(width)*(cX-x1))+htmlCirc.left; +</xsl:text> + <xsl:text> let cyHtml = ((htmlCirc.bottom-htmlCirc.top)/(height)*(cY-y1))+htmlCirc.top; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> //get mouse coordinates +</xsl:text> + <xsl:text> let mouseX = undefined; +</xsl:text> + <xsl:text> let mouseY = undefined; +</xsl:text> + <xsl:text> if (evt.type.startsWith("touch")){ +</xsl:text> + <xsl:text> mouseX = Math.ceil(evt.touches[0].clientX); +</xsl:text> + <xsl:text> mouseY = Math.ceil(evt.touches[0].clientY); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> else{ +</xsl:text> + <xsl:text> mouseX = evt.pageX; +</xsl:text> + <xsl:text> mouseY = evt.pageY; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> //calculate angle +</xsl:text> + <xsl:text> let fi = Math.atan2(cyHtml-mouseY, mouseX-cxHtml); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> // transform from 0 to 2PI +</xsl:text> + <xsl:text> if (fi > 0){ +</xsl:text> + <xsl:text> fi = 2*Math.PI-fi; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> else{ +</xsl:text> + <xsl:text> fi = -fi; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> //offset it to 0 +</xsl:text> + <xsl:text> fi = fi - fiStart; +</xsl:text> + <xsl:text> if (fi < 0){ +</xsl:text> + <xsl:text> fi = fi + 2*Math.PI; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> //get handle distance from mouse position +</xsl:text> + <xsl:text> if(fi<fiEnd){ +</xsl:text> + <xsl:text> this.curr_value=(fi)/(fiEnd)*(this.range[1]-this.range[0]); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> else if(fiEnd<fi && fi<fiEnd+minMax){ +</xsl:text> + <xsl:text> this.curr_value = this.range[1]; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> else{ +</xsl:text> + <xsl:text> this.curr_value = this.range[0]; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> //apply value to hmi +</xsl:text> + <xsl:text> this.apply_hmi_value(0, Math.ceil(this.curr_value)); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> //redraw handle +</xsl:text> + <xsl:text> this.request_animate(); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> animate(){ +</xsl:text> + <xsl:text> // redraw handle on screen refresh +</xsl:text> + <xsl:text> // check if setpoint(ghost) handle exsist otherwise update main handle +</xsl:text> + <xsl:text> if(this.setpoint_elt != undefined){ +</xsl:text> + <xsl:text> this.update_DOM(this.curr_value, this.setpoint_elt); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> else{ +</xsl:text> + <xsl:text> this.update_DOM(this.curr_value, this.handle_elt); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> on_select(evt){ +</xsl:text> + <xsl:text> //enable drag flag and timer +</xsl:text> + <xsl:text> this.drag = true; +</xsl:text> + <xsl:text> this.enTimer = true; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> //bind events +</xsl:text> + <xsl:text> window.addEventListener("touchmove", this.on_bound_drag, true); +</xsl:text> + <xsl:text> window.addEventListener("mousemove", this.on_bound_drag, true); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> window.addEventListener("mouseup", this.bound_on_release, true); +</xsl:text> + <xsl:text> window.addEventListener("touchend", this.bound_on_release, true); +</xsl:text> + <xsl:text> window.addEventListener("touchcancel", this.bound_on_release, true); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> //update postion on mouse press +</xsl:text> + <xsl:text> this.update_position(evt); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> //prevent next events +</xsl:text> + <xsl:text> evt.stopPropagation(); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> init() { +</xsl:text> + <xsl:text> //get min max +</xsl:text> + <xsl:text> let min = this.min_elt ? +</xsl:text> + <xsl:text> Number(this.min_elt.textContent) : +</xsl:text> + <xsl:text> this.args.length >= 1 ? this.args[0] : 0; +</xsl:text> + <xsl:text> let max = this.max_elt ? +</xsl:text> + <xsl:text> Number(this.max_elt.textContent) : +</xsl:text> + <xsl:text> this.args.length >= 2 ? this.args[1] : 100; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> //fiStart ==> offset +</xsl:text> + <xsl:text> let fiStart = Number(this.range_elt.getAttribute('sodipodi:start')); +</xsl:text> + <xsl:text> let fiEnd = Number(this.range_elt.getAttribute('sodipodi:end')); +</xsl:text> + <xsl:text> fiEnd = fiEnd - fiStart; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> //fiEnd ==> size of angle +</xsl:text> + <xsl:text> if (fiEnd < 0){ +</xsl:text> + <xsl:text> fiEnd = 2*Math.PI + fiEnd; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> //min max barrier angle +</xsl:text> + <xsl:text> let minMax = (2*Math.PI - fiEnd)/2; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> //get parameters from svg +</xsl:text> + <xsl:text> let cX = Number(this.range_elt.getAttribute('sodipodi:cx')); +</xsl:text> + <xsl:text> let cY = Number(this.range_elt.getAttribute('sodipodi:cy')); +</xsl:text> + <xsl:text> this.range_elt.style.strokeMiterlimit="0"; //eliminates some weird border around html object +</xsl:text> + <xsl:text> this.range = [min, max,this.range_elt.getTotalLength()]; +</xsl:text> + <xsl:text> let cPos = this.range_elt.getBBox(); +</xsl:text> + <xsl:text> this.handle_pos = this.range_elt.getPointAtLength(0); +</xsl:text> + <xsl:text> this.circle = [cX, cY,fiStart,fiEnd,minMax,cPos.x,cPos.y,cPos.width,cPos.height]; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> //bind functions +</xsl:text> + <xsl:text> this.bound_on_select = this.on_select.bind(this); +</xsl:text> + <xsl:text> this.bound_on_release = this.on_release.bind(this); +</xsl:text> + <xsl:text> this.on_bound_drag = this.on_drag.bind(this); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> this.handle_elt.addEventListener("mousedown", this.bound_on_select); +</xsl:text> + <xsl:text> this.element.addEventListener("mousedown", this.bound_on_select); +</xsl:text> + <xsl:text> this.element.addEventListener("touchstart", this.bound_on_select); +</xsl:text> + <xsl:text> //touch recognised as page drag without next command +</xsl:text> + <xsl:text> document.body.addEventListener("touchstart", function(e){}, false); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> //save ghost style +</xsl:text> + <xsl:text> //save ghost style +</xsl:text> + <xsl:text> if(this.setpoint_elt != undefined){ +</xsl:text> + <xsl:text> this.setpoint_style = this.setpoint_elt.getAttribute("style"); +</xsl:text> + <xsl:text> this.setpoint_elt.setAttribute("style", "display:none"); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text>} +</xsl:text> + </xsl:template> + <xsl:template mode="widget_defs" match="widget[@type='CircularSlider']"> + <xsl:param name="hmi_element"/> + <xsl:call-template name="defs_by_labels"> + <xsl:with-param name="hmi_element" select="$hmi_element"/> + <xsl:with-param name="labels"> + <xsl:text>handle range</xsl:text> + </xsl:with-param> + </xsl:call-template> + <xsl:call-template name="defs_by_labels"> + <xsl:with-param name="hmi_element" select="$hmi_element"/> + <xsl:with-param name="labels"> + <xsl:text>value min max setpoint</xsl:text> + </xsl:with-param> + <xsl:with-param name="mandatory" select="'no'"/> + </xsl:call-template> + <xsl:text> +</xsl:text> + </xsl:template> + <xsl:template mode="widget_class" match="widget[@type='CustomHtml']"> + <xsl:text>class CustomHtmlWidget extends Widget{ +</xsl:text> + <xsl:text> frequency = 5; +</xsl:text> + <xsl:text> widget_size = undefined; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> dispatch(value) { +</xsl:text> + <xsl:text> this.request_animate(); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> animate(){ +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> init() { +</xsl:text> + <xsl:text> this.widget_size = this.container_elt.getBBox(); +</xsl:text> + <xsl:text> this.element.innerHTML ='<foreignObject x="'+ +</xsl:text> + <xsl:text> this.widget_size.x+'" y="'+this.widget_size.y+ +</xsl:text> + <xsl:text> '" width="'+this.widget_size.width+'" height="'+this.widget_size.height+'"> '+ +</xsl:text> + <xsl:text> this.code_elt.textContent+ +</xsl:text> + <xsl:text> ' </foreignObject>'; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text>} +</xsl:text> + </xsl:template> + <xsl:template mode="widget_defs" match="widget[@type='CustomHtml']"> + <xsl:param name="hmi_element"/> + <xsl:call-template name="defs_by_labels"> + <xsl:with-param name="hmi_element" select="$hmi_element"/> + <xsl:with-param name="labels"> + <xsl:text>container code</xsl:text> + </xsl:with-param> + </xsl:call-template> + <xsl:text> +</xsl:text> + </xsl:template> + <xsl:template mode="widget_class" match="widget[@type='Display']"> + <xsl:text>class DisplayWidget extends Widget{ +</xsl:text> + <xsl:text> frequency = 5; +</xsl:text> + <xsl:text> dispatch(value, oldval, index) { +</xsl:text> + <xsl:text> this.fields[index] = value; +</xsl:text> + <xsl:text> this.request_animate(); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text>} +</xsl:text> + </xsl:template> + <xsl:template mode="widget_defs" match="widget[@type='Display']"> + <xsl:param name="hmi_element"/> + <xsl:variable name="format"> + <xsl:call-template name="defs_by_labels"> + <xsl:with-param name="hmi_element" select="$hmi_element"/> + <xsl:with-param name="labels"> + <xsl:text>format</xsl:text> + </xsl:with-param> + <xsl:with-param name="mandatory" select="'no'"/> + </xsl:call-template> + </xsl:variable> + <xsl:variable name="has_format" select="string-length($format)>0"/> + <xsl:value-of select="$format"/> + <xsl:if test="$hmi_element[not(self::svg:text)] and not($has_format)"> + <xsl:message terminate="yes"> + <xsl:text>Display Widget id="</xsl:text> + <xsl:value-of select="$hmi_element/@id"/> + <xsl:text>" must be a svg::text element itself or a group containing a svg:text element labelled "format"</xsl:text> + </xsl:message> + </xsl:if> + <xsl:variable name="field_initializer"> + <xsl:for-each select="path"> + <xsl:choose> + <xsl:when test="@type='HMI_STRING'"> + <xsl:text>""</xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:text>0</xsl:text> + </xsl:otherwise> + </xsl:choose> + <xsl:if test="position()!=last()"> + <xsl:text>,</xsl:text> + </xsl:if> + </xsl:for-each> + </xsl:variable> + <xsl:text> fields: [</xsl:text> + <xsl:value-of select="$field_initializer"/> + <xsl:text>], +</xsl:text> + <xsl:text> animate: function(){ +</xsl:text> + <xsl:choose> + <xsl:when test="$has_format"> + <xsl:text> if(this.format_elt.getAttribute("lang")) { +</xsl:text> + <xsl:text> this.format = svg_text_to_multiline(this.format_elt); +</xsl:text> + <xsl:text> this.format_elt.removeAttribute("lang"); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> let str = vsprintf(this.format,this.fields); +</xsl:text> + <xsl:text> multiline_to_svg_text(this.format_elt, str); +</xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:text> let str = this.args.length == 1 ? vsprintf(this.args[0],this.fields) : this.fields.join(' '); +</xsl:text> + <xsl:text> multiline_to_svg_text(this.element, str); +</xsl:text> + </xsl:otherwise> + </xsl:choose> + <xsl:text> }, +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:if test="$has_format"> + <xsl:text> init: function() { +</xsl:text> + <xsl:text> this.format = svg_text_to_multiline(this.format_elt); +</xsl:text> + <xsl:text> }, +</xsl:text> + </xsl:if> + </xsl:template> + <preamble:display/> + <xsl:template match="preamble:display"> + <xsl:text> +</xsl:text> + <xsl:text>/* </xsl:text> + <xsl:value-of select="local-name()"/> + <xsl:text> */ +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>/* https://github.com/alexei/sprintf.js/blob/master/src/sprintf.js */ +</xsl:text> + <xsl:text>/* global window, exports, define */ +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>!function() { +</xsl:text> + <xsl:text> 'use strict' +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> var re = { +</xsl:text> + <xsl:text> not_string: /[^s]/, +</xsl:text> + <xsl:text> not_bool: /[^t]/, +</xsl:text> + <xsl:text> not_type: /[^T]/, +</xsl:text> + <xsl:text> not_primitive: /[^v]/, +</xsl:text> + <xsl:text> number: /[diefg]/, +</xsl:text> + <xsl:text> numeric_arg: /[bcdiefguxX]/, +</xsl:text> + <xsl:text> json: /[j]/, +</xsl:text> + <xsl:text> not_json: /[^j]/, +</xsl:text> + <xsl:text> text: /^[^%]+/, +</xsl:text> + <xsl:text> modulo: /^%{2}/, +</xsl:text> + <xsl:text> placeholder: /^%(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/, +</xsl:text> + <xsl:text> key: /^([a-z_][a-z_\d]*)/i, +</xsl:text> + <xsl:text> key_access: /^\.([a-z_][a-z_\d]*)/i, +</xsl:text> + <xsl:text> index_access: /^\[(\d+)\]/, +</xsl:text> + <xsl:text> sign: /^[+-]/ +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> function sprintf(key) { +</xsl:text> + <xsl:text> // arguments is not an array, but should be fine for this call +</xsl:text> + <xsl:text> return sprintf_format(sprintf_parse(key), arguments) +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> function vsprintf(fmt, argv) { +</xsl:text> + <xsl:text> return sprintf.apply(null, [fmt].concat(argv || [])) +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> function sprintf_format(parse_tree, argv) { +</xsl:text> + <xsl:text> var cursor = 1, tree_length = parse_tree.length, arg, output = '', i, k, ph, pad, pad_character, pad_length, is_positive, sign +</xsl:text> + <xsl:text> for (i = 0; i < tree_length; i++) { +</xsl:text> + <xsl:text> if (typeof parse_tree[i] === 'string') { +</xsl:text> + <xsl:text> output += parse_tree[i] +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> else if (typeof parse_tree[i] === 'object') { +</xsl:text> + <xsl:text> ph = parse_tree[i] // convenience purposes only +</xsl:text> + <xsl:text> if (ph.keys) { // keyword argument +</xsl:text> + <xsl:text> arg = argv[cursor] +</xsl:text> + <xsl:text> for (k = 0; k < ph.keys.length; k++) { +</xsl:text> + <xsl:text> if (arg == undefined) { +</xsl:text> + <xsl:text> throw new Error(sprintf('[sprintf] Cannot access property "%s" of undefined value "%s"', ph.keys[k], ph.keys[k-1])) +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> arg = arg[ph.keys[k]] +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> else if (ph.param_no) { // positional argument (explicit) +</xsl:text> + <xsl:text> arg = argv[ph.param_no] +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> else { // positional argument (implicit) +</xsl:text> + <xsl:text> arg = argv[cursor++] +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> if (re.not_type.test(ph.type) && re.not_primitive.test(ph.type) && arg instanceof Function) { +</xsl:text> + <xsl:text> arg = arg() +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> if (re.numeric_arg.test(ph.type) && (typeof arg !== 'number' && isNaN(arg))) { +</xsl:text> + <xsl:text> throw new TypeError(sprintf('[sprintf] expecting number but found %T', arg)) +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> if (re.number.test(ph.type)) { +</xsl:text> + <xsl:text> is_positive = arg >= 0 +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> switch (ph.type) { +</xsl:text> + <xsl:text> case 'b': +</xsl:text> + <xsl:text> arg = parseInt(arg, 10).toString(2) +</xsl:text> + <xsl:text> break +</xsl:text> + <xsl:text> case 'c': +</xsl:text> + <xsl:text> arg = String.fromCharCode(parseInt(arg, 10)) +</xsl:text> + <xsl:text> break +</xsl:text> + <xsl:text> case 'd': +</xsl:text> + <xsl:text> case 'i': +</xsl:text> + <xsl:text> arg = parseInt(arg, 10) +</xsl:text> + <xsl:text> break +</xsl:text> + <xsl:text> case 'j': +</xsl:text> + <xsl:text> arg = JSON.stringify(arg, null, ph.width ? parseInt(ph.width) : 0) +</xsl:text> + <xsl:text> break +</xsl:text> + <xsl:text> case 'e': +</xsl:text> + <xsl:text> arg = ph.precision ? parseFloat(arg).toExponential(ph.precision) : parseFloat(arg).toExponential() +</xsl:text> + <xsl:text> break +</xsl:text> + <xsl:text> case 'f': +</xsl:text> + <xsl:text> arg = ph.precision ? parseFloat(arg).toFixed(ph.precision) : parseFloat(arg) +</xsl:text> + <xsl:text> break +</xsl:text> + <xsl:text> case 'g': +</xsl:text> + <xsl:text> arg = ph.precision ? String(Number(arg.toPrecision(ph.precision))) : parseFloat(arg) +</xsl:text> + <xsl:text> break +</xsl:text> + <xsl:text> case 'o': +</xsl:text> + <xsl:text> arg = (parseInt(arg, 10) >>> 0).toString(8) +</xsl:text> + <xsl:text> break +</xsl:text> + <xsl:text> case 's': +</xsl:text> + <xsl:text> arg = String(arg) +</xsl:text> + <xsl:text> arg = (ph.precision ? arg.substring(0, ph.precision) : arg) +</xsl:text> + <xsl:text> break +</xsl:text> + <xsl:text> case 't': +</xsl:text> + <xsl:text> arg = String(!!arg) +</xsl:text> + <xsl:text> arg = (ph.precision ? arg.substring(0, ph.precision) : arg) +</xsl:text> + <xsl:text> break +</xsl:text> + <xsl:text> case 'T': +</xsl:text> + <xsl:text> arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase() +</xsl:text> + <xsl:text> arg = (ph.precision ? arg.substring(0, ph.precision) : arg) +</xsl:text> + <xsl:text> break +</xsl:text> + <xsl:text> case 'u': +</xsl:text> + <xsl:text> arg = parseInt(arg, 10) >>> 0 +</xsl:text> + <xsl:text> break +</xsl:text> + <xsl:text> case 'v': +</xsl:text> + <xsl:text> arg = arg.valueOf() +</xsl:text> + <xsl:text> arg = (ph.precision ? arg.substring(0, ph.precision) : arg) +</xsl:text> + <xsl:text> break +</xsl:text> + <xsl:text> case 'x': +</xsl:text> + <xsl:text> arg = (parseInt(arg, 10) >>> 0).toString(16) +</xsl:text> + <xsl:text> break +</xsl:text> + <xsl:text> case 'X': +</xsl:text> + <xsl:text> arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase() +</xsl:text> + <xsl:text> break +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> if (re.json.test(ph.type)) { +</xsl:text> + <xsl:text> output += arg +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> else { +</xsl:text> + <xsl:text> if (re.number.test(ph.type) && (!is_positive || ph.sign)) { +</xsl:text> + <xsl:text> sign = is_positive ? '+' : '-' +</xsl:text> + <xsl:text> arg = arg.toString().replace(re.sign, '') +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> else { +</xsl:text> + <xsl:text> sign = '' +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> pad_character = ph.pad_char ? ph.pad_char === '0' ? '0' : ph.pad_char.charAt(1) : ' ' +</xsl:text> + <xsl:text> pad_length = ph.width - (sign + arg).length +</xsl:text> + <xsl:text> pad = ph.width ? (pad_length > 0 ? pad_character.repeat(pad_length) : '') : '' +</xsl:text> + <xsl:text> output += ph.align ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg) +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> return output +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> var sprintf_cache = Object.create(null) +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> function sprintf_parse(fmt) { +</xsl:text> + <xsl:text> if (sprintf_cache[fmt]) { +</xsl:text> + <xsl:text> return sprintf_cache[fmt] +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> var _fmt = fmt, match, parse_tree = [], arg_names = 0 +</xsl:text> + <xsl:text> while (_fmt) { +</xsl:text> + <xsl:text> if ((match = re.text.exec(_fmt)) !== null) { +</xsl:text> + <xsl:text> parse_tree.push(match[0]) +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> else if ((match = re.modulo.exec(_fmt)) !== null) { +</xsl:text> + <xsl:text> parse_tree.push('%') +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> else if ((match = re.placeholder.exec(_fmt)) !== null) { +</xsl:text> + <xsl:text> if (match[2]) { +</xsl:text> + <xsl:text> arg_names |= 1 +</xsl:text> + <xsl:text> var field_list = [], replacement_field = match[2], field_match = [] +</xsl:text> + <xsl:text> if ((field_match = re.key.exec(replacement_field)) !== null) { +</xsl:text> + <xsl:text> field_list.push(field_match[1]) +</xsl:text> + <xsl:text> while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') { +</xsl:text> + <xsl:text> if ((field_match = re.key_access.exec(replacement_field)) !== null) { +</xsl:text> + <xsl:text> field_list.push(field_match[1]) +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> else if ((field_match = re.index_access.exec(replacement_field)) !== null) { +</xsl:text> + <xsl:text> field_list.push(field_match[1]) +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> else { +</xsl:text> + <xsl:text> throw new SyntaxError('[sprintf] failed to parse named argument key') +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> else { +</xsl:text> + <xsl:text> throw new SyntaxError('[sprintf] failed to parse named argument key') +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> match[2] = field_list +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> else { +</xsl:text> + <xsl:text> arg_names |= 2 +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> if (arg_names === 3) { +</xsl:text> + <xsl:text> throw new Error('[sprintf] mixing positional and named placeholders is not (yet) supported') +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> parse_tree.push( +</xsl:text> + <xsl:text> { +</xsl:text> + <xsl:text> placeholder: match[0], +</xsl:text> + <xsl:text> param_no: match[1], +</xsl:text> + <xsl:text> keys: match[2], +</xsl:text> + <xsl:text> sign: match[3], +</xsl:text> + <xsl:text> pad_char: match[4], +</xsl:text> + <xsl:text> align: match[5], +</xsl:text> + <xsl:text> width: match[6], +</xsl:text> + <xsl:text> precision: match[7], +</xsl:text> + <xsl:text> type: match[8] +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> ) +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> else { +</xsl:text> + <xsl:text> throw new SyntaxError('[sprintf] unexpected placeholder') +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> _fmt = _fmt.substring(match[0].length) +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> return sprintf_cache[fmt] = parse_tree +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> /** +</xsl:text> + <xsl:text> * export to either browser or node.js +</xsl:text> + <xsl:text> */ +</xsl:text> + <xsl:text> /* eslint-disable quote-props */ +</xsl:text> + <xsl:text> if (typeof exports !== 'undefined') { +</xsl:text> + <xsl:text> exports['sprintf'] = sprintf +</xsl:text> + <xsl:text> exports['vsprintf'] = vsprintf +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> if (typeof window !== 'undefined') { +</xsl:text> + <xsl:text> window['sprintf'] = sprintf +</xsl:text> + <xsl:text> window['vsprintf'] = vsprintf +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> if (typeof define === 'function' && define['amd']) { +</xsl:text> + <xsl:text> define(function() { +</xsl:text> + <xsl:text> return { +</xsl:text> + <xsl:text> 'sprintf': sprintf, +</xsl:text> + <xsl:text> 'vsprintf': vsprintf +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> }) +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> /* eslint-enable quote-props */ +</xsl:text> + <xsl:text>}(); // eslint-disable-line +</xsl:text> + <xsl:text> +</xsl:text> + </xsl:template> + <xsl:template mode="widget_class" match="widget[@type='DropDown']"> + <xsl:text> function numb_event(e) { +</xsl:text> + <xsl:text> e.stopPropagation(); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> class DropDownWidget extends Widget{ +</xsl:text> + <xsl:text> dispatch(value) { +</xsl:text> + <xsl:text> if(!this.opened) this.set_selection(value); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> init() { +</xsl:text> + <xsl:text> this.button_elt.onclick = this.on_button_click.bind(this); +</xsl:text> + <xsl:text> // Save original size of rectangle +</xsl:text> + <xsl:text> this.box_bbox = this.box_elt.getBBox() +</xsl:text> + <xsl:text> this.highlight_bbox = this.highlight_elt.getBBox() +</xsl:text> + <xsl:text> this.highlight_elt.style.visibility = "hidden"; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> // Compute margins +</xsl:text> + <xsl:text> this.text_bbox = this.text_elt.getBBox(); +</xsl:text> + <xsl:text> let lmargin = this.text_bbox.x - this.box_bbox.x; +</xsl:text> + <xsl:text> let tmargin = this.text_bbox.y - this.box_bbox.y; +</xsl:text> + <xsl:text> this.margins = [lmargin, tmargin].map(x => Math.max(x,0)); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> // Index of first visible element in the menu, when opened +</xsl:text> + <xsl:text> this.menu_offset = 0; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> // How mutch to lift the menu vertically so that it does not cross bottom border +</xsl:text> + <xsl:text> this.lift = 0; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> // Event handlers cannot be object method ('this' is unknown) +</xsl:text> + <xsl:text> // as a workaround, handler given to addEventListener is bound in advance. +</xsl:text> + <xsl:text> this.bound_close_on_click_elsewhere = this.close_on_click_elsewhere.bind(this); +</xsl:text> + <xsl:text> this.bound_on_selection_click = this.on_selection_click.bind(this); +</xsl:text> + <xsl:text> this.bound_on_backward_click = this.on_backward_click.bind(this); +</xsl:text> + <xsl:text> this.bound_on_forward_click = this.on_forward_click.bind(this); +</xsl:text> + <xsl:text> this.opened = false; +</xsl:text> + <xsl:text> this.clickables = []; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> on_button_click() { +</xsl:text> + <xsl:text> this.open(); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> // Called when a menu entry is clicked +</xsl:text> + <xsl:text> on_selection_click(selection) { +</xsl:text> + <xsl:text> this.close(); +</xsl:text> + <xsl:text> this.apply_hmi_value(0, selection); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> on_backward_click(){ +</xsl:text> + <xsl:text> this.scroll(false); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> on_forward_click(){ +</xsl:text> + <xsl:text> this.scroll(true); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> set_selection(value) { +</xsl:text> + <xsl:text> let display_str; +</xsl:text> + <xsl:text> if(value >= 0 && value < this.content.length){ +</xsl:text> + <xsl:text> // if valid selection resolve content +</xsl:text> + <xsl:text> display_str = this.content[value]; +</xsl:text> + <xsl:text> this.last_selection = value; +</xsl:text> + <xsl:text> } else { +</xsl:text> + <xsl:text> // otherwise show problem +</xsl:text> + <xsl:text> display_str = "?"+String(value)+"?"; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> // It is assumed that first span always stays, +</xsl:text> + <xsl:text> // and contains selection when menu is closed +</xsl:text> + <xsl:text> this.text_elt.firstElementChild.textContent = display_str; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> grow_text(up_to) { +</xsl:text> + <xsl:text> let count = 1; +</xsl:text> + <xsl:text> let txt = this.text_elt; +</xsl:text> + <xsl:text> let first = txt.firstElementChild; +</xsl:text> + <xsl:text> // Real world (pixels) boundaries of current page +</xsl:text> + <xsl:text> let bounds = svg_root.getBoundingClientRect(); +</xsl:text> + <xsl:text> this.lift = 0; +</xsl:text> + <xsl:text> while(count < up_to) { +</xsl:text> + <xsl:text> let next = first.cloneNode(); +</xsl:text> + <xsl:text> // relative line by line text flow instead of absolute y coordinate +</xsl:text> + <xsl:text> next.removeAttribute("y"); +</xsl:text> + <xsl:text> next.setAttribute("dy", "1.1em"); +</xsl:text> + <xsl:text> // default content to allow computing text element bbox +</xsl:text> + <xsl:text> next.textContent = "..."; +</xsl:text> + <xsl:text> // append new span to text element +</xsl:text> + <xsl:text> txt.appendChild(next); +</xsl:text> + <xsl:text> // now check if text extended by one row fits to page +</xsl:text> + <xsl:text> // FIXME : exclude margins to be more accurate on box size +</xsl:text> + <xsl:text> let rect = txt.getBoundingClientRect(); +</xsl:text> + <xsl:text> if(rect.bottom > bounds.bottom){ +</xsl:text> + <xsl:text> // in case of overflow at the bottom, lift up one row +</xsl:text> + <xsl:text> let backup = first.getAttribute("dy"); +</xsl:text> + <xsl:text> // apply lift as a dy added too first span (y attrib stays) +</xsl:text> + <xsl:text> first.setAttribute("dy", "-"+String((this.lift+1)*1.1)+"em"); +</xsl:text> + <xsl:text> rect = txt.getBoundingClientRect(); +</xsl:text> + <xsl:text> if(rect.top > bounds.top){ +</xsl:text> + <xsl:text> this.lift += 1; +</xsl:text> + <xsl:text> } else { +</xsl:text> + <xsl:text> // if it goes over the top, then backtrack +</xsl:text> + <xsl:text> // restore dy attribute on first span +</xsl:text> + <xsl:text> if(backup) +</xsl:text> + <xsl:text> first.setAttribute("dy", backup); +</xsl:text> + <xsl:text> else +</xsl:text> + <xsl:text> first.removeAttribute("dy"); +</xsl:text> + <xsl:text> // remove unwanted child +</xsl:text> + <xsl:text> txt.removeChild(next); +</xsl:text> + <xsl:text> return count; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> count++; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> return count; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> close_on_click_elsewhere(e) { +</xsl:text> + <xsl:text> // inhibit events not targetting spans (menu items) +</xsl:text> + <xsl:text> if([this.text_elt, this.element].indexOf(e.target.parentNode) == -1){ +</xsl:text> + <xsl:text> e.stopPropagation(); +</xsl:text> + <xsl:text> // close menu in case click is outside box +</xsl:text> + <xsl:text> if(e.target !== this.box_elt) +</xsl:text> + <xsl:text> this.close(); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> close(){ +</xsl:text> + <xsl:text> // Stop hogging all click events +</xsl:text> + <xsl:text> svg_root.removeEventListener("pointerdown", numb_event, true); +</xsl:text> + <xsl:text> svg_root.removeEventListener("pointerup", numb_event, true); +</xsl:text> + <xsl:text> svg_root.removeEventListener("click", this.bound_close_on_click_elsewhere, true); +</xsl:text> + <xsl:text> // Restore position and sixe of widget elements +</xsl:text> + <xsl:text> this.reset_text(); +</xsl:text> + <xsl:text> this.reset_clickables(); +</xsl:text> + <xsl:text> this.reset_box(); +</xsl:text> + <xsl:text> this.reset_highlight(); +</xsl:text> + <xsl:text> // Put the button back in place +</xsl:text> + <xsl:text> this.element.appendChild(this.button_elt); +</xsl:text> + <xsl:text> // Mark as closed (to allow dispatch) +</xsl:text> + <xsl:text> this.opened = false; +</xsl:text> + <xsl:text> // Dispatch last cached value +</xsl:text> + <xsl:text> this.apply_cache(); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> // Make item (text span) clickable by overlaying a rectangle on top of it +</xsl:text> + <xsl:text> make_clickable(span, func) { +</xsl:text> + <xsl:text> let txt = this.text_elt; +</xsl:text> + <xsl:text> let original_text_y = this.text_bbox.y; +</xsl:text> + <xsl:text> let highlight = this.highlight_elt; +</xsl:text> + <xsl:text> let original_h_y = this.highlight_bbox.y; +</xsl:text> + <xsl:text> let clickable = highlight.cloneNode(); +</xsl:text> + <xsl:text> let yoffset = span.getBBox().y - original_text_y; +</xsl:text> + <xsl:text> clickable.y.baseVal.value = original_h_y + yoffset; +</xsl:text> + <xsl:text> clickable.style.pointerEvents = "bounding-box"; +</xsl:text> + <xsl:text> //clickable.style.visibility = "hidden"; +</xsl:text> + <xsl:text> //clickable.onclick = () => alert("love JS"); +</xsl:text> + <xsl:text> clickable.onclick = func; +</xsl:text> + <xsl:text> this.element.appendChild(clickable); +</xsl:text> + <xsl:text> this.clickables.push(clickable) +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> reset_clickables() { +</xsl:text> + <xsl:text> while(this.clickables.length){ +</xsl:text> + <xsl:text> this.element.removeChild(this.clickables.pop()); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> // Set text content when content is smaller than menu (no scrolling) +</xsl:text> + <xsl:text> set_complete_text(){ +</xsl:text> + <xsl:text> let spans = this.text_elt.children; +</xsl:text> + <xsl:text> let c = 0; +</xsl:text> + <xsl:text> for(let item of this.content){ +</xsl:text> + <xsl:text> let span=spans[c]; +</xsl:text> + <xsl:text> span.textContent = item; +</xsl:text> + <xsl:text> let sel = c; +</xsl:text> + <xsl:text> this.make_clickable(span, (evt) => this.bound_on_selection_click(sel)); +</xsl:text> + <xsl:text> c++; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> // Move partial view : +</xsl:text> + <xsl:text> // false : upward, lower value +</xsl:text> + <xsl:text> // true : downward, higher value +</xsl:text> + <xsl:text> scroll(forward){ +</xsl:text> + <xsl:text> let contentlength = this.content.length; +</xsl:text> + <xsl:text> let spans = this.text_elt.children; +</xsl:text> + <xsl:text> let spanslength = spans.length; +</xsl:text> + <xsl:text> // reduce accounted menu size according to prsence of scroll buttons +</xsl:text> + <xsl:text> // since we scroll there is necessarly one button +</xsl:text> + <xsl:text> spanslength--; +</xsl:text> + <xsl:text> if(forward){ +</xsl:text> + <xsl:text> // reduce accounted menu size because of back button +</xsl:text> + <xsl:text> // in current view +</xsl:text> + <xsl:text> if(this.menu_offset > 0) spanslength--; +</xsl:text> + <xsl:text> this.menu_offset = Math.min( +</xsl:text> + <xsl:text> contentlength - spans.length + 1, +</xsl:text> + <xsl:text> this.menu_offset + spanslength); +</xsl:text> + <xsl:text> }else{ +</xsl:text> + <xsl:text> // reduce accounted menu size because of back button +</xsl:text> + <xsl:text> // in view once scrolled +</xsl:text> + <xsl:text> if(this.menu_offset - spanslength > 0) spanslength--; +</xsl:text> + <xsl:text> this.menu_offset = Math.max( +</xsl:text> + <xsl:text> 0, +</xsl:text> + <xsl:text> this.menu_offset - spanslength); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> if(this.menu_offset == 1) +</xsl:text> + <xsl:text> this.menu_offset = 0; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> this.reset_highlight(); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> this.reset_clickables(); +</xsl:text> + <xsl:text> this.set_partial_text(); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> this.highlight_selection(); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> // Setup partial view text content +</xsl:text> + <xsl:text> // with jumps at first and last entry when appropriate +</xsl:text> + <xsl:text> set_partial_text(){ +</xsl:text> + <xsl:text> let spans = this.text_elt.children; +</xsl:text> + <xsl:text> let contentlength = this.content.length; +</xsl:text> + <xsl:text> let spanslength = spans.length; +</xsl:text> + <xsl:text> let i = this.menu_offset, c = 0; +</xsl:text> + <xsl:text> let m = this.box_bbox; +</xsl:text> + <xsl:text> while(c < spanslength){ +</xsl:text> + <xsl:text> let span=spans[c]; +</xsl:text> + <xsl:text> let onclickfunc; +</xsl:text> + <xsl:text> // backward jump only present if not exactly at start +</xsl:text> + <xsl:text> if(c == 0 && i != 0){ +</xsl:text> + <xsl:text> span.textContent = "▲"; +</xsl:text> + <xsl:text> onclickfunc = this.bound_on_backward_click; +</xsl:text> + <xsl:text> let o = span.getBBox(); +</xsl:text> + <xsl:text> span.setAttribute("dx", (m.width - o.width)/2); +</xsl:text> + <xsl:text> // presence of forward jump when not right at the end +</xsl:text> + <xsl:text> }else if(c == spanslength-1 && i < contentlength - 1){ +</xsl:text> + <xsl:text> span.textContent = "▼"; +</xsl:text> + <xsl:text> onclickfunc = this.bound_on_forward_click; +</xsl:text> + <xsl:text> let o = span.getBBox(); +</xsl:text> + <xsl:text> span.setAttribute("dx", (m.width - o.width)/2); +</xsl:text> + <xsl:text> // otherwise normal content +</xsl:text> + <xsl:text> }else{ +</xsl:text> + <xsl:text> span.textContent = this.content[i]; +</xsl:text> + <xsl:text> let sel = i; +</xsl:text> + <xsl:text> onclickfunc = (evt) => this.bound_on_selection_click(sel); +</xsl:text> + <xsl:text> span.removeAttribute("dx"); +</xsl:text> + <xsl:text> i++; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> this.make_clickable(span, onclickfunc); +</xsl:text> + <xsl:text> c++; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> open(){ +</xsl:text> + <xsl:text> let length = this.content.length; +</xsl:text> + <xsl:text> // systematically reset text, to strip eventual whitespace spans +</xsl:text> + <xsl:text> this.reset_text(); +</xsl:text> + <xsl:text> // grow as much as needed or possible +</xsl:text> + <xsl:text> let slots = this.grow_text(length); +</xsl:text> + <xsl:text> // Depending on final size +</xsl:text> + <xsl:text> if(slots == length) { +</xsl:text> + <xsl:text> // show all at once +</xsl:text> + <xsl:text> this.set_complete_text(); +</xsl:text> + <xsl:text> } else { +</xsl:text> + <xsl:text> // eventualy align menu to current selection, compensating for lift +</xsl:text> + <xsl:text> let offset = this.last_selection - this.lift; +</xsl:text> + <xsl:text> if(offset > 0) +</xsl:text> + <xsl:text> this.menu_offset = Math.min(offset + 1, length - slots + 1); +</xsl:text> + <xsl:text> else +</xsl:text> + <xsl:text> this.menu_offset = 0; +</xsl:text> + <xsl:text> // show surrounding values +</xsl:text> + <xsl:text> this.set_partial_text(); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> // Now that text size is known, we can set the box around it +</xsl:text> + <xsl:text> this.adjust_box_to_text(); +</xsl:text> + <xsl:text> // Take button out until menu closed +</xsl:text> + <xsl:text> this.element.removeChild(this.button_elt); +</xsl:text> + <xsl:text> // Rise widget to top by moving it to last position among siblings +</xsl:text> + <xsl:text> this.element.parentNode.appendChild(this.element.parentNode.removeChild(this.element)); +</xsl:text> + <xsl:text> // disable interaction with background +</xsl:text> + <xsl:text> svg_root.addEventListener("pointerdown", numb_event, true); +</xsl:text> + <xsl:text> svg_root.addEventListener("pointerup", numb_event, true); +</xsl:text> + <xsl:text> svg_root.addEventListener("click", this.bound_close_on_click_elsewhere, true); +</xsl:text> + <xsl:text> this.highlight_selection(); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> // mark as open +</xsl:text> + <xsl:text> this.opened = true; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> // Put text element in normalized state +</xsl:text> + <xsl:text> reset_text(){ +</xsl:text> + <xsl:text> let txt = this.text_elt; +</xsl:text> + <xsl:text> let first = txt.firstElementChild; +</xsl:text> + <xsl:text> // remove attribute eventually added to first text line while opening +</xsl:text> + <xsl:text> first.onclick = null; +</xsl:text> + <xsl:text> first.removeAttribute("dy"); +</xsl:text> + <xsl:text> first.removeAttribute("dx"); +</xsl:text> + <xsl:text> // keep only the first line of text +</xsl:text> + <xsl:text> for(let span of Array.from(txt.children).slice(1)){ +</xsl:text> + <xsl:text> txt.removeChild(span) +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> // Put rectangle element in saved original state +</xsl:text> + <xsl:text> reset_box(){ +</xsl:text> + <xsl:text> let m = this.box_bbox; +</xsl:text> + <xsl:text> let b = this.box_elt; +</xsl:text> + <xsl:text> b.x.baseVal.value = m.x; +</xsl:text> + <xsl:text> b.y.baseVal.value = m.y; +</xsl:text> + <xsl:text> b.width.baseVal.value = m.width; +</xsl:text> + <xsl:text> b.height.baseVal.value = m.height; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> highlight_selection(){ +</xsl:text> + <xsl:text> if(this.last_selection == undefined) return; +</xsl:text> + <xsl:text> let highlighted_row = this.last_selection - this.menu_offset; +</xsl:text> + <xsl:text> if(highlighted_row < 0) return; +</xsl:text> + <xsl:text> let spans = this.text_elt.children; +</xsl:text> + <xsl:text> let spanslength = spans.length; +</xsl:text> + <xsl:text> let contentlength = this.content.length; +</xsl:text> + <xsl:text> if(this.menu_offset != 0) { +</xsl:text> + <xsl:text> spanslength--; +</xsl:text> + <xsl:text> highlighted_row++; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> if(this.menu_offset + spanslength < contentlength - 1) spanslength--; +</xsl:text> + <xsl:text> if(highlighted_row > spanslength) return; +</xsl:text> + <xsl:text> let original_text_y = this.text_bbox.y; +</xsl:text> + <xsl:text> let highlight = this.highlight_elt; +</xsl:text> + <xsl:text> let span = spans[highlighted_row]; +</xsl:text> + <xsl:text> let yoffset = span.getBBox().y - original_text_y; +</xsl:text> + <xsl:text> highlight.y.baseVal.value = this.highlight_bbox.y + yoffset; +</xsl:text> + <xsl:text> highlight.style.visibility = "visible"; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> reset_highlight(){ +</xsl:text> + <xsl:text> let highlight = this.highlight_elt; +</xsl:text> + <xsl:text> highlight.y.baseVal.value = this.highlight_bbox.y; +</xsl:text> + <xsl:text> highlight.style.visibility = "hidden"; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> // Use margin and text size to compute box size +</xsl:text> + <xsl:text> adjust_box_to_text(){ +</xsl:text> + <xsl:text> let [lmargin, tmargin] = this.margins; +</xsl:text> + <xsl:text> let m = this.text_elt.getBBox(); +</xsl:text> + <xsl:text> let b = this.box_elt; +</xsl:text> + <xsl:text> // b.x.baseVal.value = m.x - lmargin; +</xsl:text> + <xsl:text> b.y.baseVal.value = m.y - tmargin; +</xsl:text> + <xsl:text> // b.width.baseVal.value = 2 * lmargin + m.width; +</xsl:text> + <xsl:text> b.height.baseVal.value = 2 * tmargin + m.height; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + </xsl:template> + <xsl:template mode="widget_defs" match="widget[@type='DropDown']"> + <xsl:param name="hmi_element"/> + <xsl:call-template name="defs_by_labels"> + <xsl:with-param name="hmi_element" select="$hmi_element"/> + <xsl:with-param name="labels"> + <xsl:text>text box button highlight</xsl:text> + </xsl:with-param> + </xsl:call-template> + <xsl:text> content:</xsl:text> + <xsl:choose> + <xsl:when test="count(arg) = 1 and arg[1]/@value = '#langs'"> + <xsl:text>langs</xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:text>[ +</xsl:text> + <xsl:for-each select="arg"> + <xsl:text>"</xsl:text> + <xsl:value-of select="@value"/> + <xsl:text>", +</xsl:text> + </xsl:for-each> + <xsl:text> ]</xsl:text> + </xsl:otherwise> + </xsl:choose> + <xsl:text>, +</xsl:text> + </xsl:template> + <xsl:template mode="widget_defs" match="widget[@type='ForEach']"> + <xsl:param name="hmi_element"/> + <xsl:if test="count(path) != 1"> + <xsl:message terminate="yes"> + <xsl:text>ForEach widget </xsl:text> + <xsl:value-of select="$hmi_element/@id"/> + <xsl:text> must have one HMI path given.</xsl:text> + </xsl:message> + </xsl:if> + <xsl:if test="count(arg) != 1"> + <xsl:message terminate="yes"> + <xsl:text>ForEach widget </xsl:text> + <xsl:value-of select="$hmi_element/@id"/> + <xsl:text> must have one argument given : a class name.</xsl:text> + </xsl:message> + </xsl:if> + <xsl:variable name="class" select="arg[1]/@value"/> + <xsl:variable name="base_path" select="path/@value"/> + <xsl:variable name="hmi_index_base" select="$indexed_hmitree/*[@hmipath = $base_path]"/> + <xsl:variable name="hmi_tree_base" select="$hmitree/descendant-or-self::*[@path = $hmi_index_base/@path]"/> + <xsl:variable name="hmi_tree_items" select="$hmi_tree_base/*[@class = $class]"/> + <xsl:variable name="hmi_index_items" select="$indexed_hmitree/*[@path = $hmi_tree_items/@path]"/> + <xsl:variable name="items_paths" select="$hmi_index_items/@hmipath"/> + <xsl:text> index_pool: [ +</xsl:text> + <xsl:for-each select="$hmi_index_items"> + <xsl:text> </xsl:text> + <xsl:value-of select="@index"/> + <xsl:if test="position()!=last()"> + <xsl:text>,</xsl:text> + </xsl:if> + <xsl:text> +</xsl:text> + </xsl:for-each> + <xsl:text> ], +</xsl:text> + <xsl:text> init: function() { +</xsl:text> + <xsl:variable name="prefix" select="concat($class,':')"/> + <xsl:variable name="buttons_regex" select="concat('^',$prefix,'[+\-][0-9]+')"/> + <xsl:variable name="buttons" select="$hmi_element/*[regexp:test(@inkscape:label, $buttons_regex)]"/> + <xsl:for-each select="$buttons"> + <xsl:variable name="op" select="substring-after(@inkscape:label, $prefix)"/> + <xsl:text> id("</xsl:text> + <xsl:value-of select="@id"/> + <xsl:text>").setAttribute("onclick", "hmi_widgets['</xsl:text> + <xsl:value-of select="$hmi_element/@id"/> + <xsl:text>'].on_click('</xsl:text> + <xsl:value-of select="$op"/> + <xsl:text>', evt)"); +</xsl:text> + </xsl:for-each> + <xsl:text> +</xsl:text> + <xsl:text> this.items = [ +</xsl:text> + <xsl:variable name="items_regex" select="concat('^',$prefix,'[0-9]+')"/> + <xsl:variable name="unordered_items" select="$hmi_element//*[regexp:test(@inkscape:label, $items_regex)]"/> + <xsl:for-each select="$unordered_items"> + <xsl:variable name="elt_label" select="concat($prefix, string(position()))"/> + <xsl:variable name="elt" select="$unordered_items[@inkscape:label = $elt_label]"/> + <xsl:variable name="pos" select="position()"/> + <xsl:variable name="item_path" select="$items_paths[$pos]"/> + <xsl:text> [ /* item="</xsl:text> + <xsl:value-of select="$elt_label"/> + <xsl:text>" path="</xsl:text> + <xsl:value-of select="$item_path"/> + <xsl:text>" */ +</xsl:text> + <xsl:if test="count($elt)=0"> + <xsl:message terminate="yes"> + <xsl:text>Missing item labeled </xsl:text> + <xsl:value-of select="$elt_label"/> + <xsl:text> in ForEach widget </xsl:text> + <xsl:value-of select="$hmi_element/@id"/> + </xsl:message> + </xsl:if> + <xsl:for-each select="func:refered_elements($elt)[@id = $hmi_elements/@id][not(@id = $elt/@id)]"> + <xsl:if test="not(func:is_descendant_path(func:widget(@id)/path/@value, $item_path))"> + <xsl:message terminate="yes"> + <xsl:text>Widget id="</xsl:text> + <xsl:value-of select="@id"/> + <xsl:text>" label="</xsl:text> + <xsl:value-of select="@inkscape:label"/> + <xsl:text>" is having wrong path. Accroding to ForEach widget ancestor id="</xsl:text> + <xsl:value-of select="$hmi_element/@id"/> + <xsl:text>", path should be descendant of "</xsl:text> + <xsl:value-of select="$item_path"/> + <xsl:text>".</xsl:text> + </xsl:message> + </xsl:if> + <xsl:text> hmi_widgets["</xsl:text> + <xsl:value-of select="@id"/> + <xsl:text>"]</xsl:text> + <xsl:if test="position()!=last()"> + <xsl:text>,</xsl:text> + </xsl:if> + <xsl:text> +</xsl:text> + </xsl:for-each> + <xsl:text> ]</xsl:text> + <xsl:if test="position()!=last()"> + <xsl:text>,</xsl:text> + </xsl:if> + <xsl:text> +</xsl:text> + </xsl:for-each> + <xsl:text> ] +</xsl:text> + <xsl:text> }, +</xsl:text> + <xsl:text> item_offset: 0, +</xsl:text> + </xsl:template> + <xsl:template mode="widget_class" match="widget[@type='ForEach']"> + <xsl:text>class ForEachWidget extends Widget{ +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> unsub_items(){ +</xsl:text> + <xsl:text> for(let item of this.items){ +</xsl:text> + <xsl:text> for(let widget of item) { +</xsl:text> + <xsl:text> widget.unsub(); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> unsub(){ +</xsl:text> + <xsl:text> this.unsub_items(); +</xsl:text> + <xsl:text> this.offset = 0; +</xsl:text> + <xsl:text> this.relativeness = undefined; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> sub_items(){ +</xsl:text> + <xsl:text> for(let i = 0; i < this.items.length; i++) { +</xsl:text> + <xsl:text> let item = this.items[i]; +</xsl:text> + <xsl:text> let orig_item_index = this.index_pool[i]; +</xsl:text> + <xsl:text> let item_index = this.index_pool[i+this.item_offset]; +</xsl:text> + <xsl:text> let item_index_offset = item_index - orig_item_index; +</xsl:text> + <xsl:text> if(this.relativeness[0]) +</xsl:text> + <xsl:text> item_index_offset += this.offset; +</xsl:text> + <xsl:text> for(let widget of item) { +</xsl:text> + <xsl:text> /* all variables of all widgets in a ForEach are all relative. +</xsl:text> + <xsl:text> Really. +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> TODO: allow absolute variables in ForEach widgets +</xsl:text> + <xsl:text> */ +</xsl:text> + <xsl:text> widget.sub(item_index_offset, widget.indexes.map(_=>true)); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> sub(new_offset=0, relativeness=[]){ +</xsl:text> + <xsl:text> this.offset = new_offset; +</xsl:text> + <xsl:text> this.relativeness = relativeness; +</xsl:text> + <xsl:text> this.sub_items(); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> apply_cache() { +</xsl:text> + <xsl:text> this.items.forEach(item=>item.forEach(widget=>widget.apply_cache())); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> on_click(opstr, evt) { +</xsl:text> + <xsl:text> let new_item_offset = eval(String(this.item_offset)+opstr); +</xsl:text> + <xsl:text> if(new_item_offset + this.items.length > this.index_pool.length) { +</xsl:text> + <xsl:text> if(this.item_offset + this.items.length == this.index_pool.length) +</xsl:text> + <xsl:text> new_item_offset = 0; +</xsl:text> + <xsl:text> else +</xsl:text> + <xsl:text> new_item_offset = this.index_pool.length - this.items.length; +</xsl:text> + <xsl:text> } else if(new_item_offset < 0) { +</xsl:text> + <xsl:text> if(this.item_offset == 0) +</xsl:text> + <xsl:text> new_item_offset = this.index_pool.length - this.items.length; +</xsl:text> + <xsl:text> else +</xsl:text> + <xsl:text> new_item_offset = 0; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> this.item_offset = new_item_offset; +</xsl:text> + <xsl:text> this.unsub_items(); +</xsl:text> + <xsl:text> this.sub_items(); +</xsl:text> + <xsl:text> update_subscriptions(); +</xsl:text> + <xsl:text> need_cache_apply.push(this); +</xsl:text> + <xsl:text> jumps_need_update = true; +</xsl:text> + <xsl:text> requestHMIAnimation(); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text>} +</xsl:text> + </xsl:template> + <xsl:template mode="widget_class" match="widget[@type='Input']"> + <xsl:text> class InputWidget extends Widget{ +</xsl:text> + <xsl:text> on_op_click(opstr) { +</xsl:text> + <xsl:text> this.change_hmi_value(0, opstr); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> edit_callback(new_val) { +</xsl:text> + <xsl:text> this.apply_hmi_value(0, new_val); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> is_inhibited = false; +</xsl:text> + <xsl:text> alert(msg){ +</xsl:text> + <xsl:text> this.is_inhibited = true; +</xsl:text> + <xsl:text> this.display = msg; +</xsl:text> + <xsl:text> setTimeout(() => this.stopalert(), 1000); +</xsl:text> + <xsl:text> this.request_animate(); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> stopalert(){ +</xsl:text> + <xsl:text> this.is_inhibited = false; +</xsl:text> + <xsl:text> this.display = this.last_value; +</xsl:text> + <xsl:text> this.request_animate(); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> overshot(new_val, max) { +</xsl:text> + <xsl:text> this.alert("max"); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> undershot(new_val, min) { +</xsl:text> + <xsl:text> this.alert("min"); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> } +</xsl:text> + </xsl:template> + <xsl:template mode="widget_defs" match="widget[@type='Input']"> + <xsl:param name="hmi_element"/> + <xsl:variable name="value_elt"> + <xsl:call-template name="defs_by_labels"> + <xsl:with-param name="hmi_element" select="$hmi_element"/> + <xsl:with-param name="labels"> + <xsl:text>value</xsl:text> + </xsl:with-param> + <xsl:with-param name="mandatory" select="'no'"/> + </xsl:call-template> + </xsl:variable> + <xsl:variable name="have_value" select="string-length($value_elt)>0"/> + <xsl:value-of select="$value_elt"/> + <xsl:variable name="edit_elt"> + <xsl:call-template name="defs_by_labels"> + <xsl:with-param name="hmi_element" select="$hmi_element"/> + <xsl:with-param name="labels"> + <xsl:text>edit</xsl:text> + </xsl:with-param> + <xsl:with-param name="mandatory" select="'no'"/> + </xsl:call-template> + </xsl:variable> + <xsl:variable name="have_edit" select="string-length($edit_elt)>0"/> + <xsl:value-of select="$edit_elt"/> + <xsl:if test="$have_value"> + <xsl:text> frequency: 5, +</xsl:text> + </xsl:if> + <xsl:text> dispatch: function(value) { +</xsl:text> + <xsl:if test="$have_value or $have_edit"> + <xsl:choose> + <xsl:when test="count(arg) = 1"> + <xsl:text> this.last_value = vsprintf("</xsl:text> + <xsl:value-of select="arg[1]/@value"/> + <xsl:text>", [value]); +</xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:text> this.last_value = value; +</xsl:text> + </xsl:otherwise> + </xsl:choose> + <xsl:text> if(!this.is_inhibited){ +</xsl:text> + <xsl:text> this.display = this.last_value; +</xsl:text> + <xsl:if test="$have_value"> + <xsl:text> this.request_animate(); +</xsl:text> + </xsl:if> + <xsl:text> } +</xsl:text> + </xsl:if> + <xsl:text> }, +</xsl:text> + <xsl:if test="$have_value"> + <xsl:text> animate: function(){ +</xsl:text> + <xsl:text> this.value_elt.textContent = String(this.display); +</xsl:text> + <xsl:text> }, +</xsl:text> + </xsl:if> + <xsl:text> init: function() { +</xsl:text> + <xsl:if test="$have_edit"> + <xsl:text> this.edit_elt.onclick = () => edit_value("</xsl:text> + <xsl:value-of select="path/@value"/> + <xsl:text>", "</xsl:text> + <xsl:value-of select="path/@type"/> + <xsl:text>", this, this.last_value); +</xsl:text> + <xsl:if test="$have_value"> + <xsl:text> this.value_elt.style.pointerEvents = "none"; +</xsl:text> + </xsl:if> + </xsl:if> + <xsl:for-each select="$hmi_element/*[regexp:test(@inkscape:label,'^[=+\-].+')]"> + <xsl:text> id("</xsl:text> + <xsl:value-of select="@id"/> + <xsl:text>").onclick = () => this.on_op_click("</xsl:text> + <xsl:value-of select="func:escape_quotes(@inkscape:label)"/> + <xsl:text>"); +</xsl:text> + </xsl:for-each> + <xsl:text> }, +</xsl:text> + </xsl:template> + <xsl:template mode="widget_class" match="widget[@type='JsonTable']"> + <xsl:text>class JsonTableWidget extends Widget{ +</xsl:text> + <xsl:text> // arbitrary defaults to avoid missing entries in query +</xsl:text> + <xsl:text> cache = [0,0,0]; +</xsl:text> + <xsl:text> init_common() { +</xsl:text> + <xsl:text> this.spread_json_data_bound = this.spread_json_data.bind(this); +</xsl:text> + <xsl:text> this.handle_http_response_bound = this.handle_http_response.bind(this); +</xsl:text> + <xsl:text> this.fetch_error_bound = this.fetch_error.bind(this); +</xsl:text> + <xsl:text> this.promised = false; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> handle_http_response(response) { +</xsl:text> + <xsl:text> if (!response.ok) { +</xsl:text> + <xsl:text> console.log("HTTP error, status = " + response.status); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> return response.json(); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> fetch_error(e){ +</xsl:text> + <xsl:text> console.log("HTTP fetch error, message = " + e.message + "Widget:" + this.element_id); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> do_http_request(...opt) { +</xsl:text> + <xsl:text> this.abort_controller = new AbortController(); +</xsl:text> + <xsl:text> return Promise.resolve().then(() => { +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> const query = { +</xsl:text> + <xsl:text> args: this.args, +</xsl:text> + <xsl:text> range: this.cache[1], +</xsl:text> + <xsl:text> position: this.cache[2], +</xsl:text> + <xsl:text> visible: this.visible, +</xsl:text> + <xsl:text> extra: this.cache.slice(4), +</xsl:text> + <xsl:text> options: opt +</xsl:text> + <xsl:text> }; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> const options = { +</xsl:text> + <xsl:text> method: 'POST', +</xsl:text> + <xsl:text> body: JSON.stringify(query), +</xsl:text> + <xsl:text> headers: {'Content-Type': 'application/json'}, +</xsl:text> + <xsl:text> signal: this.abort_controller.signal +</xsl:text> + <xsl:text> }; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> return fetch(this.args[0], options) +</xsl:text> + <xsl:text> .then(this.handle_http_response_bound) +</xsl:text> + <xsl:text> .then(this.spread_json_data_bound) +</xsl:text> + <xsl:text> .catch(this.fetch_error_bound); +</xsl:text> + <xsl:text> }); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> unsub(){ +</xsl:text> + <xsl:text> this.abort_controller.abort(); +</xsl:text> + <xsl:text> super.unsub(); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> sub(...args){ +</xsl:text> + <xsl:text> this.cache[0] = undefined; +</xsl:text> + <xsl:text> super.sub(...args); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> dispatch(value, oldval, index) { +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> if(this.cache[index] != value) +</xsl:text> + <xsl:text> this.cache[index] = value; +</xsl:text> + <xsl:text> else +</xsl:text> + <xsl:text> return; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> if(!this.promised){ +</xsl:text> + <xsl:text> this.promised = true; +</xsl:text> + <xsl:text> this.do_http_request().finally(() => { +</xsl:text> + <xsl:text> this.promised = false; +</xsl:text> + <xsl:text> }); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> make_on_click(...options){ +</xsl:text> + <xsl:text> let that = this; +</xsl:text> + <xsl:text> return function(evt){ +</xsl:text> + <xsl:text> that.do_http_request(...options); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> // on_click(evt, ...options) { +</xsl:text> + <xsl:text> // this.do_http_request(...options); +</xsl:text> + <xsl:text> // } +</xsl:text> + <xsl:text>} +</xsl:text> + </xsl:template> + <xsl:template mode="json_table_elt_render" match="svg:*"> + <xsl:message terminate="yes"> + <xsl:text>JsonTable Widget can't contain element of type </xsl:text> + <xsl:value-of select="local-name()"/> + <xsl:text>.</xsl:text> + </xsl:message> + </xsl:template> + <xsl:variable name="hmi_textstylelists_descs" select="$parsed_widgets/widget[@type = 'TextStyleList']"/> + <xsl:variable name="hmi_textstylelists" select="$hmi_elements[@id = $hmi_textstylelists_descs/@id]"/> + <xsl:variable name="textstylelist_related"> + <xsl:for-each select="$hmi_textstylelists"> + <list> + <xsl:attribute name="listid"> + <xsl:value-of select="@id"/> + </xsl:attribute> + <xsl:for-each select="func:refered_elements(.)"> + <elt> + <xsl:attribute name="eltid"> + <xsl:value-of select="@id"/> + </xsl:attribute> + </elt> + </xsl:for-each> + </list> + </xsl:for-each> + </xsl:variable> + <xsl:variable name="textstylelist_related_ns" select="exsl:node-set($textstylelist_related)"/> + <func:function name="func:json_expressions"> + <xsl:param name="expressions"/> + <xsl:param name="label"/> + <xsl:choose> + <xsl:when test="$label"> + <xsl:variable name="suffixes" select="str:split($label)"/> + <xsl:variable name="res"> + <xsl:for-each select="$suffixes"> + <expression> + <xsl:variable name="suffix" select="."/> + <xsl:variable name="pos" select="position()"/> + <xsl:variable name="expr" select="$expressions[position() <= $pos][last()]/expression"/> + <xsl:choose> + <xsl:when test="contains($suffix,'=')"> + <xsl:variable name="name" select="substring-before($suffix,'=')"/> + <xsl:if test="$expr/@name[. != $name]"> + <xsl:message terminate="yes"> + <xsl:text>JsonTable : missplaced '=' or inconsistent names in Json data expressions.</xsl:text> + </xsl:message> + </xsl:if> + <xsl:attribute name="name"> + <xsl:value-of select="$name"/> + </xsl:attribute> + <xsl:attribute name="content"> + <xsl:value-of select="$expr/@content"/> + <xsl:value-of select="substring-after($suffix,'=')"/> + </xsl:attribute> + </xsl:when> + <xsl:otherwise> + <xsl:copy-of select="$expr/@name"/> + <xsl:attribute name="content"> + <xsl:value-of select="$expr/@content"/> + <xsl:value-of select="$suffix"/> + </xsl:attribute> + </xsl:otherwise> + </xsl:choose> + </expression> + </xsl:for-each> + </xsl:variable> + <func:result select="exsl:node-set($res)"/> + </xsl:when> + <xsl:otherwise> + <func:result select="$expressions"/> + </xsl:otherwise> + </xsl:choose> + </func:function> + <xsl:variable name="initexpr"> + <expression> + <xsl:attribute name="content"> + <xsl:text>jdata</xsl:text> + </xsl:attribute> + </expression> + </xsl:variable> + <xsl:variable name="initexpr_ns" select="exsl:node-set($initexpr)"/> + <xsl:template mode="json_table_elt_render" match="svg:use"> + <xsl:param name="expressions"/> + <xsl:variable name="targetid" select="substring-after(@xlink:href,'#')"/> + <xsl:variable name="from_list" select="$hmi_lists[(@id | */@id) = $targetid]"/> + <xsl:choose> + <xsl:when test="count($from_list) > 0"> + <xsl:text> id("</xsl:text> + <xsl:value-of select="@id"/> + <xsl:text>").setAttribute("xlink:href", +</xsl:text> + <xsl:text> "#"+hmi_widgets["</xsl:text> + <xsl:value-of select="$from_list/@id"/> + <xsl:text>"].items[</xsl:text> + <xsl:value-of select="$expressions/expression[1]/@content"/> + <xsl:text>]); +</xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:message terminate="no"> + <xsl:text>Clones (svg:use) in JsonTable Widget must point to a valid HMI:List widget or item. Reference "</xsl:text> + <xsl:value-of select="@xlink:href"/> + <xsl:text>" is not valid and will not be updated.</xsl:text> + </xsl:message> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + <xsl:template mode="json_table_elt_render" match="svg:text"> + <xsl:param name="expressions"/> + <xsl:variable name="value_expr" select="$expressions/expression[1]/@content"/> + <xsl:variable name="original" select="@original"/> + <xsl:variable name="from_textstylelist" select="$textstylelist_related_ns/list[elt/@eltid = $original]"/> + <xsl:choose> + <xsl:when test="count($from_textstylelist) > 0"> + <xsl:variable name="content_expr" select="$expressions/expression[2]/@content"/> + <xsl:if test="string-length($content_expr) = 0 or $expressions/expression[2]/@name != 'textContent'"> + <xsl:message terminate="yes"> + <xsl:text>Clones (svg:use) in JsonTable Widget pointing to a HMI:TextStyleList widget or item must have a "textContent=.someVal" assignement following value expression in label.</xsl:text> + </xsl:message> + </xsl:if> + <xsl:text> { +</xsl:text> + <xsl:text> let elt = id("</xsl:text> + <xsl:value-of select="@id"/> + <xsl:text>"); +</xsl:text> + <xsl:text> elt.textContent = String(</xsl:text> + <xsl:value-of select="$content_expr"/> + <xsl:text>); +</xsl:text> + <xsl:text> elt.style = hmi_widgets["</xsl:text> + <xsl:value-of select="$from_textstylelist/@listid"/> + <xsl:text>"].styles[</xsl:text> + <xsl:value-of select="$value_expr"/> + <xsl:text>]; +</xsl:text> + <xsl:text> } +</xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:text> id("</xsl:text> + <xsl:value-of select="@id"/> + <xsl:text>").textContent = String(</xsl:text> + <xsl:value-of select="$value_expr"/> + <xsl:text>); +</xsl:text> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + <func:function name="func:filter_non_widget_label"> + <xsl:param name="elt"/> + <xsl:param name="widget_elts"/> + <xsl:variable name="eltid"> + <xsl:choose> + <xsl:when test="$elt/@original"> + <xsl:value-of select="$elt/@original"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$elt/@id"/> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + <func:result select="$widget_elts[@id=$eltid]/@inkscape:label"/> + </func:function> + <xsl:template mode="json_table_render_except_comments" match="svg:*"> + <xsl:param name="expressions"/> + <xsl:param name="widget_elts"/> + <xsl:variable name="label" select="func:filter_non_widget_label(., $widget_elts)"/> + <xsl:if test="not(starts-with($label,'#'))"> + <xsl:apply-templates mode="json_table_render" select="."> + <xsl:with-param name="expressions" select="$expressions"/> + <xsl:with-param name="widget_elts" select="$widget_elts"/> + <xsl:with-param name="label" select="$label"/> + </xsl:apply-templates> + </xsl:if> + </xsl:template> + <xsl:template mode="json_table_render" match="svg:*"> + <xsl:param name="expressions"/> + <xsl:param name="widget_elts"/> + <xsl:param name="label"/> + <xsl:variable name="new_expressions" select="func:json_expressions($expressions, $label)"/> + <xsl:variable name="elt" select="."/> + <xsl:for-each select="$new_expressions/expression[position() > 1][starts-with(@name,'onClick')]"> + <xsl:text> id("</xsl:text> + <xsl:value-of select="$elt/@id"/> + <xsl:text>").onclick = this.make_on_click('</xsl:text> + <xsl:value-of select="@name"/> + <xsl:text>', </xsl:text> + <xsl:value-of select="@content"/> + <xsl:text>); +</xsl:text> + </xsl:for-each> + <xsl:apply-templates mode="json_table_elt_render" select="."> + <xsl:with-param name="expressions" select="$new_expressions"/> + </xsl:apply-templates> + </xsl:template> + <xsl:template mode="json_table_render" match="svg:g"> + <xsl:param name="expressions"/> + <xsl:param name="widget_elts"/> + <xsl:param name="label"/> + <xsl:variable name="varprefix"> + <xsl:text>obj_</xsl:text> + <xsl:value-of select="@id"/> + <xsl:text>_</xsl:text> + </xsl:variable> + <xsl:text> try { +</xsl:text> + <xsl:for-each select="$expressions/expression"> + <xsl:text> let </xsl:text> + <xsl:value-of select="$varprefix"/> + <xsl:value-of select="position()"/> + <xsl:text> = </xsl:text> + <xsl:value-of select="@content"/> + <xsl:text>; +</xsl:text> + <xsl:text> if(</xsl:text> + <xsl:value-of select="$varprefix"/> + <xsl:value-of select="position()"/> + <xsl:text> == undefined) { +</xsl:text> + <xsl:text> throw null; +</xsl:text> + <xsl:text> } +</xsl:text> + </xsl:for-each> + <xsl:variable name="new_expressions"> + <xsl:for-each select="$expressions/expression"> + <xsl:copy> + <xsl:copy-of select="@name"/> + <xsl:attribute name="content"> + <xsl:value-of select="$varprefix"/> + <xsl:value-of select="position()"/> + </xsl:attribute> + </xsl:copy> + </xsl:for-each> + </xsl:variable> + <xsl:text> id("</xsl:text> + <xsl:value-of select="@id"/> + <xsl:text>").style = "</xsl:text> + <xsl:value-of select="@style"/> + <xsl:text>"; +</xsl:text> + <xsl:apply-templates mode="json_table_render_except_comments" select="*"> + <xsl:with-param name="expressions" select="func:json_expressions(exsl:node-set($new_expressions), $label)"/> + <xsl:with-param name="widget_elts" select="$widget_elts"/> + </xsl:apply-templates> + <xsl:text> } catch(err) { +</xsl:text> + <xsl:text> id("</xsl:text> + <xsl:value-of select="@id"/> + <xsl:text>").style = "display:none"; +</xsl:text> + <xsl:text> } +</xsl:text> + </xsl:template> + <xsl:template mode="widget_defs" match="widget[@type='JsonTable']"> + <xsl:param name="hmi_element"/> + <xsl:call-template name="defs_by_labels"> + <xsl:with-param name="hmi_element" select="$hmi_element"/> + <xsl:with-param name="labels"> + <xsl:text>data</xsl:text> + </xsl:with-param> + </xsl:call-template> + <xsl:variable name="data_elt" select="$result_svg_ns//*[@id = $hmi_element/@id]/*[@inkscape:label = 'data']"/> + <xsl:text> visible: </xsl:text> + <xsl:value-of select="count($data_elt/*[@inkscape:label])"/> + <xsl:text>, +</xsl:text> + <xsl:text> spread_json_data: function(janswer) { +</xsl:text> + <xsl:text> let [range,position,jdata] = janswer; +</xsl:text> + <xsl:text> [[1, range], [2, position], [3, this.visible]].map(([i,v]) => { +</xsl:text> + <xsl:text> this.apply_hmi_value(i,v); +</xsl:text> + <xsl:text> this.cache[i] = v; +</xsl:text> + <xsl:text> }); +</xsl:text> + <xsl:apply-templates mode="json_table_render_except_comments" select="$data_elt"> + <xsl:with-param name="expressions" select="$initexpr_ns"/> + <xsl:with-param name="widget_elts" select="$hmi_element/*[@inkscape:label = 'data']/descendant::svg:*"/> + </xsl:apply-templates> + <xsl:text> }, +</xsl:text> + <xsl:text> init() { +</xsl:text> + <xsl:text> this.init_common(); +</xsl:text> + <xsl:for-each select="$hmi_element/*[starts-with(@inkscape:label,'action_')]"> + <xsl:text> id("</xsl:text> + <xsl:value-of select="@id"/> + <xsl:text>").onclick = this.make_on_click("</xsl:text> + <xsl:value-of select="func:escape_quotes(@inkscape:label)"/> + <xsl:text>"); +</xsl:text> + </xsl:for-each> + <xsl:text> } +</xsl:text> + </xsl:template> + <xsl:template mode="widget_class" match="widget[@type='Jump']"> + <xsl:text> class JumpWidget extends Widget{ +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> activable = false; +</xsl:text> + <xsl:text> active = false; +</xsl:text> + <xsl:text> disabled = false; +</xsl:text> + <xsl:text> frequency = 2; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> update_activity() { +</xsl:text> + <xsl:text> if(this.active) { +</xsl:text> + <xsl:text> /* show active */ +</xsl:text> + <xsl:text> this.active_elt.setAttribute("style", this.active_elt_style); +</xsl:text> + <xsl:text> /* hide inactive */ +</xsl:text> + <xsl:text> this.inactive_elt.setAttribute("style", "display:none"); +</xsl:text> + <xsl:text> } else { +</xsl:text> + <xsl:text> /* show inactive */ +</xsl:text> + <xsl:text> this.inactive_elt.setAttribute("style", this.inactive_elt_style); +</xsl:text> + <xsl:text> /* hide active */ +</xsl:text> + <xsl:text> this.active_elt.setAttribute("style", "display:none"); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> make_on_click() { +</xsl:text> + <xsl:text> let that = this; +</xsl:text> + <xsl:text> const name = this.args[0]; +</xsl:text> + <xsl:text> return function(evt){ +</xsl:text> + <xsl:text> /* TODO: suport path pointing to local variable whom value +</xsl:text> + <xsl:text> would be an HMI_TREE index to jump to a relative page */ +</xsl:text> + <xsl:text> const index = that.indexes.length > 0 ? that.indexes[0] + that.offset : undefined; +</xsl:text> + <xsl:text> switch_page(name, index); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> notify_page_change(page_name, index) { +</xsl:text> + <xsl:text> if(this.activable) { +</xsl:text> + <xsl:text> const ref_index = this.indexes.length > 0 ? this.indexes[0] + this.offset : undefined; +</xsl:text> + <xsl:text> const ref_name = this.args[0]; +</xsl:text> + <xsl:text> this.active = ((ref_name == undefined || ref_name == page_name) && index == ref_index); +</xsl:text> + <xsl:text> this.update_activity(); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> dispatch(value) { +</xsl:text> + <xsl:text> this.disabled = !Number(value); +</xsl:text> + <xsl:text> if(this.disabled) { +</xsl:text> + <xsl:text> /* show disabled */ +</xsl:text> + <xsl:text> this.disabled_elt.setAttribute("style", this.disabled_elt_style); +</xsl:text> + <xsl:text> /* hide inactive */ +</xsl:text> + <xsl:text> this.inactive_elt.setAttribute("style", "display:none"); +</xsl:text> + <xsl:text> /* hide active */ +</xsl:text> + <xsl:text> this.active_elt.setAttribute("style", "display:none"); +</xsl:text> + <xsl:text> } else { +</xsl:text> + <xsl:text> /* hide disabled */ +</xsl:text> + <xsl:text> this.disabled_elt.setAttribute("style", "display:none"); +</xsl:text> + <xsl:text> this.update_activity(); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + </xsl:template> + <xsl:template mode="widget_defs" match="widget[@type='Jump']"> + <xsl:param name="hmi_element"/> + <xsl:variable name="activity"> + <xsl:call-template name="defs_by_labels"> + <xsl:with-param name="hmi_element" select="$hmi_element"/> + <xsl:with-param name="labels"> + <xsl:text>active inactive</xsl:text> + </xsl:with-param> + <xsl:with-param name="mandatory" select="'no'"/> + </xsl:call-template> + </xsl:variable> + <xsl:variable name="have_activity" select="string-length($activity)>0"/> + <xsl:value-of select="$activity"/> + <xsl:variable name="disability"> + <xsl:call-template name="defs_by_labels"> + <xsl:with-param name="hmi_element" select="$hmi_element"/> + <xsl:with-param name="labels"> + <xsl:text>disabled</xsl:text> + </xsl:with-param> + <xsl:with-param name="mandatory" select="'no'"/> + </xsl:call-template> + </xsl:variable> + <xsl:variable name="have_disability" select="$have_activity and string-length($disability)>0"/> + <xsl:value-of select="$disability"/> + <xsl:text> init: function() { +</xsl:text> + <xsl:text> this.element.onclick = this.make_on_click(); +</xsl:text> + <xsl:if test="$have_activity"> + <xsl:text> this.active_elt_style = this.active_elt.getAttribute("style"); +</xsl:text> + <xsl:text> this.inactive_elt_style = this.inactive_elt.getAttribute("style"); +</xsl:text> + <xsl:text> this.activable = true; +</xsl:text> + </xsl:if> + <xsl:choose> + <xsl:when test="$have_disability"> + <xsl:text> this.disabled_elt_style = this.disabled_elt.getAttribute("style"); +</xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:text> this.unsubscribable = true; +</xsl:text> + </xsl:otherwise> + </xsl:choose> + <xsl:text> }, +</xsl:text> + </xsl:template> + <xsl:template mode="per_page_widget_template" match="widget[@type='Jump']"> + <xsl:param name="page_desc"/> + <xsl:if test="path"> + <xsl:variable name="target_page_name"> + <xsl:choose> + <xsl:when test="arg"> + <xsl:value-of select="arg[1]/@value"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$page_desc/arg[1]/@value"/> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:variable name="target_page_path"> + <xsl:choose> + <xsl:when test="arg"> + <xsl:value-of select="$hmi_pages_descs[arg[1]/@value = $target_page_name]/path[1]/@value"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$page_desc/path[1]/@value"/> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:if test="not(func:same_class_paths($target_page_path, path[1]/@value))"> + <xsl:message terminate="yes"> + <xsl:text>Jump id="</xsl:text> + <xsl:value-of select="@id"/> + <xsl:text>" to page "</xsl:text> + <xsl:value-of select="$target_page_name"/> + <xsl:text>" with incompatible path "</xsl:text> + <xsl:value-of select="path[1]/@value"/> + <xsl:text> (must be same class as "</xsl:text> + <xsl:value-of select="$target_page_path"/> + <xsl:text>")</xsl:text> + </xsl:message> + </xsl:if> + </xsl:if> + </xsl:template> + <declarations:jump/> + <xsl:template match="declarations:jump"> + <xsl:text> +</xsl:text> + <xsl:text>/* </xsl:text> + <xsl:value-of select="local-name()"/> + <xsl:text> */ +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>var jumps_need_update = false; +</xsl:text> + <xsl:text>var jump_history = [[default_page, undefined]]; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>function update_jumps() { +</xsl:text> + <xsl:text> page_desc[current_visible_page].jumps.map(w=>w.notify_page_change(current_visible_page,current_page_index)); +</xsl:text> + <xsl:text> jumps_need_update = false; +</xsl:text> + <xsl:text>}; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> +</xsl:text> + </xsl:template> + <declarations:keypad/> + <xsl:template match="declarations:keypad"> + <xsl:text> +</xsl:text> + <xsl:text>/* </xsl:text> + <xsl:value-of select="local-name()"/> + <xsl:text> */ +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>var keypads = { +</xsl:text> + <xsl:for-each select="$keypads_descs"> + <xsl:variable name="keypad_id" select="@id"/> + <xsl:for-each select="arg"> + <xsl:variable name="g" select="$geometry[@Id = $keypad_id]"/> + <xsl:text> "</xsl:text> + <xsl:value-of select="@value"/> + <xsl:text>":["</xsl:text> + <xsl:value-of select="$keypad_id"/> + <xsl:text>", </xsl:text> + <xsl:value-of select="$g/@x"/> + <xsl:text>, </xsl:text> + <xsl:value-of select="$g/@y"/> + <xsl:text>], +</xsl:text> + </xsl:for-each> + </xsl:for-each> + <xsl:text>} +</xsl:text> + <xsl:text> +</xsl:text> + </xsl:template> + <xsl:template mode="widget_class" match="widget[@type='Keypad']"> + <xsl:text>class KeypadWidget extends Widget{ +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> on_key_click(symbols) { +</xsl:text> + <xsl:text> var syms = symbols.split(" "); +</xsl:text> + <xsl:text> this.shift |= this.caps; +</xsl:text> + <xsl:text> this.editstr += syms[this.shift?syms.length-1:0]; +</xsl:text> + <xsl:text> this.shift = false; +</xsl:text> + <xsl:text> this.update(); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> on_Esc_click() { +</xsl:text> + <xsl:text> end_modal.call(this); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> on_Enter_click() { +</xsl:text> + <xsl:text> let coercedval = (typeof this.initial) == "number" ? Number(this.editstr) : this.editstr; +</xsl:text> + <xsl:text> if(typeof coercedval == 'number' && isNaN(coercedval)){ +</xsl:text> + <xsl:text> // revert to initial so it explicitely shows input was ignored +</xsl:text> + <xsl:text> this.editstr = String(this.initial); +</xsl:text> + <xsl:text> this.update(); +</xsl:text> + <xsl:text> } else { +</xsl:text> + <xsl:text> let callback_obj = this.result_callback_obj; +</xsl:text> + <xsl:text> end_modal.call(this); +</xsl:text> + <xsl:text> callback_obj.edit_callback(coercedval); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> on_BackSpace_click() { +</xsl:text> + <xsl:text> this.editstr = this.editstr.slice(0,this.editstr.length-1); +</xsl:text> + <xsl:text> this.update(); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> on_Sign_click() { +</xsl:text> + <xsl:text> if(this.editstr[0] == "-") +</xsl:text> + <xsl:text> this.editstr = this.editstr.slice(1,this.editstr.length); +</xsl:text> + <xsl:text> else +</xsl:text> + <xsl:text> this.editstr = "-" + this.editstr; +</xsl:text> + <xsl:text> this.update(); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> on_NumDot_click() { +</xsl:text> + <xsl:text> if(this.editstr.indexOf(".") == "-1"){ +</xsl:text> + <xsl:text> this.editstr += "."; +</xsl:text> + <xsl:text> this.update(); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> on_Space_click() { +</xsl:text> + <xsl:text> this.editstr += " "; +</xsl:text> + <xsl:text> this.update(); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> caps = false; +</xsl:text> + <xsl:text> _caps = undefined; +</xsl:text> + <xsl:text> on_CapsLock_click() { +</xsl:text> + <xsl:text> this.caps = !this.caps; +</xsl:text> + <xsl:text> this.update(); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> shift = false; +</xsl:text> + <xsl:text> _shift = undefined; +</xsl:text> + <xsl:text> on_Shift_click() { +</xsl:text> + <xsl:text> this.shift = !this.shift; +</xsl:text> + <xsl:text> this.caps = false; +</xsl:text> + <xsl:text> this.update(); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> editstr = ""; +</xsl:text> + <xsl:text> _editstr = undefined; +</xsl:text> + <xsl:text> result_callback_obj = undefined; +</xsl:text> + <xsl:text> start_edit(info, valuetype, callback_obj, initial,size) { +</xsl:text> + <xsl:text> show_modal.call(this,size); +</xsl:text> + <xsl:text> this.editstr = String(initial); +</xsl:text> + <xsl:text> this.result_callback_obj = callback_obj; +</xsl:text> + <xsl:text> this.Info_elt.textContent = info; +</xsl:text> + <xsl:text> this.shift = false; +</xsl:text> + <xsl:text> this.caps = false; +</xsl:text> + <xsl:text> this.initial = initial; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> this.update(); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> update() { +</xsl:text> + <xsl:text> if(this.editstr != this._editstr){ +</xsl:text> + <xsl:text> this._editstr = this.editstr; +</xsl:text> + <xsl:text> this.Value_elt.textContent = this.editstr; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> if(this.Shift_sub && this.shift != this._shift){ +</xsl:text> + <xsl:text> this._shift = this.shift; +</xsl:text> + <xsl:text> (this.shift?this.activate_activable:this.inactivate_activable)(this.Shift_sub); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> if(this.CapsLock_sub && this.caps != this._caps){ +</xsl:text> + <xsl:text> this._caps = this.caps; +</xsl:text> + <xsl:text> (this.caps?this.activate_activable:this.inactivate_activable)(this.CapsLock_sub); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text>} +</xsl:text> + </xsl:template> + <xsl:template mode="widget_defs" match="widget[@type='Keypad']"> + <xsl:param name="hmi_element"/> + <xsl:call-template name="defs_by_labels"> + <xsl:with-param name="hmi_element" select="$hmi_element"/> + <xsl:with-param name="labels"> + <xsl:text>Esc Enter BackSpace Keys Info Value</xsl:text> + </xsl:with-param> + </xsl:call-template> + <xsl:call-template name="defs_by_labels"> + <xsl:with-param name="hmi_element" select="$hmi_element"/> + <xsl:with-param name="labels"> + <xsl:text>Sign Space NumDot</xsl:text> + </xsl:with-param> + <xsl:with-param name="mandatory" select="'no'"/> + </xsl:call-template> + <xsl:call-template name="defs_by_labels"> + <xsl:with-param name="hmi_element" select="$hmi_element"/> + <xsl:with-param name="labels"> + <xsl:text>CapsLock Shift</xsl:text> + </xsl:with-param> + <xsl:with-param name="mandatory" select="'no'"/> + <xsl:with-param name="subelements" select="'active inactive'"/> + </xsl:call-template> + <xsl:text> init: function() { +</xsl:text> + <xsl:for-each select="$hmi_element/*[@inkscape:label = 'Keys']/*"> + <xsl:text> id("</xsl:text> + <xsl:value-of select="@id"/> + <xsl:text>").setAttribute("onclick", "hmi_widgets['</xsl:text> + <xsl:value-of select="$hmi_element/@id"/> + <xsl:text>'].on_key_click('</xsl:text> + <xsl:value-of select="func:escape_quotes(@inkscape:label)"/> + <xsl:text>')"); +</xsl:text> + </xsl:for-each> + <xsl:for-each select="str:split('Esc Enter BackSpace Sign Space NumDot CapsLock Shift')"> + <xsl:text> if(this.</xsl:text> + <xsl:value-of select="."/> + <xsl:text>_elt) +</xsl:text> + <xsl:text> this.</xsl:text> + <xsl:value-of select="."/> + <xsl:text>_elt.setAttribute("onclick", "hmi_widgets['</xsl:text> + <xsl:value-of select="$hmi_element/@id"/> + <xsl:text>'].on_</xsl:text> + <xsl:value-of select="."/> + <xsl:text>_click()"); +</xsl:text> + </xsl:for-each> + <xsl:text> }, +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:variable name="g" select="$geometry[@Id = $hmi_element/@id]"/> + <xsl:text> coordinates: [</xsl:text> + <xsl:value-of select="$g/@x"/> + <xsl:text>, </xsl:text> + <xsl:value-of select="$g/@y"/> + <xsl:text>], +</xsl:text> + </xsl:template> + <xsl:template mode="widget_defs" match="widget[@type='List']"> + <xsl:param name="hmi_element"/> + <xsl:text> items: { +</xsl:text> + <xsl:for-each select="$hmi_element/*[@inkscape:label]"> + <xsl:text> </xsl:text> + <xsl:value-of select="@inkscape:label"/> + <xsl:text>: "</xsl:text> + <xsl:value-of select="@id"/> + <xsl:text>", +</xsl:text> + </xsl:for-each> + <xsl:text> }, +</xsl:text> + </xsl:template> + <xsl:template mode="widget_defs" match="widget[@type='TextStyleList']"> + <xsl:param name="hmi_element"/> + <xsl:text> styles: { +</xsl:text> + <xsl:for-each select="$hmi_element/*[@inkscape:label]"> + <xsl:variable name="style" select="func:refered_elements(.)[self::svg:text]/@style"/> + <xsl:text> </xsl:text> + <xsl:value-of select="@inkscape:label"/> + <xsl:text>: "</xsl:text> + <xsl:value-of select="$style"/> + <xsl:text>", +</xsl:text> + </xsl:for-each> + <xsl:text> }, +</xsl:text> + </xsl:template> + <xsl:template mode="widget_class" match="widget[@type='Meter']"> + <xsl:text>class MeterWidget extends Widget{ +</xsl:text> + <xsl:text> frequency = 10; +</xsl:text> + <xsl:text> origin = undefined; +</xsl:text> + <xsl:text> range = undefined; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> dispatch(value) { +</xsl:text> + <xsl:text> this.display_val = value; +</xsl:text> + <xsl:text> this.request_animate(); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> animate(){ +</xsl:text> + <xsl:text> if(this.value_elt) +</xsl:text> + <xsl:text> this.value_elt.textContent = String(this.display_val); +</xsl:text> + <xsl:text> let [min,max,totallength] = this.range; +</xsl:text> + <xsl:text> let length = Math.max(0,Math.min(totallength,(Number(this.display_val)-min)*totallength/(max-min))); +</xsl:text> + <xsl:text> let tip = this.range_elt.getPointAtLength(length); +</xsl:text> + <xsl:text> this.needle_elt.setAttribute('d', "M "+this.origin.x+","+this.origin.y+" "+tip.x+","+tip.y); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> init() { +</xsl:text> + <xsl:text> let [min,max] = [[this.min_elt,0],[this.max_elt,100]].map(([elt,def],i)=>elt? +</xsl:text> + <xsl:text> Number(elt.textContent) : +</xsl:text> + <xsl:text> this.args.length >= i+1 ? this.args[i] : def); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> this.range = [min, max, this.range_elt.getTotalLength()] +</xsl:text> + <xsl:text> this.origin = this.needle_elt.getPointAtLength(0); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>} +</xsl:text> + </xsl:template> + <xsl:template mode="widget_defs" match="widget[@type='Meter']"> + <xsl:param name="hmi_element"/> + <xsl:call-template name="defs_by_labels"> + <xsl:with-param name="hmi_element" select="$hmi_element"/> + <xsl:with-param name="labels"> + <xsl:text>needle range</xsl:text> + </xsl:with-param> + </xsl:call-template> + <xsl:call-template name="defs_by_labels"> + <xsl:with-param name="hmi_element" select="$hmi_element"/> + <xsl:with-param name="labels"> + <xsl:text>value min max</xsl:text> + </xsl:with-param> + <xsl:with-param name="mandatory" select="'no'"/> + </xsl:call-template> + </xsl:template> + <xsl:template mode="widget_class" match="widget[@type='MultiState']"> + <xsl:text>class MultiStateWidget extends Widget{ +</xsl:text> + <xsl:text> frequency = 5; +</xsl:text> + <xsl:text> state = 0; +</xsl:text> + <xsl:text> dispatch(value) { +</xsl:text> + <xsl:text> this.state = value; +</xsl:text> + <xsl:text> for(let choice of this.choices){ +</xsl:text> + <xsl:text> if(this.state != choice.value){ +</xsl:text> + <xsl:text> choice.elt.setAttribute("style", "display:none"); +</xsl:text> + <xsl:text> } else { +</xsl:text> + <xsl:text> choice.elt.setAttribute("style", choice.style); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> on_click(evt) { +</xsl:text> + <xsl:text> //get current selected value +</xsl:text> + <xsl:text> let next_ind; +</xsl:text> + <xsl:text> for(next_ind=0; next_ind<this.choices.length; next_ind++){ +</xsl:text> + <xsl:text> if(this.state == this.choices[next_ind].value){ +</xsl:text> + <xsl:text> next_ind = next_ind + 1; +</xsl:text> + <xsl:text> break; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> //get next selected value +</xsl:text> + <xsl:text> if(this.choices.length > next_ind){ +</xsl:text> + <xsl:text> this.state = this.choices[next_ind].value; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> else{ +</xsl:text> + <xsl:text> this.state = this.choices[0].value; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> //post value to plc +</xsl:text> + <xsl:text> this.apply_hmi_value(0, this.state); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> init() { +</xsl:text> + <xsl:text> this.element.setAttribute("onclick", "hmi_widgets['"+this.element_id+"'].on_click(evt)"); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text>} +</xsl:text> + </xsl:template> + <xsl:template mode="widget_defs" match="widget[@type='MultiState']"> + <xsl:param name="hmi_element"/> + <xsl:text> choices: [ +</xsl:text> + <xsl:variable name="regex" select="'^("[^"].*"|\-?[0-9]+|false|true)(#.*)?$'"/> + <xsl:for-each select="$result_svg_ns//*[@id = $hmi_element/@id]//*[regexp:test(@inkscape:label,$regex)]"> + <xsl:variable name="literal" select="regexp:match(@inkscape:label,$regex)[2]"/> + <xsl:text> { +</xsl:text> + <xsl:text> elt:id("</xsl:text> + <xsl:value-of select="@id"/> + <xsl:text>"), +</xsl:text> + <xsl:text> style:"</xsl:text> + <xsl:value-of select="@style"/> + <xsl:text>", +</xsl:text> + <xsl:text> value:</xsl:text> + <xsl:value-of select="$literal"/> + <xsl:text> +</xsl:text> + <xsl:text> }</xsl:text> + <xsl:if test="position()!=last()"> + <xsl:text>,</xsl:text> + </xsl:if> + <xsl:text> +</xsl:text> + </xsl:for-each> + <xsl:text> ], +</xsl:text> + </xsl:template> + <xsl:template mode="widget_class" match="widget[@type='ScrollBar']"> + <xsl:text>class ScrollBarWidget extends Widget{ +</xsl:text> + <xsl:text> frequency = 10; +</xsl:text> + <xsl:text> position = undefined; +</xsl:text> + <xsl:text> range = undefined; +</xsl:text> + <xsl:text> size = undefined; +</xsl:text> + <xsl:text> mincursize = 0.1; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> dispatch(value,oldval, index) { +</xsl:text> + <xsl:text> switch(index) { +</xsl:text> + <xsl:text> case 0: +</xsl:text> + <xsl:text> this.range = Math.max(1,value); +</xsl:text> + <xsl:text> break; +</xsl:text> + <xsl:text> case 1: +</xsl:text> + <xsl:text> this.position = value; +</xsl:text> + <xsl:text> break; +</xsl:text> + <xsl:text> case 2: +</xsl:text> + <xsl:text> this.size = value; +</xsl:text> + <xsl:text> break; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> this.request_animate(); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> get_ratios() { +</xsl:text> + <xsl:text> let range = this.range; +</xsl:text> + <xsl:text> let size = Math.max(this.range * this.mincursize, Math.min(this.size, range)); +</xsl:text> + <xsl:text> let maxh = this.range_elt.height.baseVal.value; +</xsl:text> + <xsl:text> let pixels = maxh; +</xsl:text> + <xsl:text> let units = range; +</xsl:text> + <xsl:text> return [size, maxh, range, pixels, units]; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> animate(){ +</xsl:text> + <xsl:text> if(this.position == undefined || this.range == undefined || this.size == undefined) +</xsl:text> + <xsl:text> return; +</xsl:text> + <xsl:text> let [size, maxh, range, pixels, units] = this.get_ratios(); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> let new_y = this.range_elt.y.baseVal.value + Math.round(Math.min(this.position,range-size) * pixels / units); +</xsl:text> + <xsl:text> let new_height = Math.round(maxh * size/range); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> this.cursor_elt.y.baseVal.value = new_y; +</xsl:text> + <xsl:text> this.cursor_elt.height.baseVal.value = new_height; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> init_mandatory() { +</xsl:text> + <xsl:text> this.cursor_elt.onpointerdown = () => this.on_cursor_down(); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> this.bound_drag = this.drag.bind(this); +</xsl:text> + <xsl:text> this.bound_drop = this.drop.bind(this); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> apply_position(position){ +</xsl:text> + <xsl:text> this.position = Math.round(Math.max(Math.min(position, this.range - this.size), 0)); +</xsl:text> + <xsl:text> this.apply_hmi_value(1, this.position); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> on_page_click(is_up){ +</xsl:text> + <xsl:text> this.apply_position(is_up ? this.position-this.size +</xsl:text> + <xsl:text> : this.position+this.size); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> on_cursor_down(e){ +</xsl:text> + <xsl:text> // get scrollbar -> root transform +</xsl:text> + <xsl:text> let ctm = this.range_elt.getCTM(); +</xsl:text> + <xsl:text> // relative motion -> discard translation +</xsl:text> + <xsl:text> ctm.e = 0; +</xsl:text> + <xsl:text> ctm.f = 0; +</xsl:text> + <xsl:text> // root -> scrollbar transform +</xsl:text> + <xsl:text> this.invctm = ctm.inverse(); +</xsl:text> + <xsl:text> svg_root.addEventListener("pointerup", this.bound_drop, true); +</xsl:text> + <xsl:text> svg_root.addEventListener("pointermove", this.bound_drag, true); +</xsl:text> + <xsl:text> this.dragpos = this.position; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> drop(e) { +</xsl:text> + <xsl:text> svg_root.removeEventListener("pointerup", this.bound_drop, true); +</xsl:text> + <xsl:text> svg_root.removeEventListener("pointermove", this.bound_drag, true); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> drag(e) { +</xsl:text> + <xsl:text> let [size, maxh, range, pixels, units] = this.get_ratios(); +</xsl:text> + <xsl:text> if(pixels == 0) return; +</xsl:text> + <xsl:text> let point = new DOMPoint(e.movementX, e.movementY); +</xsl:text> + <xsl:text> let movement = point.matrixTransform(this.invctm).y; +</xsl:text> + <xsl:text> this.dragpos += movement * units / pixels; +</xsl:text> + <xsl:text> this.apply_position(this.dragpos); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text>} +</xsl:text> + </xsl:template> + <xsl:template mode="widget_defs" match="widget[@type='ScrollBar']"> + <xsl:param name="hmi_element"/> + <xsl:call-template name="defs_by_labels"> + <xsl:with-param name="hmi_element" select="$hmi_element"/> + <xsl:with-param name="labels"> + <xsl:text>cursor range</xsl:text> + </xsl:with-param> + </xsl:call-template> + <xsl:variable name="pagebuttons"> + <xsl:call-template name="defs_by_labels"> + <xsl:with-param name="hmi_element" select="$hmi_element"/> + <xsl:with-param name="labels"> + <xsl:text>pageup pagedown</xsl:text> + </xsl:with-param> + <xsl:with-param name="mandatory" select="'no'"/> + </xsl:call-template> + </xsl:variable> + <xsl:variable name="have_pagebuttons" select="string-length($pagebuttons)>0"/> + <xsl:value-of select="$pagebuttons"/> + <xsl:text> init: function() { +</xsl:text> + <xsl:text> this.init_mandatory(); +</xsl:text> + <xsl:if test="$have_pagebuttons"> + <xsl:text> this.pageup_elt.onclick = () => this.on_page_click(true); +</xsl:text> + <xsl:text> this.pagedown_elt.onclick = () => this.on_page_click(false); +</xsl:text> + </xsl:if> + <xsl:text> }, +</xsl:text> + </xsl:template> + <xsl:template mode="widget_class" match="widget[@type='Slider']"> + <xsl:text>class SliderWidget extends Widget{ +</xsl:text> + <xsl:text> frequency = 5; +</xsl:text> + <xsl:text> range = undefined; +</xsl:text> + <xsl:text> handle_orig = undefined; +</xsl:text> + <xsl:text> scroll_size = undefined; +</xsl:text> + <xsl:text> scroll_range = 0; +</xsl:text> + <xsl:text> scroll_visible = 7; +</xsl:text> + <xsl:text> min_size = 0.07; +</xsl:text> + <xsl:text> fi = undefined; +</xsl:text> + <xsl:text> curr_value = 0; +</xsl:text> + <xsl:text> drag = false; +</xsl:text> + <xsl:text> enTimer = false; +</xsl:text> + <xsl:text> handle_click = undefined; +</xsl:text> + <xsl:text> last_drag = false; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> dispatch(value,oldval, index) { +</xsl:text> + <xsl:text> if (index == 0){ +</xsl:text> + <xsl:text> let [min,max,start,totallength] = this.range; +</xsl:text> + <xsl:text> //save current value inside widget +</xsl:text> + <xsl:text> this.curr_value = value; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> //check if in range +</xsl:text> + <xsl:text> if (this.curr_value > max){ +</xsl:text> + <xsl:text> this.curr_value = max; +</xsl:text> + <xsl:text> this.apply_hmi_value(0, this.curr_value); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> else if (this.curr_value < min){ +</xsl:text> + <xsl:text> this.curr_value = min; +</xsl:text> + <xsl:text> this.apply_hmi_value(0, this.curr_value); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> if(this.value_elt) +</xsl:text> + <xsl:text> this.value_elt.textContent = String(value); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> else if(index == 1){ +</xsl:text> + <xsl:text> this.scroll_range = value; +</xsl:text> + <xsl:text> this.set_scroll(); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> else if(index == 2){ +</xsl:text> + <xsl:text> this.scroll_visible = value; +</xsl:text> + <xsl:text> this.set_scroll(); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> //don't update if draging and setpoint ghost doesn't exist +</xsl:text> + <xsl:text> if(!this.drag || (this.setpoint_elt != undefined)){ +</xsl:text> + <xsl:text> this.update_DOM(this.curr_value, this.handle_elt); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> set_scroll(){ +</xsl:text> + <xsl:text> //check if range is bigger than visible and set scroll size +</xsl:text> + <xsl:text> if(this.scroll_range > this.scroll_visible){ +</xsl:text> + <xsl:text> this.scroll_size = this.scroll_range - this.scroll_visible; +</xsl:text> + <xsl:text> this.range[0] = 0; +</xsl:text> + <xsl:text> this.range[1] = this.scroll_size; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> else{ +</xsl:text> + <xsl:text> this.scroll_size = 1; +</xsl:text> + <xsl:text> this.range[0] = 0; +</xsl:text> + <xsl:text> this.range[1] = 1; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> update_DOM(value, elt){ +</xsl:text> + <xsl:text> let [min,max,start,totallength] = this.range; +</xsl:text> + <xsl:text> // check if handle is resizeable +</xsl:text> + <xsl:text> if (this.scroll_size != undefined){ //size changes +</xsl:text> + <xsl:text> //get parameters +</xsl:text> + <xsl:text> let length = Math.max(min,Math.min(max,(Number(value)-min)*max/(max-min))); +</xsl:text> + <xsl:text> let tip = this.range_elt.getPointAtLength(length); +</xsl:text> + <xsl:text> let handle_min = totallength*this.min_size; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> let step = 1; +</xsl:text> + <xsl:text> //check if range is bigger than max displayed and recalculate step +</xsl:text> + <xsl:text> if ((totallength/handle_min) < (max-min+1)){ +</xsl:text> + <xsl:text> step = (max-min+1)/(totallength/handle_min-1); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> let kx,ky,offseY,offseX = undefined; +</xsl:text> + <xsl:text> //scale on x or y axes +</xsl:text> + <xsl:text> if (this.fi > 0.75){ +</xsl:text> + <xsl:text> //get scale factor +</xsl:text> + <xsl:text> if(step > 1){ +</xsl:text> + <xsl:text> ky = handle_min/this.handle_orig.height; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> else{ +</xsl:text> + <xsl:text> ky = (totallength-handle_min*(max-min))/this.handle_orig.height; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> kx = 1; +</xsl:text> + <xsl:text> //get 0 offset to stay inside range +</xsl:text> + <xsl:text> offseY = start.y - (this.handle_orig.height + this.handle_orig.y) * ky; +</xsl:text> + <xsl:text> offseX = 0; +</xsl:text> + <xsl:text> //get distance from value +</xsl:text> + <xsl:text> tip.y =this.range_elt.getPointAtLength(0).y - length/step *handle_min; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> else{ +</xsl:text> + <xsl:text> //get scale factor +</xsl:text> + <xsl:text> if(step > 1){ +</xsl:text> + <xsl:text> kx = handle_min/this.handle_orig.width; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> else{ +</xsl:text> + <xsl:text> kx = (totallength-handle_min*(max-min))/this.handle_orig.width; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> ky = 1; +</xsl:text> + <xsl:text> //get 0 offset to stay inside range +</xsl:text> + <xsl:text> offseX = start.x - (this.handle_orig.x * kx); +</xsl:text> + <xsl:text> offseY = 0; +</xsl:text> + <xsl:text> //get distance from value +</xsl:text> + <xsl:text> tip.x =this.range_elt.getPointAtLength(0).x + length/step *handle_min; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> elt.setAttribute('transform',"matrix("+(kx)+" 0 0 "+(ky)+" "+(tip.x-start.x+offseX)+" "+(tip.y-start.y+offseY)+")"); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> else{ //size stays the same +</xsl:text> + <xsl:text> let length = Math.max(0,Math.min(totallength,(Number(value)-min)*totallength/(max-min))); +</xsl:text> + <xsl:text> let tip = this.range_elt.getPointAtLength(length); +</xsl:text> + <xsl:text> elt.setAttribute('transform',"translate("+(tip.x-start.x)+","+(tip.y-start.y)+")"); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> // show or hide ghost if exists +</xsl:text> + <xsl:text> if(this.setpoint_elt != undefined){ +</xsl:text> + <xsl:text> if(this.last_drag!= this.drag){ +</xsl:text> + <xsl:text> if(this.drag){ +</xsl:text> + <xsl:text> this.setpoint_elt.setAttribute("style", this.setpoint_style); +</xsl:text> + <xsl:text> }else{ +</xsl:text> + <xsl:text> this.setpoint_elt.setAttribute("style", "display:none"); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> this.last_drag = this.drag; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> on_release(evt) { +</xsl:text> + <xsl:text> //unbind events +</xsl:text> + <xsl:text> window.removeEventListener("touchmove", this.on_bound_drag, true); +</xsl:text> + <xsl:text> window.removeEventListener("mousemove", this.on_bound_drag, true); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> window.removeEventListener("mouseup", this.bound_on_release, true); +</xsl:text> + <xsl:text> window.removeEventListener("touchend", this.bound_on_release, true); +</xsl:text> + <xsl:text> window.removeEventListener("touchcancel", this.bound_on_release, true); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> //reset drag flag +</xsl:text> + <xsl:text> if(this.drag){ +</xsl:text> + <xsl:text> this.drag = false; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> // get final position +</xsl:text> + <xsl:text> this.update_position(evt); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> on_drag(evt){ +</xsl:text> + <xsl:text> //ignore drag event for X amount of time and if not selected +</xsl:text> + <xsl:text> if(this.enTimer && this.drag){ +</xsl:text> + <xsl:text> this.update_position(evt); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> //reset timer +</xsl:text> + <xsl:text> this.enTimer = false; +</xsl:text> + <xsl:text> setTimeout("{hmi_widgets['"+this.element_id+"'].enTimer = true;}", 100); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> update_position(evt){ +</xsl:text> + <xsl:text> var html_dist = 0; +</xsl:text> + <xsl:text> let [min,max,start,totallength] = this.range; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> //calculate size of widget in html +</xsl:text> + <xsl:text> var range_borders = this.range_elt.getBoundingClientRect(); +</xsl:text> + <xsl:text> var [minX,minY,maxX,maxY] = [range_borders.left,range_borders.bottom,range_borders.right,range_borders.top]; +</xsl:text> + <xsl:text> var range_length = Math.sqrt( range_borders.height*range_borders.height + range_borders.width*range_borders.width ); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> //get range and mouse coordinates +</xsl:text> + <xsl:text> var mouseX = undefined; +</xsl:text> + <xsl:text> var mouseY = undefined; +</xsl:text> + <xsl:text> if (evt.type.startsWith("touch")){ +</xsl:text> + <xsl:text> mouseX = Math.ceil(evt.touches[0].clientX); +</xsl:text> + <xsl:text> mouseY = Math.ceil(evt.touches[0].clientY); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> else{ +</xsl:text> + <xsl:text> mouseX = evt.pageX; +</xsl:text> + <xsl:text> mouseY = evt.pageY; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> // calculate position +</xsl:text> + <xsl:text> if (this.handle_click){ //if clicked on handle +</xsl:text> + <xsl:text> let moveDist = 0, resizeAdd = 0; +</xsl:text> + <xsl:text> let range_percent = 1; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> //set paramters for resizeable handle +</xsl:text> + <xsl:text> if (this.scroll_size != undefined){ +</xsl:text> + <xsl:text> // add one more object to stay inside range +</xsl:text> + <xsl:text> resizeAdd = 1; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> //chack if range is bigger than display option and +</xsl:text> + <xsl:text> // calculate percent of range with out handle +</xsl:text> + <xsl:text> if(((max/(max*this.min_size)) < (max-min+1))){ +</xsl:text> + <xsl:text> range_percent = 1-this.min_size; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> else{ +</xsl:text> + <xsl:text> range_percent = 1-(max-max*this.min_size*(max-min))/max; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> //calculate value difference on x or y axis +</xsl:text> + <xsl:text> if(this.fi > 0.7){ +</xsl:text> + <xsl:text> moveDist = ((max-min+resizeAdd)/(range_length*range_percent))*((this.handle_click[1]-mouseY)/Math.sin(this.fi)); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> else{ +</xsl:text> + <xsl:text> moveDist = ((max-min+resizeAdd)/(range_length*range_percent))*((mouseX-this.handle_click[0])/Math.cos(this.fi)); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> this.curr_value = Math.ceil(this.handle_click[2] + moveDist); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> else{ //if clicked on widget +</xsl:text> + <xsl:text> //get handle distance from mouse position +</xsl:text> + <xsl:text> if (minX > mouseX && minY < mouseY){ +</xsl:text> + <xsl:text> html_dist = 0; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> else if (maxX < mouseX && maxY > mouseY){ +</xsl:text> + <xsl:text> html_dist = range_length; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> else{ +</xsl:text> + <xsl:text> if(this.fi > 0.7){ +</xsl:text> + <xsl:text> html_dist = (minY - mouseY)/Math.sin(this.fi); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> else{ +</xsl:text> + <xsl:text> html_dist = (mouseX - minX)/Math.cos(this.fi); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> //calculate distance +</xsl:text> + <xsl:text> this.curr_value=Math.ceil((html_dist/range_length)*(this.range[1]-this.range[0])+this.range[0]); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> //check if in range and apply +</xsl:text> + <xsl:text> if (this.curr_value > max){ +</xsl:text> + <xsl:text> this.curr_value = max; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> else if (this.curr_value < min){ +</xsl:text> + <xsl:text> this.curr_value = min; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> this.apply_hmi_value(0, this.curr_value); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> //redraw handle +</xsl:text> + <xsl:text> this.request_animate(); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> animate(){ +</xsl:text> + <xsl:text> // redraw handle on screen refresh +</xsl:text> + <xsl:text> // check if setpoint(ghost) handle exsist otherwise update main handle +</xsl:text> + <xsl:text> if(this.setpoint_elt != undefined){ +</xsl:text> + <xsl:text> this.update_DOM(this.curr_value, this.setpoint_elt); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> else{ +</xsl:text> + <xsl:text> this.update_DOM(this.curr_value, this.handle_elt); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> on_select(evt){ +</xsl:text> + <xsl:text> //enable drag flag and timer +</xsl:text> + <xsl:text> this.drag = true; +</xsl:text> + <xsl:text> this.enTimer = true; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> //bind events +</xsl:text> + <xsl:text> window.addEventListener("touchmove", this.on_bound_drag, true); +</xsl:text> + <xsl:text> window.addEventListener("mousemove", this.on_bound_drag, true); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> window.addEventListener("mouseup", this.bound_on_release, true); +</xsl:text> + <xsl:text> window.addEventListener("touchend", this.bound_on_release, true); +</xsl:text> + <xsl:text> window.addEventListener("touchcancel", this.bound_on_release, true); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> // check if handle was pressed +</xsl:text> + <xsl:text> if (evt.currentTarget == this.handle_elt){ +</xsl:text> + <xsl:text> //get mouse position on the handle +</xsl:text> + <xsl:text> let mouseX = undefined; +</xsl:text> + <xsl:text> let mouseY = undefined; +</xsl:text> + <xsl:text> if (evt.type.startsWith("touch")){ +</xsl:text> + <xsl:text> mouseX = Math.ceil(evt.touches[0].clientX); +</xsl:text> + <xsl:text> mouseY = Math.ceil(evt.touches[0].clientY); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> else{ +</xsl:text> + <xsl:text> mouseX = evt.pageX; +</xsl:text> + <xsl:text> mouseY = evt.pageY; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> //save coordinates and orig value +</xsl:text> + <xsl:text> this.handle_click = [mouseX,mouseY,this.curr_value]; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> else{ +</xsl:text> + <xsl:text> // get new handle position and reset if handle was not pressed +</xsl:text> + <xsl:text> this.handle_click = undefined; +</xsl:text> + <xsl:text> this.update_position(evt); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> //prevent next events +</xsl:text> + <xsl:text> evt.stopPropagation(); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> init() { +</xsl:text> + <xsl:text> //set min max value if not defined +</xsl:text> + <xsl:text> let min = this.min_elt ? +</xsl:text> + <xsl:text> Number(this.min_elt.textContent) : +</xsl:text> + <xsl:text> this.args.length >= 1 ? this.args[0] : 0; +</xsl:text> + <xsl:text> let max = this.max_elt ? +</xsl:text> + <xsl:text> Number(this.max_elt.textContent) : +</xsl:text> + <xsl:text> this.args.length >= 2 ? this.args[1] : 100; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> // save initial parameters +</xsl:text> + <xsl:text> this.range_elt.style.strokeMiterlimit="0"; +</xsl:text> + <xsl:text> this.range = [min, max, this.range_elt.getPointAtLength(0),this.range_elt.getTotalLength()]; +</xsl:text> + <xsl:text> let start = this.range_elt.getPointAtLength(0); +</xsl:text> + <xsl:text> let end = this.range_elt.getPointAtLength(this.range_elt.getTotalLength()); +</xsl:text> + <xsl:text> this.fi = Math.atan2(start.y-end.y, end.x-start.x); +</xsl:text> + <xsl:text> this.handle_orig = this.handle_elt.getBBox(); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> //bind functions +</xsl:text> + <xsl:text> this.bound_on_select = this.on_select.bind(this); +</xsl:text> + <xsl:text> this.bound_on_release = this.on_release.bind(this); +</xsl:text> + <xsl:text> this.on_bound_drag = this.on_drag.bind(this); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> this.handle_elt.addEventListener("mousedown", this.bound_on_select); +</xsl:text> + <xsl:text> this.element.addEventListener("mousedown", this.bound_on_select); +</xsl:text> + <xsl:text> this.element.addEventListener("touchstart", this.bound_on_select); +</xsl:text> + <xsl:text> //touch recognised as page drag without next command +</xsl:text> + <xsl:text> document.body.addEventListener("touchstart", function(e){}, false); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> //save ghost style +</xsl:text> + <xsl:text> if(this.setpoint_elt != undefined){ +</xsl:text> + <xsl:text> this.setpoint_style = this.setpoint_elt.getAttribute("style"); +</xsl:text> + <xsl:text> this.setpoint_elt.setAttribute("style", "display:none"); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text>} +</xsl:text> + </xsl:template> + <xsl:template mode="widget_defs" match="widget[@type='Slider']"> + <xsl:param name="hmi_element"/> + <xsl:call-template name="defs_by_labels"> + <xsl:with-param name="hmi_element" select="$hmi_element"/> + <xsl:with-param name="labels"> + <xsl:text>handle range</xsl:text> + </xsl:with-param> + </xsl:call-template> + <xsl:call-template name="defs_by_labels"> + <xsl:with-param name="hmi_element" select="$hmi_element"/> + <xsl:with-param name="labels"> + <xsl:text>value min max setpoint</xsl:text> + </xsl:with-param> + <xsl:with-param name="mandatory" select="'no'"/> + </xsl:call-template> + <xsl:text> +</xsl:text> + </xsl:template> + <xsl:template mode="widget_class" match="widget[@type='Switch']"> + <xsl:text>class SwitchWidget extends Widget{ +</xsl:text> + <xsl:text> frequency = 5; +</xsl:text> + <xsl:text> dispatch(value) { +</xsl:text> + <xsl:text> for(let choice of this.choices){ +</xsl:text> + <xsl:text> if(value != choice.value){ +</xsl:text> + <xsl:text> choice.elt.setAttribute("style", "display:none"); +</xsl:text> + <xsl:text> } else { +</xsl:text> + <xsl:text> choice.elt.setAttribute("style", choice.style); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text>} +</xsl:text> + </xsl:template> + <xsl:template mode="widget_defs" match="widget[@type='Switch']"> + <xsl:param name="hmi_element"/> + <xsl:text> choices: [ +</xsl:text> + <xsl:variable name="regex" select="'^("[^"].*"|\-?[0-9]+|false|true)(#.*)?$'"/> + <xsl:variable name="subelts" select="$result_widgets[@id = $hmi_element/@id]//*"/> + <xsl:variable name="subwidgets" select="$subelts//*[@id = $hmi_widgets/@id]"/> + <xsl:variable name="accepted" select="$subelts[not(ancestor-or-self::*/@id = $subwidgets/@id)]"/> + <xsl:for-each select="$accepted[regexp:test(@inkscape:label,$regex)]"> + <xsl:variable name="literal" select="regexp:match(@inkscape:label,$regex)[2]"/> + <xsl:text> { +</xsl:text> + <xsl:text> elt:id("</xsl:text> + <xsl:value-of select="@id"/> + <xsl:text>"), +</xsl:text> + <xsl:text> style:"</xsl:text> + <xsl:value-of select="@style"/> + <xsl:text>", +</xsl:text> + <xsl:text> value:</xsl:text> + <xsl:value-of select="$literal"/> + <xsl:text> +</xsl:text> + <xsl:text> }</xsl:text> + <xsl:if test="position()!=last()"> + <xsl:text>,</xsl:text> + </xsl:if> + <xsl:text> +</xsl:text> + </xsl:for-each> + <xsl:text> ], +</xsl:text> + </xsl:template> + <xsl:template mode="widget_class" match="widget[@type='ToggleButton']"> + <xsl:text>class ToggleButtonWidget extends Widget{ +</xsl:text> + <xsl:text> frequency = 5; +</xsl:text> + <xsl:text> state = 0; +</xsl:text> + <xsl:text> active_style = undefined; +</xsl:text> + <xsl:text> inactive_style = undefined; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> dispatch(value) { +</xsl:text> + <xsl:text> this.state = value; +</xsl:text> + <xsl:text> //redraw toggle button +</xsl:text> + <xsl:text> this.request_animate(); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> on_click(evt) { +</xsl:text> + <xsl:text> //toggle state and apply +</xsl:text> + <xsl:text> this.state = this.state ? false : true; +</xsl:text> + <xsl:text> this.apply_hmi_value(0, this.state); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> //redraw toggle button +</xsl:text> + <xsl:text> this.request_animate(); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> activate(val) { +</xsl:text> + <xsl:text> let [active, inactive] = val ? ["none",""] : ["", "none"]; +</xsl:text> + <xsl:text> if (this.active_elt) +</xsl:text> + <xsl:text> this.active_elt.style.display = active; +</xsl:text> + <xsl:text> if (this.inactive_elt) +</xsl:text> + <xsl:text> this.inactive_elt.style.display = inactive; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> animate(){ +</xsl:text> + <xsl:text> // redraw toggle button on screen refresh +</xsl:text> + <xsl:text> this.activate(this.state); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> init() { +</xsl:text> + <xsl:text> this.activate(false); +</xsl:text> + <xsl:text> this.element.onclick = (evt) => this.on_click(evt); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text>} +</xsl:text> + </xsl:template> + <xsl:template mode="widget_defs" match="widget[@type='ToggleButton']"> + <xsl:param name="hmi_element"/> + <xsl:call-template name="defs_by_labels"> + <xsl:with-param name="hmi_element" select="$hmi_element"/> + <xsl:with-param name="labels"> + <xsl:text>active inactive</xsl:text> + </xsl:with-param> + <xsl:with-param name="mandatory" select="'no'"/> + </xsl:call-template> + </xsl:template> + <xsl:template match="/"> + <xsl:comment> + <xsl:text>Made with SVGHMI. https://beremiz.org</xsl:text> + </xsl:comment> + <html xmlns="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + <head> + <style type="text/css" media="screen"> + <xsl:value-of select="ns:GetFonts()"/> + </style> + </head> + <body style="margin:0;overflow:hidden;user-select:none;touch-action:none;"> + <xsl:copy-of select="$result_svg"/> + <script> + <xsl:text> +// +// +// Early independent declarations +// +// +</xsl:text> + <xsl:apply-templates select="document('')/*/preamble:*"/> + <xsl:text> +// +// +// Declarations depending on preamble +// +// +</xsl:text> + <xsl:apply-templates select="document('')/*/declarations:*"/> + <xsl:text> +// +// +// Order independent declaration and code +// +// +</xsl:text> + <xsl:apply-templates select="document('')/*/definitions:*"/> + <xsl:text> +// +// +// Statements that needs to be at the end +// +// +</xsl:text> + <xsl:apply-templates select="document('')/*/epilogue:*"/> + <xsl:text>// svghmi.js +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>var need_cache_apply = []; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>function dispatch_value(index, value) { +</xsl:text> + <xsl:text> let widgets = subscribers(index); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> let oldval = cache[index]; +</xsl:text> + <xsl:text> cache[index] = value; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> if(widgets.size > 0) { +</xsl:text> + <xsl:text> for(let widget of widgets){ +</xsl:text> + <xsl:text> widget.new_hmi_value(index, value, oldval); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text>}; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>function init_widgets() { +</xsl:text> + <xsl:text> Object.keys(hmi_widgets).forEach(function(id) { +</xsl:text> + <xsl:text> let widget = hmi_widgets[id]; +</xsl:text> + <xsl:text> let init = widget.init; +</xsl:text> + <xsl:text> if(typeof(init) == "function"){ +</xsl:text> + <xsl:text> try { +</xsl:text> + <xsl:text> init.call(widget); +</xsl:text> + <xsl:text> } catch(err) { +</xsl:text> + <xsl:text> console.log(err); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> }); +</xsl:text> + <xsl:text>}; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>// Open WebSocket to relative "/ws" address +</xsl:text> + <xsl:text>var ws = new WebSocket(window.location.href.replace(/^http(s?:\/\/[^\/]*)\/.*$/, 'ws$1/ws')); +</xsl:text> + <xsl:text>ws.binaryType = 'arraybuffer'; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>const dvgetters = { +</xsl:text> + <xsl:text> INT: (dv,offset) => [dv.getInt16(offset, true), 2], +</xsl:text> + <xsl:text> BOOL: (dv,offset) => [dv.getInt8(offset, true), 1], +</xsl:text> + <xsl:text> NODE: (dv,offset) => [dv.getInt8(offset, true), 1], +</xsl:text> + <xsl:text> REAL: (dv,offset) => [dv.getFloat32(offset, true), 4], +</xsl:text> + <xsl:text> STRING: (dv, offset) => { +</xsl:text> + <xsl:text> const size = dv.getInt8(offset); +</xsl:text> + <xsl:text> return [ +</xsl:text> + <xsl:text> String.fromCharCode.apply(null, new Uint8Array( +</xsl:text> + <xsl:text> dv.buffer, /* original buffer */ +</xsl:text> + <xsl:text> offset + 1, /* string starts after size*/ +</xsl:text> + <xsl:text> size /* size of string */ +</xsl:text> + <xsl:text> )), size + 1]; /* total increment */ +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text>}; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>// Apply updates recieved through ws.onmessage to subscribed widgets +</xsl:text> + <xsl:text>function apply_updates() { +</xsl:text> + <xsl:text> updates.forEach((value, index) => { +</xsl:text> + <xsl:text> dispatch_value(index, value); +</xsl:text> + <xsl:text> }); +</xsl:text> + <xsl:text> updates.clear(); +</xsl:text> + <xsl:text>} +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>// Called on requestAnimationFrame, modifies DOM +</xsl:text> + <xsl:text>var requestAnimationFrameID = null; +</xsl:text> + <xsl:text>function animate() { +</xsl:text> + <xsl:text> // Do the page swith if any one pending +</xsl:text> + <xsl:text> if(current_subscribed_page != current_visible_page){ +</xsl:text> + <xsl:text> switch_visible_page(current_subscribed_page); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> while(widget = need_cache_apply.pop()){ +</xsl:text> + <xsl:text> widget.apply_cache(); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> if(jumps_need_update) update_jumps(); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> apply_updates(); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> pending_widget_animates.forEach(widget => widget._animate()); +</xsl:text> + <xsl:text> pending_widget_animates = []; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> requestAnimationFrameID = null; +</xsl:text> + <xsl:text>} +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>function requestHMIAnimation() { +</xsl:text> + <xsl:text> if(requestAnimationFrameID == null){ +</xsl:text> + <xsl:text> requestAnimationFrameID = window.requestAnimationFrame(animate); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text>} +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>// Message reception handler +</xsl:text> + <xsl:text>// Hash is verified and HMI values updates resulting from binary parsing +</xsl:text> + <xsl:text>// are stored until browser can compute next frame, DOM is left untouched +</xsl:text> + <xsl:text>ws.onmessage = function (evt) { +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> let data = evt.data; +</xsl:text> + <xsl:text> let dv = new DataView(data); +</xsl:text> + <xsl:text> let i = 0; +</xsl:text> + <xsl:text> try { +</xsl:text> + <xsl:text> for(let hash_int of hmi_hash) { +</xsl:text> + <xsl:text> if(hash_int != dv.getUint8(i)){ +</xsl:text> + <xsl:text> throw new Error("Hash doesn't match"); +</xsl:text> + <xsl:text> }; +</xsl:text> + <xsl:text> i++; +</xsl:text> + <xsl:text> }; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> while(i < data.byteLength){ +</xsl:text> + <xsl:text> let index = dv.getUint32(i, true); +</xsl:text> + <xsl:text> i += 4; +</xsl:text> + <xsl:text> let iectype = hmitree_types[index]; +</xsl:text> + <xsl:text> if(iectype != undefined){ +</xsl:text> + <xsl:text> let dvgetter = dvgetters[iectype]; +</xsl:text> + <xsl:text> let [value, bytesize] = dvgetter(dv,i); +</xsl:text> + <xsl:text> updates.set(index, value); +</xsl:text> + <xsl:text> i += bytesize; +</xsl:text> + <xsl:text> } else { +</xsl:text> + <xsl:text> throw new Error("Unknown index "+index); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> }; +</xsl:text> + <xsl:text> // register for rendering on next frame, since there are updates +</xsl:text> + <xsl:text> requestHMIAnimation(); +</xsl:text> + <xsl:text> } catch(err) { +</xsl:text> + <xsl:text> // 1003 is for "Unsupported Data" +</xsl:text> + <xsl:text> // ws.close(1003, err.message); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> // TODO : remove debug alert ? +</xsl:text> + <xsl:text> alert("Error : "+err.message+"\nHMI will be reloaded."); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> // force reload ignoring cache +</xsl:text> + <xsl:text> location.reload(true); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text>}; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>hmi_hash_u8 = new Uint8Array(hmi_hash); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>function send_blob(data) { +</xsl:text> + <xsl:text> if(data.length > 0) { +</xsl:text> + <xsl:text> ws.send(new Blob([hmi_hash_u8].concat(data))); +</xsl:text> + <xsl:text> }; +</xsl:text> + <xsl:text>}; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>const typedarray_types = { +</xsl:text> + <xsl:text> INT: (number) => new Int16Array([number]), +</xsl:text> + <xsl:text> BOOL: (truth) => new Int16Array([truth]), +</xsl:text> + <xsl:text> NODE: (truth) => new Int16Array([truth]), +</xsl:text> + <xsl:text> REAL: (number) => new Float32Array([number]), +</xsl:text> + <xsl:text> STRING: (str) => { +</xsl:text> + <xsl:text> // beremiz default string max size is 128 +</xsl:text> + <xsl:text> str = str.slice(0,128); +</xsl:text> + <xsl:text> binary = new Uint8Array(str.length + 1); +</xsl:text> + <xsl:text> binary[0] = str.length; +</xsl:text> + <xsl:text> for(let i = 0; i < str.length; i++){ +</xsl:text> + <xsl:text> binary[i+1] = str.charCodeAt(i); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> return binary; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> /* TODO */ +</xsl:text> + <xsl:text>}; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>function send_reset() { +</xsl:text> + <xsl:text> send_blob(new Uint8Array([1])); /* reset = 1 */ +</xsl:text> + <xsl:text>}; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>var subscriptions = []; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>function subscribers(index) { +</xsl:text> + <xsl:text> let entry = subscriptions[index]; +</xsl:text> + <xsl:text> let res; +</xsl:text> + <xsl:text> if(entry == undefined){ +</xsl:text> + <xsl:text> res = new Set(); +</xsl:text> + <xsl:text> subscriptions[index] = [res,0]; +</xsl:text> + <xsl:text> }else{ +</xsl:text> + <xsl:text> [res, _ign] = entry; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> return res +</xsl:text> + <xsl:text>} +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>function get_subscription_period(index) { +</xsl:text> + <xsl:text> let entry = subscriptions[index]; +</xsl:text> + <xsl:text> if(entry == undefined) +</xsl:text> + <xsl:text> return 0; +</xsl:text> + <xsl:text> let [_ign, period] = entry; +</xsl:text> + <xsl:text> return period; +</xsl:text> + <xsl:text>} +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>function set_subscription_period(index, period) { +</xsl:text> + <xsl:text> let entry = subscriptions[index]; +</xsl:text> + <xsl:text> if(entry == undefined){ +</xsl:text> + <xsl:text> subscriptions[index] = [new Set(), period]; +</xsl:text> + <xsl:text> } else { +</xsl:text> + <xsl:text> entry[1] = period; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text>} +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>// artificially subscribe the watchdog widget to "/heartbeat" hmi variable +</xsl:text> + <xsl:text>// Since dispatch directly calls change_hmi_value, +</xsl:text> + <xsl:text>// PLC will periodically send variable at given frequency +</xsl:text> + <xsl:text>subscribers(heartbeat_index).add({ +</xsl:text> + <xsl:text> /* type: "Watchdog", */ +</xsl:text> + <xsl:text> frequency: 1, +</xsl:text> + <xsl:text> indexes: [heartbeat_index], +</xsl:text> + <xsl:text> new_hmi_value: function(index, value, oldval) { +</xsl:text> + <xsl:text> apply_hmi_value(heartbeat_index, value+1); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text>}); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>function svg_text_to_multiline(elt) { +</xsl:text> + <xsl:text> return(Array.prototype.map.call(elt.children, x=>x.textContent).join("\n")); +</xsl:text> + <xsl:text>} +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>function multiline_to_svg_text(elt, str) { +</xsl:text> + <xsl:text> str.split('\n').map((line,i) => {elt.children[i].textContent = line;}); +</xsl:text> + <xsl:text>} +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>function switch_langnum(langnum) { +</xsl:text> + <xsl:text> langnum = Math.max(0, Math.min(langs.length - 1, langnum)); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> for (let translation of translations) { +</xsl:text> + <xsl:text> let [objs, msgs] = translation; +</xsl:text> + <xsl:text> let msg = msgs[langnum]; +</xsl:text> + <xsl:text> for (let obj of objs) { +</xsl:text> + <xsl:text> multiline_to_svg_text(obj, msg); +</xsl:text> + <xsl:text> obj.setAttribute("lang",langnum); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> return langnum; +</xsl:text> + <xsl:text>} +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>// backup original texts +</xsl:text> + <xsl:text>for (let translation of translations) { +</xsl:text> + <xsl:text> let [objs, msgs] = translation; +</xsl:text> + <xsl:text> msgs.unshift(svg_text_to_multiline(objs[0])); +</xsl:text> + <xsl:text>} +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>var lang_local_index = hmi_local_index("lang"); +</xsl:text> + <xsl:text>var langcode_local_index = hmi_local_index("lang_code"); +</xsl:text> + <xsl:text>var langname_local_index = hmi_local_index("lang_name"); +</xsl:text> + <xsl:text>subscribers(lang_local_index).add({ +</xsl:text> + <xsl:text> indexes: [lang_local_index], +</xsl:text> + <xsl:text> new_hmi_value: function(index, value, oldval) { +</xsl:text> + <xsl:text> let current_lang = switch_langnum(value); +</xsl:text> + <xsl:text> let [langname,langcode] = langs[current_lang]; +</xsl:text> + <xsl:text> apply_hmi_value(langcode_local_index, langcode); +</xsl:text> + <xsl:text> apply_hmi_value(langname_local_index, langname); +</xsl:text> + <xsl:text> switch_page(); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text>}); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>function setup_lang(){ +</xsl:text> + <xsl:text> let current_lang = cache[lang_local_index]; +</xsl:text> + <xsl:text> let new_lang = switch_langnum(current_lang); +</xsl:text> + <xsl:text> if(current_lang != new_lang){ +</xsl:text> + <xsl:text> apply_hmi_value(lang_local_index, new_lang); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text>} +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>setup_lang(); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>function update_subscriptions() { +</xsl:text> + <xsl:text> let delta = []; +</xsl:text> + <xsl:text> for(let index in subscriptions){ +</xsl:text> + <xsl:text> let widgets = subscribers(index); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> // periods are in ms +</xsl:text> + <xsl:text> let previous_period = get_subscription_period(index); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> // subscribing with a zero period is unsubscribing +</xsl:text> + <xsl:text> let new_period = 0; +</xsl:text> + <xsl:text> if(widgets.size > 0) { +</xsl:text> + <xsl:text> let maxfreq = 0; +</xsl:text> + <xsl:text> for(let widget of widgets){ +</xsl:text> + <xsl:text> let wf = widget.frequency; +</xsl:text> + <xsl:text> if(wf != undefined && maxfreq < wf) +</xsl:text> + <xsl:text> maxfreq = wf; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> if(maxfreq != 0) +</xsl:text> + <xsl:text> new_period = 1000/maxfreq; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> if(previous_period != new_period) { +</xsl:text> + <xsl:text> set_subscription_period(index, new_period); +</xsl:text> + <xsl:text> if(index <= last_remote_index){ +</xsl:text> + <xsl:text> delta.push( +</xsl:text> + <xsl:text> new Uint8Array([2]), /* subscribe = 2 */ +</xsl:text> + <xsl:text> new Uint32Array([index]), +</xsl:text> + <xsl:text> new Uint16Array([new_period])); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> send_blob(delta); +</xsl:text> + <xsl:text>}; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>function send_hmi_value(index, value) { +</xsl:text> + <xsl:text> if(index > last_remote_index){ +</xsl:text> + <xsl:text> updates.set(index, value); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> if(persistent_indexes.has(index)){ +</xsl:text> + <xsl:text> let varname = persistent_indexes.get(index); +</xsl:text> + <xsl:text> document.cookie = varname+"="+value+"; max-age=3153600000"; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> requestHMIAnimation(); +</xsl:text> + <xsl:text> return; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> let iectype = hmitree_types[index]; +</xsl:text> + <xsl:text> let tobinary = typedarray_types[iectype]; +</xsl:text> + <xsl:text> send_blob([ +</xsl:text> + <xsl:text> new Uint8Array([0]), /* setval = 0 */ +</xsl:text> + <xsl:text> new Uint32Array([index]), +</xsl:text> + <xsl:text> tobinary(value)]); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> // DON'T DO THAT unless read_iterator in svghmi.c modifies wbuf as well, not only rbuf +</xsl:text> + <xsl:text> // cache[index] = value; +</xsl:text> + <xsl:text>}; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>function apply_hmi_value(index, new_val) { +</xsl:text> + <xsl:text> let old_val = cache[index]; +</xsl:text> + <xsl:text> if(new_val != undefined && old_val != new_val) +</xsl:text> + <xsl:text> send_hmi_value(index, new_val); +</xsl:text> + <xsl:text> return new_val; +</xsl:text> + <xsl:text>} +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>const quotes = {"'":null, '"':null}; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>function eval_operation_string(old_val, opstr) { +</xsl:text> + <xsl:text> let op = opstr[0]; +</xsl:text> + <xsl:text> let given_val; +</xsl:text> + <xsl:text> if(opstr.length < 2) +</xsl:text> + <xsl:text> return undefined; +</xsl:text> + <xsl:text> if(opstr[1] in quotes){ +</xsl:text> + <xsl:text> if(opstr.length < 3) +</xsl:text> + <xsl:text> return undefined; +</xsl:text> + <xsl:text> if(opstr[opstr.length-1] == opstr[1]){ +</xsl:text> + <xsl:text> given_val = opstr.slice(2,opstr.length-1); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } else { +</xsl:text> + <xsl:text> given_val = Number(opstr.slice(1)); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> let new_val; +</xsl:text> + <xsl:text> switch(op){ +</xsl:text> + <xsl:text> case "=": +</xsl:text> + <xsl:text> new_val = given_val; +</xsl:text> + <xsl:text> break; +</xsl:text> + <xsl:text> case "+": +</xsl:text> + <xsl:text> new_val = old_val + given_val; +</xsl:text> + <xsl:text> break; +</xsl:text> + <xsl:text> case "-": +</xsl:text> + <xsl:text> new_val = old_val - given_val; +</xsl:text> + <xsl:text> break; +</xsl:text> + <xsl:text> case "*": +</xsl:text> + <xsl:text> new_val = old_val * given_val; +</xsl:text> + <xsl:text> break; +</xsl:text> + <xsl:text> case "/": +</xsl:text> + <xsl:text> new_val = old_val / given_val; +</xsl:text> + <xsl:text> break; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> return new_val; +</xsl:text> + <xsl:text>} +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>var current_visible_page; +</xsl:text> + <xsl:text>var current_subscribed_page; +</xsl:text> + <xsl:text>var current_page_index; +</xsl:text> + <xsl:text>var page_node_local_index = hmi_local_index("page_node"); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>function prepare_svg() { +</xsl:text> + <xsl:text> // prevents context menu from appearing on right click and long touch +</xsl:text> + <xsl:text> document.body.addEventListener('contextmenu', e => { +</xsl:text> + <xsl:text> e.preventDefault(); +</xsl:text> + <xsl:text> }); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> for(let eltid in detachable_elements){ +</xsl:text> + <xsl:text> let [element,parent] = detachable_elements[eltid]; +</xsl:text> + <xsl:text> parent.removeChild(element); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text>}; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>function switch_page(page_name, page_index) { +</xsl:text> + <xsl:text> if(current_subscribed_page != current_visible_page){ +</xsl:text> + <xsl:text> /* page switch already going */ +</xsl:text> + <xsl:text> /* TODO LOG ERROR */ +</xsl:text> + <xsl:text> return false; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> if(page_name == undefined) +</xsl:text> + <xsl:text> page_name = current_subscribed_page; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> let old_desc = page_desc[current_subscribed_page]; +</xsl:text> + <xsl:text> let new_desc = page_desc[page_name]; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> if(new_desc == undefined){ +</xsl:text> + <xsl:text> /* TODO LOG ERROR */ +</xsl:text> + <xsl:text> return false; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> if(page_index == undefined){ +</xsl:text> + <xsl:text> page_index = new_desc.page_index; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> if(old_desc){ +</xsl:text> + <xsl:text> old_desc.widgets.map(([widget,relativeness])=>widget.unsub()); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> const new_offset = page_index == undefined ? 0 : page_index - new_desc.page_index; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> const container_id = page_name + (page_index != undefined ? page_index : ""); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> new_desc.widgets.map(([widget,relativeness])=>widget.sub(new_offset,relativeness,container_id)); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> update_subscriptions(); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> current_subscribed_page = page_name; +</xsl:text> + <xsl:text> current_page_index = page_index; +</xsl:text> + <xsl:text> let page_node; +</xsl:text> + <xsl:text> if(page_index != undefined){ +</xsl:text> + <xsl:text> page_node = hmitree_paths[page_index]; +</xsl:text> + <xsl:text> }else{ +</xsl:text> + <xsl:text> page_node = ""; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> apply_hmi_value(page_node_local_index, page_node); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> jumps_need_update = true; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> requestHMIAnimation(); +</xsl:text> + <xsl:text> jump_history.push([page_name, page_index]); +</xsl:text> + <xsl:text> if(jump_history.length > 42) +</xsl:text> + <xsl:text> jump_history.shift(); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> return true; +</xsl:text> + <xsl:text>}; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>function switch_visible_page(page_name) { +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> let old_desc = page_desc[current_visible_page]; +</xsl:text> + <xsl:text> let new_desc = page_desc[page_name]; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> if(old_desc){ +</xsl:text> + <xsl:text> for(let eltid in old_desc.required_detachables){ +</xsl:text> + <xsl:text> if(!(eltid in new_desc.required_detachables)){ +</xsl:text> + <xsl:text> let [element, parent] = old_desc.required_detachables[eltid]; +</xsl:text> + <xsl:text> parent.removeChild(element); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> for(let eltid in new_desc.required_detachables){ +</xsl:text> + <xsl:text> if(!(eltid in old_desc.required_detachables)){ +</xsl:text> + <xsl:text> let [element, parent] = new_desc.required_detachables[eltid]; +</xsl:text> + <xsl:text> parent.appendChild(element); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> }else{ +</xsl:text> + <xsl:text> for(let eltid in new_desc.required_detachables){ +</xsl:text> + <xsl:text> let [element, parent] = new_desc.required_detachables[eltid]; +</xsl:text> + <xsl:text> parent.appendChild(element); +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> svg_root.setAttribute('viewBox',new_desc.bbox.join(" ")); +</xsl:text> + <xsl:text> current_visible_page = page_name; +</xsl:text> + <xsl:text>}; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>// Once connection established +</xsl:text> + <xsl:text>ws.onopen = function (evt) { +</xsl:text> + <xsl:text> init_widgets(); +</xsl:text> + <xsl:text> send_reset(); +</xsl:text> + <xsl:text> // show main page +</xsl:text> + <xsl:text> prepare_svg(); +</xsl:text> + <xsl:text> switch_page(default_page); +</xsl:text> + <xsl:text>}; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>ws.onclose = function (evt) { +</xsl:text> + <xsl:text> // TODO : add visible notification while waiting for reload +</xsl:text> + <xsl:text> console.log("Connection closed. code:"+evt.code+" reason:"+evt.reason+" wasClean:"+evt.wasClean+" Reload in 10s."); +</xsl:text> + <xsl:text> // TODO : re-enable auto reload when not in debug +</xsl:text> + <xsl:text> //window.setTimeout(() => location.reload(true), 10000); +</xsl:text> + <xsl:text> alert("Connection closed. code:"+evt.code+" reason:"+evt.reason+" wasClean:"+evt.wasClean+"."); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>}; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>const xmlns = "http://www.w3.org/2000/svg"; +</xsl:text> + <xsl:text>var edit_callback; +</xsl:text> + <xsl:text>const localtypes = {"PAGE_LOCAL":null, "HMI_LOCAL":null} +</xsl:text> + <xsl:text>function edit_value(path, valuetype, callback, initial) { +</xsl:text> + <xsl:text> if(valuetype in localtypes){ +</xsl:text> + <xsl:text> valuetype = (typeof initial) == "number" ? "HMI_REAL" : "HMI_STRING"; +</xsl:text> + <xsl:text> } +</xsl:text> + <xsl:text> let [keypadid, xcoord, ycoord] = keypads[valuetype]; +</xsl:text> + <xsl:text> edit_callback = callback; +</xsl:text> + <xsl:text> let widget = hmi_widgets[keypadid]; +</xsl:text> + <xsl:text> widget.start_edit(path, valuetype, callback, initial); +</xsl:text> + <xsl:text>}; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>var current_modal; /* TODO stack ?*/ +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>function show_modal() { +</xsl:text> + <xsl:text> let [element, parent] = detachable_elements[this.element.id]; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> tmpgrp = document.createElementNS(xmlns,"g"); +</xsl:text> + <xsl:text> tmpgrpattr = document.createAttribute("transform"); +</xsl:text> + <xsl:text> let [xcoord,ycoord] = this.coordinates; +</xsl:text> + <xsl:text> let [xdest,ydest] = page_desc[current_visible_page].bbox; +</xsl:text> + <xsl:text> tmpgrpattr.value = "translate("+String(xdest-xcoord)+","+String(ydest-ycoord)+")"; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> tmpgrp.setAttributeNode(tmpgrpattr); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> tmpgrp.appendChild(element); +</xsl:text> + <xsl:text> parent.appendChild(tmpgrp); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> current_modal = [this.element.id, tmpgrp]; +</xsl:text> + <xsl:text>}; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text>function end_modal() { +</xsl:text> + <xsl:text> let [eltid, tmpgrp] = current_modal; +</xsl:text> + <xsl:text> let [element, parent] = detachable_elements[this.element.id]; +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> parent.removeChild(tmpgrp); +</xsl:text> + <xsl:text> +</xsl:text> + <xsl:text> current_modal = undefined; +</xsl:text> + <xsl:text>}; +</xsl:text> + <xsl:text> +</xsl:text> + </script> + </body> + </html> + </xsl:template> +</xsl:stylesheet> diff -r 2b00f90c6888 -r d5b2369a103f svghmi/gen_index_xhtml.ysl2 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/gen_index_xhtml.ysl2 Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,101 @@ +include yslt_noindent.yml2 + +// overrides yslt's output function to set CDATA +decl output(method, cdata-section-elements="xhtml:script"); + +// helper to emit some content to internal namespaces +decl emit(*name) alias - { + *name; + template *name { + // value "ns:ProgressStart(name())"; + | + | /* «local-name()» */ + | + content; + | + // value "ns:ProgressEnd(name())"; + } +}; + +istylesheet + /* From Inkscape */ + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:xhtml="http://www.w3.org/1999/xhtml" + + /* Internal namespaces to allow emit code/content from anywhere */ + xmlns:debug="debug" + xmlns:preamble="preamble" + xmlns:declarations="declarations" + xmlns:definitions="definitions" + xmlns:epilogue="epilogue" + + /* Namespace to invoke python code */ + xmlns:ns="beremiz" + + extension-element-prefixes="ns func exsl regexp str dyn" + exclude-result-prefixes="ns func exsl regexp str dyn debug preamble epilogue declarations definitions" { + + const "svg", "/svg:svg"; + const "hmi_elements", "//svg:*[starts-with(@inkscape:label, 'HMI:')]"; + + + include hmi_tree.ysl2 + + include geometry.ysl2 + + include detachable_pages.ysl2 + + include inline_svg.ysl2 + + include i18n.ysl2 + + include widgets_common.ysl2 + + include widget_*.ysl2 + + + template "/" { + comment > Made with SVGHMI. https://beremiz.org + + // all debug output from included definitions, as comments + // comment apply "document('')/*/debug:*"; + + html xmlns="http://www.w3.org/1999/xhtml" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" { + head { + style type="text/css" media="screen" { + value "ns:GetFonts()"; + } + } + // prevents user selection by mouse click / touch and drag + // prevents pinch zoom and other accidental panning panning with touch devices + body style="margin:0;overflow:hidden;user-select:none;touch-action:none;" { + // Inline SVG + copy "$result_svg"; + script{ + | \n//\n//\n// Early independent declarations \n//\n// + apply "document('')/*/preamble:*"; + + | \n//\n//\n// Declarations depending on preamble \n//\n// + apply "document('')/*/declarations:*"; + + | \n//\n//\n// Order independent declaration and code \n//\n// + apply "document('')/*/definitions:*"; + + | \n//\n//\n// Statements that needs to be at the end \n//\n// + apply "document('')/*/epilogue:*"; + + include text svghmi.js + + } + } + } + } +} diff -r 2b00f90c6888 -r d5b2369a103f svghmi/geometry.ysl2 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/geometry.ysl2 Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,147 @@ +// geometry.ysl2 +// +// Geometry (bounding box intersection) definitions + +// This retrieves geometry obtained through "inkscape -S" +// already parsed by python and presented as a list of +// <bbox x="0" y="0" w="42" h="42"> +const "all_geometry", "ns:GetSVGGeometry()"; +const "defs", "//svg:defs/descendant-or-self::svg:*"; +const "geometry", "$all_geometry[not(@Id = $defs/@id)]"; + +// Debug data +emit "debug:geometry" { + | ID, x, y, w, h + foreach "$geometry" + | «@Id» «@x» «@y» «@w» «@h» +} + +// Rates 1D intersection of 2 segments A and B +// described respectively with a0,a1 and b0,b1 +def "func:intersect_1d" { + // it is assumed that a1 > a0 and b1 > b0 + param "a0"; + param "a1"; + param "b0"; + param "b1"; + + const "d0", "$a0 >= $b0"; + const "d1", "$a1 >= $b1"; + choose { + when "not($d0) and $d1" + // b contained in a + // a0<b0 b1<a1 + // a +--------+ + // b +--+ + result "3"; + when "$d0 and not($d1)" + // a contained in b + // b0<a0 a1<b1 + // a +--+ + // b +--------+ + result "2"; + when "$d0 and $d1 and $a0 < $b1" + // a and b are overlapped + // b0<a0<b1<a1 + // a +-----+ + // b +-----+ + result "1"; + when "not($d0) and not($d1) and $b0 < $a1" + // a and b are overlapped + // a0<b0<a1<b1 + // a +-----+ + // b +-----+ + result "1"; + // since orientation doesn't matter, + // rated same as previous symetrical overlapping + otherwise + result "0"; /* no intersection*/ + } +} + + +// Rates intersection A and B areas described with x,y,w and h +// attributes passed as $a and $b parameters. +// +// returns : +// 0 - no intersection +// .-----. +// .-----. | b| +// | | | | +// | | '-----' +// |a | +// '-----' +// +// 1 - overlapping +// .-----. +// .---|--. b| +// | | | | +// | '-----' +// |a | +// '------' +// +// 2 - overlapping +// .-----. +// | a | +// .---|-----|---. +// | '-----' | +// | b | +// '-------------' +// +// 3 - overlapping +// .-----. +// | b | +// .---|-----|---. +// | '-----' | +// | a | +// '-------------' +// +// 4 - a contained in b +// .-------------. +// | .-----. | +// | | a | | +// |b '-----' | +// '-------------' +// +// 6 - overlapping +// .----. +// | b| +// .---|----|---. +// |a | | | +// '---|----|---' +// '----' +// +// 9 - b contained in a +// .-------------. +// | .-----. | +// | | b | | +// |a '-----' | +// '-------------' +// +def "func:intersect" { + param "a"; + param "b"; + + const "x_intersect", "func:intersect_1d($a/@x, $a/@x+$a/@w, $b/@x, $b/@x+$b/@w)"; + + choose{ + when "$x_intersect != 0"{ + const "y_intersect", "func:intersect_1d($a/@y, $a/@y+$a/@h, $b/@y, $b/@y+$b/@h)"; + result "$x_intersect * $y_intersect"; + } + otherwise result "0"; + } +} + +const "groups", "/svg:svg | //svg:g"; + +// return overlapping geometry for a given element +// all intersercting element are returned +// except groups, that must be contained to be counted in +def "func:overlapping_geometry" { + param "elt"; + const "g", "$geometry[@Id = $elt/@id]"; + const "candidates", "$geometry[@Id != $elt/@id]"; + result """$candidates[(@Id = $groups/@id and (func:intersect($g, .) = 9)) or + (not(@Id = $groups/@id) and (func:intersect($g, .) > 0 ))]"""; +} diff -r 2b00f90c6888 -r d5b2369a103f svghmi/hmi_tree.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/hmi_tree.py Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,164 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# This file is part of Beremiz +# Copyright (C) 2021: Edouard TISSERANT +# +# See COPYING file for copyrights details. + +from __future__ import absolute_import +from itertools import izip, imap +from pprint import pformat +import weakref +import hashlib + +from lxml import etree + +HMI_TYPES_DESC = { + "HMI_NODE":{}, + "HMI_STRING":{}, + "HMI_INT":{}, + "HMI_BOOL":{}, + "HMI_REAL":{} +} + +HMI_TYPES = HMI_TYPES_DESC.keys() + +class HMITreeNode(object): + def __init__(self, path, name, nodetype, iectype = None, vartype = None, cpath = None, hmiclass = None): + self.path = path + self.name = name + self.nodetype = nodetype + self.hmiclass = hmiclass + self.parent = None + + if iectype is not None: + self.iectype = iectype + self.vartype = vartype + self.cpath = cpath + + if nodetype in ["HMI_NODE"]: + self.children = [] + + def pprint(self, indent = 0): + res = ">"*indent + pformat(self.__dict__, indent = indent, depth = 1) + "\n" + if hasattr(self, "children"): + res += "\n".join([child.pprint(indent = indent + 1) + for child in self.children]) + res += "\n" + + return res + + def place_node(self, node): + best_child = None + known_best_match = 0 + potential_siblings = {} + for child in self.children: + if child.path is not None: + in_common = 0 + for child_path_item, node_path_item in izip(child.path, node.path): + if child_path_item == node_path_item: + in_common +=1 + else: + break + # Match can only be HMI_NODE, and the whole path of node + # must match candidate node (except for name part) + # since candidate would become child of that node + if in_common > known_best_match and \ + child.nodetype == "HMI_NODE" and \ + in_common == len(child.path) - 1: + known_best_match = in_common + best_child = child + else: + potential_siblings[child.path[ + -2 if child.nodetype == "HMI_NODE" else -1]] = child + if best_child is not None: + if node.nodetype == "HMI_NODE" and best_child.path[:-1] == node.path[:-1]: + return "Duplicate_HMI_NODE", best_child + return best_child.place_node(node) + else: + candidate_name = node.path[-2 if node.nodetype == "HMI_NODE" else -1] + if candidate_name in potential_siblings: + return "Non_Unique", potential_siblings[candidate_name] + + if node.nodetype == "HMI_NODE" and len(self.children) > 0: + prev = self.children[-1] + if prev.path[:-1] == node.path[:-1]: + return "Late_HMI_NODE",prev + + node.parent = weakref.ref(self) + self.children.append(node) + return None + + def etree(self, add_hash=False): + + attribs = dict(name=self.name) + if self.path is not None: + attribs["path"] = ".".join(self.path) + + if self.hmiclass is not None: + attribs["class"] = self.hmiclass + + if add_hash: + attribs["hash"] = ",".join(map(str,self.hash())) + + res = etree.Element(self.nodetype, **attribs) + + if hasattr(self, "children"): + for child_etree in imap(lambda c:c.etree(), self.children): + res.append(child_etree) + + return res + + @classmethod + def from_etree(cls, enode): + """ + alternative constructor, restoring HMI Tree from XML backup + note: all C-related information is gone, + this restore is only for tree display and widget picking + """ + nodetype = enode.tag + attributes = enode.attrib + name = attributes["name"] + path = attributes["path"].split('.') if "path" in attributes else None + hmiclass = attributes.get("class", None) + # hash is computed on demand + node = cls(path, name, nodetype, hmiclass=hmiclass) + for child in enode.iterchildren(): + newnode = cls.from_etree(child) + newnode.parent = weakref.ref(node) + node.children.append(newnode) + return node + + def traverse(self): + yield self + if hasattr(self, "children"): + for c in self.children: + for yoodl in c.traverse(): + yield yoodl + + def hmi_path(self): + if self.parent is None: + return "/" + p = self.parent() + if p.parent is None: + return "/" + self.name + return p.hmi_path() + "/" + self.name + + def hash(self): + """ Produce a hash, any change in HMI tree structure change that hash """ + s = hashlib.new('md5') + self._hash(s) + # limit size to HMI_HASH_SIZE as in svghmi.c + return map(ord,s.digest())[:8] + + def _hash(self, s): + s.update(str((self.name,self.nodetype))) + if hasattr(self, "children"): + for c in self.children: + c._hash(s) + +SPECIAL_NODES = [("HMI_ROOT", "HMI_NODE"), + ("heartbeat", "HMI_INT")] + # ("current_page", "HMI_STRING")]) + diff -r 2b00f90c6888 -r d5b2369a103f svghmi/hmi_tree.ysl2 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/hmi_tree.ysl2 Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,129 @@ +// hmi_tree.ysl2 + + +// HMI Tree computed from VARIABLES.CSV in svghmi.py +const "hmitree", "ns:GetHMITree()"; + +const "_categories" { + noindex > HMI_PLC_STATUS + noindex > HMI_CURRENT_PAGE +} +const "categories", "exsl:node-set($_categories)"; + +// HMI Tree Index +const "_indexed_hmitree" apply "$hmitree", mode="index"; +const "indexed_hmitree", "exsl:node-set($_indexed_hmitree)"; + +emit "preamble:hmi-tree" { + | var hmi_hash = [«$hmitree/@hash»]; + | + | var heartbeat_index = «$indexed_hmitree/*[@hmipath = '/HEARTBEAT']/@index»; + | + | var hmitree_types = [ + + foreach "$indexed_hmitree/*" + | /* «@index» */ "«substring(local-name(), 5)»"`if "position()!=last()" > ,` + + | ]; + | + | var hmitree_paths = [ + + foreach "$indexed_hmitree/*" + | /* «@index» */ "«@hmipath»"`if "position()!=last()" > ,` + + | ]; + | +} + +template "*", mode="index" { + param "index", "0"; + param "parentpath", "''"; + const "content" { + const "path" + choose { + when "count(ancestor::*)=0" > / + when "count(ancestor::*)=1" > /«@name» + otherwise > «$parentpath»/«@name» + } + choose { + when "not(local-name() = $categories/noindex)" { + xsl:copy { + attrib "index" > «$index» + attrib "hmipath" > «$path» + foreach "@*" xsl:copy; + } + apply "*[1]", mode="index"{ + with "index", "$index + 1"; + with "parentpath" > «$path» + } + } + otherwise { + apply "*[1]", mode="index"{ + with "index", "$index"; + with "parentpath" > «$path» + } + } + } + } + + copy "$content"; + apply "following-sibling::*[1]", mode="index" { + with "index", "$index + count(exsl:node-set($content)/*)"; + with "parentpath" > «$parentpath» + } +} + +include parse_labels.ysl2 + +const "_parsed_widgets" { + widget type="VarInitPersistent" { + arg value="0"; + path value="lang"; + } + apply "$hmi_elements", mode="parselabel"; +} + +const "parsed_widgets","exsl:node-set($_parsed_widgets)"; + +def "func:widget" { + param "id"; + result "$parsed_widgets/widget[@id = $id]"; +} + +def "func:is_descendant_path" { + param "descend"; + param "ancest"; + // TODO : use HMI tree to answer more accurately + result "string-length($ancest) > 0 and starts-with($descend,$ancest)"; +} + +def "func:same_class_paths" { + param "a"; + param "b"; + const "class_a", "$indexed_hmitree/*[@hmipath = $a]/@class"; + const "class_b", "$indexed_hmitree/*[@hmipath = $b]/@class"; + result "$class_a and $class_b and $class_a = $class_b"; +} + +// Debug data +template "*", mode="testtree"{ + param "indent", "''"; + > «$indent» «local-name()» + foreach "@*" > «local-name()»="«.»" + > \n + apply "*", mode="testtree" { + with "indent" value "concat($indent,'>')" + }; +} + +emit "debug:hmi-tree" { + | Raw HMI tree + apply "$hmitree", mode="testtree"; + | + | Indexed HMI tree + apply "$indexed_hmitree", mode="testtree"; + | + | Parsed Widgets + copy "_parsed_widgets"; + apply "$parsed_widgets", mode="testtree"; +} diff -r 2b00f90c6888 -r d5b2369a103f svghmi/i18n.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/i18n.py Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,353 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# This file is part of Beremiz +# Copyright (C) 2021: Edouard TISSERANT +# +# See COPYING file for copyrights details. + +from __future__ import absolute_import +from lxml import etree +import os +import sys +import subprocess +import time +import ast +import wx +import re + +# to have it for python 2, had to install +# https://pypi.org/project/pycountry/18.12.8/ +# python2 -m pip install pycountry==18.12.8 --user +import pycountry + +cmd_parser = re.compile(r'(?:"([^"]+)"\s*|([^\s]+)\s*)?') + +def open_pofile(pofile): + """ Opens PO file with POEdit """ + + if sys.platform.startswith('win'): + from six.moves import winreg + poedit_cmd = None + try: + poedit_cmd = winreg.QueryValue(winreg.HKEY_LOCAL_MACHINE, + 'SOFTWARE\\Classes\\poedit\\shell\\open\\command') + cmd = re.findall(cmd_parser, poedit_cmd) + dblquote_value,smpl_value = cmd[0] + poedit_path = dblquote_value+smpl_value + except OSError: + poedit_path = None + + else: + try: + poedit_path = subprocess.check_output("command -v poedit", shell=True).strip() + except subprocess.CalledProcessError: + poedit_path = None + + if poedit_path is None: + wx.MessageBox("POEdit is not found or installed !") + else: + subprocess.Popen([poedit_path,pofile]) + +def EtreeToMessages(msgs): + """ Converts XML tree from 'extract_i18n' templates into a list of tuples """ + messages = [] + + for msg in msgs: + messages.append(( + "\n".join([line.text for line in msg]), + msg.get("label"), msg.get("id"))) + + return messages + +def SaveCatalog(fname, messages): + """ Save messages given as list of tupple (msg,label,id) in POT file """ + w = POTWriter() + w.ImportMessages(messages) + + with open(fname, 'w') as POT_file: + w.write(POT_file) + +def GetPoFiles(dirpath): + po_files = [fname for fname in os.listdir(dirpath) if fname.endswith(".po")] + po_files.sort() + return [(po_fname[:-3],os.path.join(dirpath, po_fname)) for po_fname in po_files] + +def ReadTranslations(dirpath): + """ Read all PO files from a directory and return a list of (langcode, translation_dict) tuples """ + + translations = [] + for translation_name, po_path in GetPoFiles(dirpath): + r = POReader() + with open(po_path, 'r') as PO_file: + r.read(PO_file) + translations.append((translation_name, r.get_messages())) + return translations + +def MatchTranslations(translations, messages, errcallback): + """ + Matches translations against original message catalog, + warn about inconsistancies, + returns list of langs, and a list of (msgid, [translations]) tuples + """ + translated_messages = [] + broken_lang = set() + for msgid,label,svgid in messages: + translated_message = [] + for langcode,translation in translations: + msg = translation.pop(msgid, None) + if msg is None: + broken_lang.add(langcode) + errcallback(_('{}: Missing translation for "{}" (label:{}, id:{})\n').format(langcode,msgid,label,svgid)) + translated_message.append(msgid) + else: + translated_message.append(msg) + translated_messages.append((msgid,translated_message)) + langs = [] + for langcode,translation in translations: + try: + l,c = langcode.split("_") + language_name = pycountry.languages.get(alpha_2 = l).name + country_name = pycountry.countries.get(alpha_2 = c).name + langname = "{} ({})".format(language_name, country_name) + except: + try: + langname = pycountry.languages.get(alpha_2 = langcode).name + except: + langname = langcode + + langs.append((langname,langcode)) + + broken = False + for msgid, msg in translation.iteritems(): + broken = True + errcallback(_('{}: Unused translation "{}":"{}"\n').format(langcode,msgid,msg)) + if broken or langcode in broken_lang: + errcallback(_('Translation for {} is outdated, please edit {}.po, click "Catalog -> Update from POT File..." and select messages.pot.\n').format(langcode,langcode)) + + + return langs,translated_messages + + +def TranslationToEtree(langs,translated_messages): + + result = etree.Element("translations") + + langsroot = etree.SubElement(result, "langs") + for name, code in langs: + langel = etree.SubElement(langsroot, "lang", {"code":code}) + langel.text = name + + msgsroot = etree.SubElement(result, "messages") + for msgid, msgs in translated_messages: + msgidel = etree.SubElement(msgsroot, "msgid") + for msg in msgs: + msgel = etree.SubElement(msgidel, "msg") + for line in msg.split("\n"): + lineel = etree.SubElement(msgel, "line") + lineel.text = escape(line.encode("utf-8")).decode("utf-8") + + return result + + + +locpfx = '#:svghmi.svg:' + +pot_header = '''\ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ORGANIZATION +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\\n" +"POT-Creation-Date: %(time)s\\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\\n" +"Language-Team: LANGUAGE <LL@li.org>\\n" +"MIME-Version: 1.0\\n" +"Content-Type: text/plain; charset=UTF-8\\n" +"Content-Transfer-Encoding: 8bit\\n" +"Generated-By: SVGHMI 1.0\\n" + +''' +escapes = [] + +def make_escapes(pass_iso8859): + global escapes + escapes = [chr(i) for i in range(256)] + if pass_iso8859: + # Allow iso-8859 characters to pass through so that e.g. 'msgid + # "Höhe"' would result not result in 'msgid "H\366he"'. Otherwise we + # escape any character outside the 32..126 range. + mod = 128 + else: + mod = 256 + for i in range(mod): + if not(32 <= i <= 126): + escapes[i] = "\\%03o" % i + escapes[ord('\\')] = '\\\\' + escapes[ord('\t')] = '\\t' + escapes[ord('\r')] = '\\r' + escapes[ord('\n')] = '\\n' + escapes[ord('\"')] = '\\"' + +make_escapes(pass_iso8859 = True) + +EMPTYSTRING = '' + +def escape(s): + global escapes + s = list(s) + for i in range(len(s)): + s[i] = escapes[ord(s[i])] + return EMPTYSTRING.join(s) + +def normalize(s): + # This converts the various Python string types into a format that is + # appropriate for .po files, namely much closer to C style. + lines = s.split('\n') + if len(lines) == 1: + s = '"' + escape(s) + '"' + else: + if not lines[-1]: + del lines[-1] + lines[-1] = lines[-1] + '\n' + for i in range(len(lines)): + lines[i] = escape(lines[i]) + lineterm = '\\n"\n"' + s = '""\n"' + lineterm.join(lines) + '"' + return s + + +class POTWriter: + def __init__(self): + self.__messages = {} + + def ImportMessages(self, msgs): + for msg, label, svgid in msgs: + self.addentry(msg.encode("utf-8"), label, svgid) + + def addentry(self, msg, label, svgid): + entry = (label, svgid) + self.__messages.setdefault(msg, set()).add(entry) + + def write(self, fp): + timestamp = time.strftime('%Y-%m-%d %H:%M+%Z') + print >> fp, pot_header % {'time': timestamp} + reverse = {} + for k, v in self.__messages.items(): + keys = list(v) + keys.sort() + reverse.setdefault(tuple(keys), []).append((k, v)) + rkeys = reverse.keys() + rkeys.sort() + for rkey in rkeys: + rentries = reverse[rkey] + rentries.sort() + for k, v in rentries: + v = list(v) + v.sort() + locline = locpfx + for label, svgid in v: + d = {'label': label, 'svgid': svgid} + s = _(' %(label)s:%(svgid)s') % d + if len(locline) + len(s) <= 78: + locline = locline + s + else: + print >> fp, locline + locline = locpfx + s + if len(locline) > len(locpfx): + print >> fp, locline + print >> fp, 'msgid', normalize(k) + print >> fp, 'msgstr ""\n' + + +class POReader: + def __init__(self): + self.__messages = {} + + def get_messages(self): + return self.__messages + + def add(self, msgid, msgstr, fuzzy): + "Add a non-fuzzy translation to the dictionary." + if not fuzzy and msgstr and msgid: + self.__messages[msgid.decode('utf-8')] = msgstr.decode('utf-8') + + def read(self, fp): + ID = 1 + STR = 2 + + lines = fp.readlines() + section = None + fuzzy = 0 + + # Parse the catalog + lno = 0 + for l in lines: + lno += 1 + # If we get a comment line after a msgstr, this is a new entry + if l[0] == '#' and section == STR: + self.add(msgid, msgstr, fuzzy) + section = None + fuzzy = 0 + # Record a fuzzy mark + if l[:2] == '#,' and 'fuzzy' in l: + fuzzy = 1 + # Skip comments + if l[0] == '#': + continue + # Now we are in a msgid section, output previous section + if l.startswith('msgid') and not l.startswith('msgid_plural'): + if section == STR: + self.add(msgid, msgstr, fuzzy) + section = ID + l = l[5:] + msgid = msgstr = '' + is_plural = False + # This is a message with plural forms + elif l.startswith('msgid_plural'): + if section != ID: + print >> sys.stderr, 'msgid_plural not preceded by msgid on %s:%d' %\ + (infile, lno) + sys.exit(1) + l = l[12:] + msgid += '\0' # separator of singular and plural + is_plural = True + # Now we are in a msgstr section + elif l.startswith('msgstr'): + section = STR + if l.startswith('msgstr['): + if not is_plural: + print >> sys.stderr, 'plural without msgid_plural on %s:%d' %\ + (infile, lno) + sys.exit(1) + l = l.split(']', 1)[1] + if msgstr: + msgstr += '\0' # Separator of the various plural forms + else: + if is_plural: + print >> sys.stderr, 'indexed msgstr required for plural on %s:%d' %\ + (infile, lno) + sys.exit(1) + l = l[6:] + # Skip empty lines + l = l.strip() + if not l: + continue + l = ast.literal_eval(l) + if section == ID: + msgid += l + elif section == STR: + msgstr += l + else: + print >> sys.stderr, 'Syntax error on %s:%d' % (infile, lno), \ + 'before:' + print >> sys.stderr, l + sys.exit(1) + # Add last entry + if section == STR: + self.add(msgid, msgstr, fuzzy) + + diff -r 2b00f90c6888 -r d5b2369a103f svghmi/i18n.ysl2 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/i18n.ysl2 Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,54 @@ +// i18n.ysl2 + + +template "svg:tspan", mode="extract_i18n" { + if "string-length(.) > 0" line { + value "."; + } +} + +template "svg:text", mode="extract_i18n" { + msg { + attrib "id" value "@id"; + attrib "label" value "substring(@inkscape:label,2)"; + apply "svg:*", mode="extract_i18n"; + } +} + +const "translatable_texts", "//svg:text[starts-with(@inkscape:label, '_')]"; +const "translatable_strings" apply "$translatable_texts", mode="extract_i18n"; + +emit "preamble:i18n" { + const "translations", "ns:GetTranslations($translatable_strings)"; + > var langs = [ ["Default", "C"], + foreach "$translations/langs/lang" { + > ["«.»","«@code»"] + if "position()!=last()" > , + } + | ]; + | var translations = [ + foreach "$translatable_texts" { + const "n","position()"; + const "current_id","@id"; + const "text_unlinked_uses","$result_svg_ns//svg:text[@original = $current_id]/@id"; + > [[ + foreach "@id | $text_unlinked_uses" { + > id("«.»") + if "position()!=last()" > , + } + > ],[ + foreach "$translations/messages/msgid[$n]/msg" { + > " + foreach "line" { + value "."; + if "position()!=last()" > \\\\n + } + > " + if "position()!=last()" > , + } + > ]] + if "position()!=last()" > , + > \n + } + | ] +} diff -r 2b00f90c6888 -r d5b2369a103f svghmi/inline_svg.ysl2 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/inline_svg.ysl2 Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,209 @@ +// inline_svg.ysl2 +// +// Produce Inline SVG element of resulting XHTML page. + +// Since stylesheet output namespace is xhtml, templates that output svg have to be explicitely declared as such +in xsl decl svgtmpl(match, xmlns="http://www.w3.org/2000/svg") alias template; +in xsl decl svgfunc(name, xmlns="http://www.w3.org/2000/svg") alias template; + + +// Identity template : +// - copy every attributes +// - copy every sub-elements + +svgtmpl "@*", mode="inline_svg" xsl:copy; + +template "node()", mode="inline_svg" { + // use real xsl:copy instead copy-of alias from yslt.yml2 + if "not(@id = $discardable_elements/@id)" + xsl:copy apply "@* | node()", mode="inline_svg"; +} + +// replaces inkscape's height and width hints. forces fit +template "svg:svg/@width", mode="inline_svg"; +template "svg:svg/@height", mode="inline_svg"; +svgtmpl "svg:svg", mode="inline_svg" svg { + attrib "preserveAspectRatio" > none + attrib "height" > 100vh + attrib "width" > 100vw + apply "@* | node()", mode="inline_svg"; +} +// ensure that coordinate in CSV file generated by inkscape are in default reference frame +template "svg:svg[@viewBox!=concat('0 0 ', @width, ' ', @height)]", mode="inline_svg" { + error > ViewBox settings other than X=0, Y=0 and Scale=1 are not supported +} +// ensure that coordinate in CSV file generated by inkscape match svg default unit +template "sodipodi:namedview[@units!='px' or @inkscape:document-units!='px']", mode="inline_svg" { + error > All units must be set to "px" in Inkscape's document properties +} + +// remove i18n markers, so that defs_by_labels can find text elements +svgtmpl "svg:text/@inkscape:label[starts-with(., '_')]", mode="inline_svg" { + attrib "{name()}" > «substring(., 2)» +} + +////// Clone unlinking +// +// svg:use (inkscape's clones) inside a widgets are +// replaced by real elements they refer in order to : +// - allow finding "needle" element in "meter" widget, +// even if "needle" is in a group refered by a svg use. +// - if "needle" is visible through a svg:use for +// each instance of the widget, then needle would show +// the same position in all instances +// +// For now, clone unlinkink applies to descendants of all widget except HMI:Page +// TODO: narrow application of clone unlinking to active elements, +// while keeping static decoration cloned +const "targets_not_to_unlink", "$hmi_lists/descendant-or-self::svg:*"; +const "to_unlink", "$hmi_elements[not(@id = $hmi_pages/@id)]/descendant-or-self::svg:use"; + +def "func:is_unlinkable" { + param "targetid"; + param "eltid"; + result "$eltid = $to_unlink/@id and not($targetid = $targets_not_to_unlink/@id)"; +} + +svgtmpl "svg:use", mode="inline_svg"{ + const "targetid","substring-after(@xlink:href,'#')"; + choose { + when "func:is_unlinkable($targetid, @id)" { + call "unlink_clone" { + with "targetid", "$targetid"; + } + } + otherwise xsl:copy apply "@*", mode="inline_svg"; + } +} + +// to unlink a clone, an group containing a copy of target element is created +// that way, style and transforms can be preserved +const "_excluded_use_attrs" { + name > href + name > width + name > height + name > x + name > y + name > id +} +const "excluded_use_attrs","exsl:node-set($_excluded_use_attrs)"; + +const "_merge_use_attrs" { + name > transform + name > style +} +const "merge_use_attrs","exsl:node-set($_merge_use_attrs)"; + +svgfunc "unlink_clone"{ + param "targetid"; + param "seed","''"; + const "target", "//svg:*[@id = $targetid]"; + const "seeded_id" choose { + when "string-length($seed) > 0" > «$seed»_«@id» + otherwise value "@id"; + } + g{ + attrib "id" value "$seeded_id"; + attrib "original" value "@id"; + + choose { + when "$target[self::svg:g]" { + foreach "@*[not(local-name() = $excluded_use_attrs/name | $merge_use_attrs)]" + attrib "{name()}" > «.» + + if "@style | $target/@style" + attrib "style" { + > «@style» + if "@style and $target/@style" > ; + > «$target/@style» + } + + if "@transform | $target/@transform" + attrib "transform" { + > «@transform» + if "@transform and $target/@transform" > + > «$target/@transform» + } + + apply "$target/*", mode="unlink_clone"{ + with "seed","$seeded_id"; + } + } + otherwise { + // include non excluded attributes + foreach "@*[not(local-name() = $excluded_use_attrs/name)]" + attrib "{name()}" > «.» + + apply "$target", mode="unlink_clone"{ + with "seed","$seeded_id"; + } + } + } + } +} + +// clone unlinking is really similar to deep-copy +// all nodes are sytematically copied +svgtmpl "@id", mode="unlink_clone" { + param "seed"; + attrib "id" > «$seed»_«.» + attrib "original" > «.» +} + +svgtmpl "@*", mode="unlink_clone" xsl:copy; + +svgtmpl "svg:use", mode="unlink_clone" { + param "seed"; + const "targetid","substring-after(@xlink:href,'#')"; + choose { + when "func:is_unlinkable($targetid, @id)" { + call "unlink_clone" { + with "targetid", "$targetid"; + with "seed","$seed"; + } + } + otherwise xsl:copy apply "@*", mode="unlink_clone" { + with "seed","$seed"; + } + } +} + +// copying widgets would have unwanted effect +// instead widget is refered through a svg:use. +svgtmpl "svg:*", mode="unlink_clone" { + param "seed"; + choose { + // node recursive copy ends when finding a widget + when "@id = $hmi_elements/@id" { + // place a clone instead of copying + use{ + attrib "xlink:href" > «concat('#',@id)» + } + } + otherwise { + xsl:copy apply "@* | node()", mode="unlink_clone" { + with "seed","$seed"; + } + } + } +} + +const "result_svg" apply "/", mode="inline_svg"; +const "result_svg_ns", "exsl:node-set($result_svg)"; + +emit "preamble:inline-svg" { + | let id = document.getElementById.bind(document); + | var svg_root = id("«$svg/@id»"); +} + +emit "debug:clone-unlinking" { + | + | Unlinked : + foreach "$to_unlink"{ + | «@id» + } + | Not to unlink : + foreach "$targets_not_to_unlink"{ + | «@id» + } +} diff -r 2b00f90c6888 -r d5b2369a103f svghmi/parse_labels.ysl2 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/parse_labels.ysl2 Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,80 @@ +// parse_labels.ysl2 + + +// Parses: +// "HMI:WidgetType:param1:param2@path1,path1min,path1max@path2" +// +// Into: +// widget type="WidgetType" id="blah456" { +// arg value="param1"; +// arg value="param2"; +// path value=".path1" index=".path1" min="path1min" max="path1max" type="PAGE_LOCAL"; +// path value="/path1" index="348" type="HMI_INT"; +// path value="path4" index="path4" type="HMI_LOCAL"; +// } +// +template "*", mode="parselabel" { + const "label","@inkscape:label"; + const "id","@id"; + const "description", "substring-after($label,'HMI:')"; + + const "_args", "substring-before($description,'@')"; + const "args" choose { + when "$_args" value "$_args"; + otherwise value "$description"; + } + + const "_type", "substring-before($args,':')"; + const "type" choose { + when "$_type" value "$_type"; + otherwise value "$args"; + } + + if "$type" widget { + attrib "id" > «$id» + attrib "type" > «$type» + foreach "str:split(substring-after($args, ':'), ':')" { + arg { + attrib "value" > «.» + } + } + const "paths", "substring-after($description,'@')"; + foreach "str:split($paths, '@')" { + if "string-length(.) > 0" path { + const "pathminmax", "str:split(.,',')"; + const "path", "$pathminmax[1]"; + const "pathminmaxcount", "count($pathminmax)"; + attrib "value" > «$path» + choose { + when "$pathminmaxcount = 3" { + attrib "min" > «$pathminmax[2]» + attrib "max" > «$pathminmax[3]» + } + when "$pathminmaxcount = 2" { + error > Widget id:«$id» label:«$label» has wrong syntax of path section «$pathminmax» + } + } + choose { + when "regexp:test($path,'^\.[a-zA-Z0-9_]+$')" { + attrib "type" > PAGE_LOCAL + } + when "regexp:test($path,'^[a-zA-Z0-9_]+$')" { + attrib "type" > HMI_LOCAL + } + otherwise { + const "item", "$indexed_hmitree/*[@hmipath = $path]"; + const "pathtype", "local-name($item)"; + if "$pathminmaxcount = 3 and not($pathtype = 'HMI_INT' or $pathtype = 'HMI_REAL')" { + error > Widget id:«$id» label:«$label» path section «$pathminmax» use min and max on non mumeric value + } + if "count($item) = 1" { + attrib "index" > «$item/@index» + attrib "type" > «$pathtype» + } + } + } + } + } + } +} + diff -r 2b00f90c6888 -r d5b2369a103f svghmi/pous.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/pous.xml Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,50 @@ +<?xml version='1.0' encoding='utf-8'?> +<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.plcopen.org/xml/tc6_0201" xmlns:xhtml="http://www.w3.org/1999/xhtml" xsi:schemaLocation="http://www.plcopen.org/xml/tc6_0201"> + <fileHeader companyName="Beremiz" productName="Beremiz" productVersion="0.0" creationDateTime="2008-12-14T16:53:26"/> + <contentHeader name="Beremiz non-standard POUs library" modificationDateTime="2019-08-06T14:08:26"> + <coordinateInfo> + <fbd> + <scaling x="0" y="0"/> + </fbd> + <ld> + <scaling x="0" y="0"/> + </ld> + <sfc> + <scaling x="0" y="0"/> + </sfc> + </coordinateInfo> + </contentHeader> + <types> + <dataTypes> + <dataType name="HMI_INT"> + <baseType> + <INT/> + </baseType> + </dataType> + <dataType name="HMI_REAL"> + <baseType> + <REAL/> + </baseType> + </dataType> + <dataType name="HMI_STRING"> + <baseType> + <string/> + </baseType> + </dataType> + <dataType name="HMI_BOOL"> + <baseType> + <BOOL/> + </baseType> + </dataType> + <dataType name="HMI_NODE"> + <baseType> + <BOOL/> + </baseType> + </dataType> + </dataTypes> + <pous/> + </types> + <instances> + <configurations/> + </instances> +</project> diff -r 2b00f90c6888 -r d5b2369a103f svghmi/svghmi.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/svghmi.c Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,370 @@ +#include <pthread.h> +#include <errno.h> +#include "iec_types_all.h" +#include "POUS.h" +#include "config.h" +#include "beremiz.h" + +#define DEFAULT_REFRESH_PERIOD_MS 100 +#define HMI_BUFFER_SIZE %(buffer_size)d +#define HMI_ITEM_COUNT %(item_count)d +#define HMI_HASH_SIZE 8 +static uint8_t hmi_hash[HMI_HASH_SIZE] = {%(hmi_hash_ints)s}; + +/* PLC reads from that buffer */ +static char rbuf[HMI_BUFFER_SIZE]; + +/* PLC writes to that buffer */ +static char wbuf[HMI_BUFFER_SIZE]; + +/* TODO change that in case of multiclient... */ +/* worst biggest send buffer. FIXME : use dynamic alloc ? */ +static char sbuf[HMI_HASH_SIZE + HMI_BUFFER_SIZE + (HMI_ITEM_COUNT * sizeof(uint32_t))]; +static unsigned int sbufidx; + +%(extern_variables_declarations)s + +#define ticktime_ns %(PLC_ticktime)d +static uint16_t ticktime_ms = (ticktime_ns>1000000)? + ticktime_ns/1000000: + 1; + +typedef enum { + buf_free = 0, + buf_new, + buf_set, + buf_tosend +} buf_state_t; + +static int global_write_dirty = 0; + +typedef struct { + void *ptr; + __IEC_types_enum type; + uint32_t buf_index; + + /* publish/write/send */ + long wlock; + buf_state_t wstate; + + /* zero means not subscribed */ + uint16_t refresh_period_ms; + uint16_t age_ms; + + /* retrieve/read/recv */ + long rlock; + buf_state_t rstate; + +} hmi_tree_item_t; + +static hmi_tree_item_t hmi_tree_item[] = { +%(variable_decl_array)s +}; + +typedef int(*hmi_tree_iterator)(uint32_t, hmi_tree_item_t*); +static int traverse_hmi_tree(hmi_tree_iterator fp) +{ + unsigned int i; + for(i = 0; i < sizeof(hmi_tree_item)/sizeof(hmi_tree_item_t); i++){ + hmi_tree_item_t *dsc = &hmi_tree_item[i]; + int res = (*fp)(i, dsc); + if(res != 0){ + return res; + } + } + return 0; +} + +#define __Unpack_desc_type hmi_tree_item_t + +%(var_access_code)s + +static int write_iterator(uint32_t index, hmi_tree_item_t *dsc) +{ + if(AtomicCompareExchange(&dsc->wlock, 0, 1) == 0) + { + if(dsc->wstate == buf_set){ + /* if being subscribed */ + if(dsc->refresh_period_ms){ + if(dsc->age_ms + ticktime_ms < dsc->refresh_period_ms){ + dsc->age_ms += ticktime_ms; + }else{ + dsc->wstate = buf_tosend; + global_write_dirty = 1; + } + } + } + + void *dest_p = &wbuf[dsc->buf_index]; + void *real_value_p = NULL; + char flags = 0; + void *visible_value_p = UnpackVar(dsc, &real_value_p, &flags); + + /* if new value differs from previous one */ + USINT sz = __get_type_enum_size(dsc->type); + if(__Is_a_string(dsc)){ + sz = ((STRING*)visible_value_p)->len + 1; + } + if(dsc->wstate == buf_new /* just subscribed + or already subscribed having value change */ + || (dsc->refresh_period_ms > 0 && memcmp(dest_p, visible_value_p, sz) != 0)){ + /* copy and flag as set */ + memcpy(dest_p, visible_value_p, sz); + /* if not already marked/signaled, do it */ + if(dsc->wstate != buf_set && dsc->wstate != buf_tosend) { + if(dsc->wstate == buf_new || ticktime_ms > dsc->refresh_period_ms){ + dsc->wstate = buf_tosend; + global_write_dirty = 1; + } else { + dsc->wstate = buf_set; + } + dsc->age_ms = 0; + } + } + + AtomicCompareExchange(&dsc->wlock, 1, 0); + } + // else ... : PLC can't wait, variable will be updated next turn + return 0; +} + +static int send_iterator(uint32_t index, hmi_tree_item_t *dsc) +{ + while(AtomicCompareExchange(&dsc->wlock, 0, 1)) sched_yield(); + + if(dsc->wstate == buf_tosend) + { + uint32_t sz = __get_type_enum_size(dsc->type); + if(sbufidx + sizeof(uint32_t) + sz <= sizeof(sbuf)) + { + void *src_p = &wbuf[dsc->buf_index]; + void *dst_p = &sbuf[sbufidx]; + if(__Is_a_string(dsc)){ + sz = ((STRING*)src_p)->len + 1; + } + /* TODO : force into little endian */ + memcpy(dst_p, &index, sizeof(uint32_t)); + memcpy(dst_p + sizeof(uint32_t), src_p, sz); + dsc->wstate = buf_free; + sbufidx += sizeof(uint32_t) /* index */ + sz; + } + else + { + printf("BUG!!! %%d + %%ld + %%d > %%ld \n", sbufidx, sizeof(uint32_t), sz, sizeof(sbuf)); + AtomicCompareExchange(&dsc->wlock, 1, 0); + return EOVERFLOW; + } + } + + AtomicCompareExchange(&dsc->wlock, 1, 0); + return 0; +} + +static int read_iterator(uint32_t index, hmi_tree_item_t *dsc) +{ + if(AtomicCompareExchange(&dsc->rlock, 0, 1) == 0) + { + if(dsc->rstate == buf_set) + { + void *src_p = &rbuf[dsc->buf_index]; + void *real_value_p = NULL; + char flags = 0; + void *visible_value_p = UnpackVar(dsc, &real_value_p, &flags); + memcpy(real_value_p, src_p, __get_type_enum_size(dsc->type)); + dsc->rstate = buf_free; + } + AtomicCompareExchange(&dsc->rlock, 1, 0); + } + // else ... : PLC can't wait, variable will be updated next turn + return 0; +} + +void update_refresh_period(hmi_tree_item_t *dsc, uint16_t refresh_period_ms) +{ + while(AtomicCompareExchange(&dsc->wlock, 0, 1)) sched_yield(); + if(refresh_period_ms) { + if(!dsc->refresh_period_ms) + { + dsc->wstate = buf_new; + } + } else { + dsc->wstate = buf_free; + } + dsc->refresh_period_ms = refresh_period_ms; + AtomicCompareExchange(&dsc->wlock, 1, 0); +} + +static int reset_iterator(uint32_t index, hmi_tree_item_t *dsc) +{ + update_refresh_period(dsc, 0); + return 0; +} + +void SVGHMI_SuspendFromPythonThread(void); +void SVGHMI_WakeupFromRTThread(void); + +static int continue_collect; + +int __init_svghmi() +{ + bzero(rbuf,sizeof(rbuf)); + bzero(wbuf,sizeof(wbuf)); + + continue_collect = 1; + + return 0; +} + +void __cleanup_svghmi() +{ + continue_collect = 0; + SVGHMI_WakeupFromRTThread(); +} + +void __retrieve_svghmi() +{ + traverse_hmi_tree(read_iterator); +} + +void __publish_svghmi() +{ + global_write_dirty = 0; + traverse_hmi_tree(write_iterator); + if(global_write_dirty) { + SVGHMI_WakeupFromRTThread(); + } +} + +/* PYTHON CALLS */ +int svghmi_send_collect(uint32_t *size, char **ptr){ + + SVGHMI_SuspendFromPythonThread(); + + if(continue_collect) { + int res; + sbufidx = HMI_HASH_SIZE; + if((res = traverse_hmi_tree(send_iterator)) == 0) + { + if(sbufidx > HMI_HASH_SIZE){ + memcpy(&sbuf[0], &hmi_hash[0], HMI_HASH_SIZE); + *ptr = &sbuf[0]; + *size = sbufidx; + return 0; + } + return ENODATA; + } + // printf("collected BAD result %%d\n", res); + return res; + } + else + { + return EINTR; + } +} + +typedef enum { + setval = 0, + reset = 1, + subscribe = 2 +} cmd_from_JS; + +// Returns : +// 0 is OK, <0 is error, 1 is heartbeat +int svghmi_recv_dispatch(uint32_t size, const uint8_t *ptr){ + const uint8_t* cursor = ptr + HMI_HASH_SIZE; + const uint8_t* end = ptr + size; + + int was_hearbeat = 0; + + /* match hmitree fingerprint */ + if(size <= HMI_HASH_SIZE || memcmp(ptr, hmi_hash, HMI_HASH_SIZE) != 0) + { + printf("svghmi_recv_dispatch MISMATCH !!\n"); + return -EINVAL; + } + + while(cursor < end) + { + uint32_t progress; + cmd_from_JS cmd = *(cursor++); + switch(cmd) + { + case setval: + { + uint32_t index = *(uint32_t*)(cursor); + uint8_t const *valptr = cursor + sizeof(uint32_t); + + if(index == heartbeat_index) + was_hearbeat = 1; + + if(index < HMI_ITEM_COUNT) + { + hmi_tree_item_t *dsc = &hmi_tree_item[index]; + void *real_value_p = NULL; + char flags = 0; + void *visible_value_p = UnpackVar(dsc, &real_value_p, &flags); + void *dst_p = &rbuf[dsc->buf_index]; + uint32_t sz = __get_type_enum_size(dsc->type); + + if(__Is_a_string(dsc)){ + sz = ((STRING*)valptr)->len + 1; + } + + if((valptr + sz) <= end) + { + // rescheduling spinlock until free + while(AtomicCompareExchange(&dsc->rlock, 0, 1)) sched_yield(); + + memcpy(dst_p, valptr, sz); + dsc->rstate = buf_set; + + AtomicCompareExchange(&dsc->rlock, 1, 0); + progress = sz + sizeof(uint32_t) /* index */; + } + else + { + return -EINVAL; + } + } + else + { + return -EINVAL; + } + } + break; + + case reset: + { + progress = 0; + traverse_hmi_tree(reset_iterator); + } + break; + + case subscribe: + { + uint32_t index = *(uint32_t*)(cursor); + uint16_t refresh_period_ms = *(uint32_t*)(cursor + sizeof(uint32_t)); + + if(index < HMI_ITEM_COUNT) + { + hmi_tree_item_t *dsc = &hmi_tree_item[index]; + update_refresh_period(dsc, refresh_period_ms); + } + else + { + return -EINVAL; + } + + progress = sizeof(uint32_t) /* index */ + + sizeof(uint16_t) /* refresh period */; + } + break; + default: + printf("svghmi_recv_dispatch unknown %%d\n",cmd); + + } + cursor += progress; + } + return was_hearbeat; +} + diff -r 2b00f90c6888 -r d5b2369a103f svghmi/svghmi.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/svghmi.js Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,517 @@ +// svghmi.js + +var need_cache_apply = []; + +function dispatch_value(index, value) { + let widgets = subscribers(index); + + let oldval = cache[index]; + cache[index] = value; + + if(widgets.size > 0) { + for(let widget of widgets){ + widget.new_hmi_value(index, value, oldval); + } + } +}; + +function init_widgets() { + Object.keys(hmi_widgets).forEach(function(id) { + let widget = hmi_widgets[id]; + let init = widget.init; + if(typeof(init) == "function"){ + try { + init.call(widget); + } catch(err) { + console.log(err); + } + } + }); +}; + +// Open WebSocket to relative "/ws" address +var ws = new WebSocket(window.location.href.replace(/^http(s?:\/\/[^\/]*)\/.*$/, 'ws$1/ws')); +ws.binaryType = 'arraybuffer'; + +const dvgetters = { + INT: (dv,offset) => [dv.getInt16(offset, true), 2], + BOOL: (dv,offset) => [dv.getInt8(offset, true), 1], + NODE: (dv,offset) => [dv.getInt8(offset, true), 1], + REAL: (dv,offset) => [dv.getFloat32(offset, true), 4], + STRING: (dv, offset) => { + const size = dv.getInt8(offset); + return [ + String.fromCharCode.apply(null, new Uint8Array( + dv.buffer, /* original buffer */ + offset + 1, /* string starts after size*/ + size /* size of string */ + )), size + 1]; /* total increment */ + } +}; + +// Apply updates recieved through ws.onmessage to subscribed widgets +function apply_updates() { + updates.forEach((value, index) => { + dispatch_value(index, value); + }); + updates.clear(); +} + +// Called on requestAnimationFrame, modifies DOM +var requestAnimationFrameID = null; +function animate() { + // Do the page swith if any one pending + if(current_subscribed_page != current_visible_page){ + switch_visible_page(current_subscribed_page); + } + + while(widget = need_cache_apply.pop()){ + widget.apply_cache(); + } + + if(jumps_need_update) update_jumps(); + + apply_updates(); + + pending_widget_animates.forEach(widget => widget._animate()); + pending_widget_animates = []; + + requestAnimationFrameID = null; +} + +function requestHMIAnimation() { + if(requestAnimationFrameID == null){ + requestAnimationFrameID = window.requestAnimationFrame(animate); + } +} + +// Message reception handler +// Hash is verified and HMI values updates resulting from binary parsing +// are stored until browser can compute next frame, DOM is left untouched +ws.onmessage = function (evt) { + + let data = evt.data; + let dv = new DataView(data); + let i = 0; + try { + for(let hash_int of hmi_hash) { + if(hash_int != dv.getUint8(i)){ + throw new Error("Hash doesn't match"); + }; + i++; + }; + + while(i < data.byteLength){ + let index = dv.getUint32(i, true); + i += 4; + let iectype = hmitree_types[index]; + if(iectype != undefined){ + let dvgetter = dvgetters[iectype]; + let [value, bytesize] = dvgetter(dv,i); + updates.set(index, value); + i += bytesize; + } else { + throw new Error("Unknown index "+index); + } + }; + // register for rendering on next frame, since there are updates + requestHMIAnimation(); + } catch(err) { + // 1003 is for "Unsupported Data" + // ws.close(1003, err.message); + + // TODO : remove debug alert ? + alert("Error : "+err.message+"\\\\nHMI will be reloaded."); + + // force reload ignoring cache + location.reload(true); + } +}; + +hmi_hash_u8 = new Uint8Array(hmi_hash); + +function send_blob(data) { + if(data.length > 0) { + ws.send(new Blob([hmi_hash_u8].concat(data))); + }; +}; + +const typedarray_types = { + INT: (number) => new Int16Array([number]), + BOOL: (truth) => new Int16Array([truth]), + NODE: (truth) => new Int16Array([truth]), + REAL: (number) => new Float32Array([number]), + STRING: (str) => { + // beremiz default string max size is 128 + str = str.slice(0,128); + binary = new Uint8Array(str.length + 1); + binary[0] = str.length; + for(let i = 0; i < str.length; i++){ + binary[i+1] = str.charCodeAt(i); + } + return binary; + } + /* TODO */ +}; + +function send_reset() { + send_blob(new Uint8Array([1])); /* reset = 1 */ +}; + +var subscriptions = []; + +function subscribers(index) { + let entry = subscriptions[index]; + let res; + if(entry == undefined){ + res = new Set(); + subscriptions[index] = [res,0]; + }else{ + [res, _ign] = entry; + } + return res +} + +function get_subscription_period(index) { + let entry = subscriptions[index]; + if(entry == undefined) + return 0; + let [_ign, period] = entry; + return period; +} + +function set_subscription_period(index, period) { + let entry = subscriptions[index]; + if(entry == undefined){ + subscriptions[index] = [new Set(), period]; + } else { + entry[1] = period; + } +} + +// artificially subscribe the watchdog widget to "/heartbeat" hmi variable +// Since dispatch directly calls change_hmi_value, +// PLC will periodically send variable at given frequency +subscribers(heartbeat_index).add({ + /* type: "Watchdog", */ + frequency: 1, + indexes: [heartbeat_index], + new_hmi_value: function(index, value, oldval) { + apply_hmi_value(heartbeat_index, value+1); + } +}); + +function svg_text_to_multiline(elt) { + return(Array.prototype.map.call(elt.children, x=>x.textContent).join("\\\\n")); +} + +function multiline_to_svg_text(elt, str) { + str.split('\\\\n').map((line,i) => {elt.children[i].textContent = line;}); +} + +function switch_langnum(langnum) { + langnum = Math.max(0, Math.min(langs.length - 1, langnum)); + + for (let translation of translations) { + let [objs, msgs] = translation; + let msg = msgs[langnum]; + for (let obj of objs) { + multiline_to_svg_text(obj, msg); + obj.setAttribute("lang",langnum); + } + } + return langnum; +} + +// backup original texts +for (let translation of translations) { + let [objs, msgs] = translation; + msgs.unshift(svg_text_to_multiline(objs[0])); +} + +var lang_local_index = hmi_local_index("lang"); +var langcode_local_index = hmi_local_index("lang_code"); +var langname_local_index = hmi_local_index("lang_name"); +subscribers(lang_local_index).add({ + indexes: [lang_local_index], + new_hmi_value: function(index, value, oldval) { + let current_lang = switch_langnum(value); + let [langname,langcode] = langs[current_lang]; + apply_hmi_value(langcode_local_index, langcode); + apply_hmi_value(langname_local_index, langname); + switch_page(); + } +}); + +function setup_lang(){ + let current_lang = cache[lang_local_index]; + let new_lang = switch_langnum(current_lang); + if(current_lang != new_lang){ + apply_hmi_value(lang_local_index, new_lang); + } +} + +setup_lang(); + +function update_subscriptions() { + let delta = []; + for(let index in subscriptions){ + let widgets = subscribers(index); + + // periods are in ms + let previous_period = get_subscription_period(index); + + // subscribing with a zero period is unsubscribing + let new_period = 0; + if(widgets.size > 0) { + let maxfreq = 0; + for(let widget of widgets){ + let wf = widget.frequency; + if(wf != undefined && maxfreq < wf) + maxfreq = wf; + } + + if(maxfreq != 0) + new_period = 1000/maxfreq; + } + + if(previous_period != new_period) { + set_subscription_period(index, new_period); + if(index <= last_remote_index){ + delta.push( + new Uint8Array([2]), /* subscribe = 2 */ + new Uint32Array([index]), + new Uint16Array([new_period])); + } + } + } + send_blob(delta); +}; + +function send_hmi_value(index, value) { + if(index > last_remote_index){ + updates.set(index, value); + + if(persistent_indexes.has(index)){ + let varname = persistent_indexes.get(index); + document.cookie = varname+"="+value+"; max-age=3153600000"; + } + + requestHMIAnimation(); + return; + } + + let iectype = hmitree_types[index]; + let tobinary = typedarray_types[iectype]; + send_blob([ + new Uint8Array([0]), /* setval = 0 */ + new Uint32Array([index]), + tobinary(value)]); + + // DON'T DO THAT unless read_iterator in svghmi.c modifies wbuf as well, not only rbuf + // cache[index] = value; +}; + +function apply_hmi_value(index, new_val) { + let old_val = cache[index]; + if(new_val != undefined && old_val != new_val) + send_hmi_value(index, new_val); + return new_val; +} + +const quotes = {"'":null, '"':null}; + +function eval_operation_string(old_val, opstr) { + let op = opstr[0]; + let given_val; + if(opstr.length < 2) + return undefined; + if(opstr[1] in quotes){ + if(opstr.length < 3) + return undefined; + if(opstr[opstr.length-1] == opstr[1]){ + given_val = opstr.slice(2,opstr.length-1); + } + } else { + given_val = Number(opstr.slice(1)); + } + let new_val; + switch(op){ + case "=": + new_val = given_val; + break; + case "+": + new_val = old_val + given_val; + break; + case "-": + new_val = old_val - given_val; + break; + case "*": + new_val = old_val * given_val; + break; + case "/": + new_val = old_val / given_val; + break; + } + return new_val; +} + +var current_visible_page; +var current_subscribed_page; +var current_page_index; +var page_node_local_index = hmi_local_index("page_node"); + +function prepare_svg() { + // prevents context menu from appearing on right click and long touch + document.body.addEventListener('contextmenu', e => { + e.preventDefault(); + }); + + for(let eltid in detachable_elements){ + let [element,parent] = detachable_elements[eltid]; + parent.removeChild(element); + } +}; + +function switch_page(page_name, page_index) { + if(current_subscribed_page != current_visible_page){ + /* page switch already going */ + /* TODO LOG ERROR */ + return false; + } + + if(page_name == undefined) + page_name = current_subscribed_page; + + + let old_desc = page_desc[current_subscribed_page]; + let new_desc = page_desc[page_name]; + + if(new_desc == undefined){ + /* TODO LOG ERROR */ + return false; + } + + if(page_index == undefined){ + page_index = new_desc.page_index; + } + + if(old_desc){ + old_desc.widgets.map(([widget,relativeness])=>widget.unsub()); + } + const new_offset = page_index == undefined ? 0 : page_index - new_desc.page_index; + + const container_id = page_name + (page_index != undefined ? page_index : ""); + + new_desc.widgets.map(([widget,relativeness])=>widget.sub(new_offset,relativeness,container_id)); + + update_subscriptions(); + + current_subscribed_page = page_name; + current_page_index = page_index; + let page_node; + if(page_index != undefined){ + page_node = hmitree_paths[page_index]; + }else{ + page_node = ""; + } + apply_hmi_value(page_node_local_index, page_node); + + jumps_need_update = true; + + requestHMIAnimation(); + jump_history.push([page_name, page_index]); + if(jump_history.length > 42) + jump_history.shift(); + + return true; +}; + +function switch_visible_page(page_name) { + + let old_desc = page_desc[current_visible_page]; + let new_desc = page_desc[page_name]; + + if(old_desc){ + for(let eltid in old_desc.required_detachables){ + if(!(eltid in new_desc.required_detachables)){ + let [element, parent] = old_desc.required_detachables[eltid]; + parent.removeChild(element); + } + } + for(let eltid in new_desc.required_detachables){ + if(!(eltid in old_desc.required_detachables)){ + let [element, parent] = new_desc.required_detachables[eltid]; + parent.appendChild(element); + } + } + }else{ + for(let eltid in new_desc.required_detachables){ + let [element, parent] = new_desc.required_detachables[eltid]; + parent.appendChild(element); + } + } + + svg_root.setAttribute('viewBox',new_desc.bbox.join(" ")); + current_visible_page = page_name; +}; + +// Once connection established +ws.onopen = function (evt) { + init_widgets(); + send_reset(); + // show main page + prepare_svg(); + switch_page(default_page); +}; + +ws.onclose = function (evt) { + // TODO : add visible notification while waiting for reload + console.log("Connection closed. code:"+evt.code+" reason:"+evt.reason+" wasClean:"+evt.wasClean+" Reload in 10s."); + // TODO : re-enable auto reload when not in debug + //window.setTimeout(() => location.reload(true), 10000); + alert("Connection closed. code:"+evt.code+" reason:"+evt.reason+" wasClean:"+evt.wasClean+"."); + +}; + +const xmlns = "http://www.w3.org/2000/svg"; +var edit_callback; +const localtypes = {"PAGE_LOCAL":null, "HMI_LOCAL":null} +function edit_value(path, valuetype, callback, initial) { + if(valuetype in localtypes){ + valuetype = (typeof initial) == "number" ? "HMI_REAL" : "HMI_STRING"; + } + let [keypadid, xcoord, ycoord] = keypads[valuetype]; + edit_callback = callback; + let widget = hmi_widgets[keypadid]; + widget.start_edit(path, valuetype, callback, initial); +}; + +var current_modal; /* TODO stack ?*/ + +function show_modal() { + let [element, parent] = detachable_elements[this.element.id]; + + tmpgrp = document.createElementNS(xmlns,"g"); + tmpgrpattr = document.createAttribute("transform"); + let [xcoord,ycoord] = this.coordinates; + let [xdest,ydest] = page_desc[current_visible_page].bbox; + tmpgrpattr.value = "translate("+String(xdest-xcoord)+","+String(ydest-ycoord)+")"; + + tmpgrp.setAttributeNode(tmpgrpattr); + + tmpgrp.appendChild(element); + parent.appendChild(tmpgrp); + + current_modal = [this.element.id, tmpgrp]; +}; + +function end_modal() { + let [eltid, tmpgrp] = current_modal; + let [element, parent] = detachable_elements[this.element.id]; + + parent.removeChild(tmpgrp); + + current_modal = undefined; +}; + diff -r 2b00f90c6888 -r d5b2369a103f svghmi/svghmi.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/svghmi.py Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,709 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# This file is part of Beremiz +# Copyright (C) 2021: Edouard TISSERANT +# +# See COPYING file for copyrights details. + +from __future__ import absolute_import +import os +import shutil +import hashlib +import shlex +import time + +import wx + +from lxml import etree +from lxml.etree import XSLTApplyError + +import util.paths as paths +from POULibrary import POULibrary +from docutil import open_svg, get_inkscape_path + +from util.ProcessLogger import ProcessLogger +from runtime.typemapping import DebugTypesSize +import targets +from editors.ConfTreeNodeEditor import ConfTreeNodeEditor +from XSLTransform import XSLTransform +from svghmi.i18n import EtreeToMessages, SaveCatalog, ReadTranslations,\ + MatchTranslations, TranslationToEtree, open_pofile,\ + GetPoFiles +from svghmi.hmi_tree import HMI_TYPES, HMITreeNode, SPECIAL_NODES +from svghmi.ui import SVGHMI_UI +from svghmi.fonts import GetFontTypeAndFamilyName, GetCSSFontFaceFromFontFile + + +ScriptDirectory = paths.AbsDir(__file__) + + +# module scope for HMITree root +# so that CTN can use HMITree deduced in Library +# note: this only works because library's Generate_C is +# systematicaly invoked before CTN's CTNGenerate_C + +hmi_tree_root = None + +on_hmitree_update = None + +class SVGHMILibrary(POULibrary): + def GetLibraryPath(self): + return paths.AbsNeighbourFile(__file__, "pous.xml") + + def Generate_C(self, buildpath, varlist, IECCFLAGS): + global hmi_tree_root, on_hmitree_update + + """ + PLC Instance Tree: + prog0 + +->v1 HMI_INT + +->v2 HMI_INT + +->fb0 (type mhoo) + | +->va HMI_NODE + | +->v3 HMI_INT + | +->v4 HMI_INT + | + +->fb1 (type mhoo) + | +->va HMI_NODE + | +->v3 HMI_INT + | +->v4 HMI_INT + | + +->fb2 + +->v5 HMI_IN + + HMI tree: + hmi0 + +->v1 + +->v2 + +->fb0 class:va + | +-> v3 + | +-> v4 + | + +->fb1 class:va + | +-> v3 + | +-> v4 + | + +->v5 + + """ + + # Filter known HMI types + hmi_types_instances = [v for v in varlist if v["derived"] in HMI_TYPES] + + hmi_tree_root = None + + # take first HMI_NODE (placed as special node), make it root + for i,v in enumerate(hmi_types_instances): + path = v["IEC_path"].split(".") + derived = v["derived"] + if derived == "HMI_NODE": + hmi_tree_root = HMITreeNode(path, "", derived, v["type"], v["vartype"], v["C_path"]) + hmi_types_instances.pop(i) + break + + if hmi_tree_root is None: + self.FatalError("SVGHMI : Library is selected but not used. Please either deselect it in project config or add a SVGHMI node to project.") + + # deduce HMI tree from PLC HMI_* instances + for v in hmi_types_instances: + path = v["IEC_path"].split(".") + # ignores variables starting with _TMP_ + if path[-1].startswith("_TMP_"): + continue + derived = v["derived"] + kwargs={} + if derived == "HMI_NODE": + # TODO : make problem if HMI_NODE used in CONFIG or RESOURCE + name = path[-2] + kwargs['hmiclass'] = path[-1] + else: + name = path[-1] + new_node = HMITreeNode(path, name, derived, v["type"], v["vartype"], v["C_path"], **kwargs) + placement_result = hmi_tree_root.place_node(new_node) + if placement_result is not None: + cause, problematic_node = placement_result + if cause == "Non_Unique": + message = _("HMI tree nodes paths are not unique.\nConflicting variable: {} {}").format( + ".".join(problematic_node.path), + ".".join(new_node.path)) + + last_FB = None + for v in varlist: + if v["vartype"] == "FB": + last_FB = v + if v["C_path"] == problematic_node: + break + if last_FB is not None: + failing_parent = last_FB["type"] + message += "\n" + message += _("Solution: Add HMI_NODE at beginning of {}").format(failing_parent) + + elif cause in ["Late_HMI_NODE", "Duplicate_HMI_NODE"]: + cause, problematic_node = placement_result + message = _("There must be only one occurrence of HMI_NODE before any HMI_* variable in POU.\nConflicting variable: {} {}").format( + ".".join(problematic_node.path), + ".".join(new_node.path)) + + self.FatalError("SVGHMI : " + message) + + if on_hmitree_update is not None: + on_hmitree_update(hmi_tree_root) + + variable_decl_array = [] + extern_variables_declarations = [] + buf_index = 0 + item_count = 0 + found_heartbeat = False + + hearbeat_IEC_path = ['CONFIG', 'HEARTBEAT'] + + for node in hmi_tree_root.traverse(): + if not found_heartbeat and node.path == hearbeat_IEC_path: + hmi_tree_hearbeat_index = item_count + found_heartbeat = True + extern_variables_declarations += [ + "#define heartbeat_index "+str(hmi_tree_hearbeat_index) + ] + if hasattr(node, "iectype"): + sz = DebugTypesSize.get(node.iectype, 0) + variable_decl_array += [ + "{&(" + node.cpath + "), " + node.iectype + { + "EXT": "_P_ENUM", + "IN": "_P_ENUM", + "MEM": "_O_ENUM", + "OUT": "_O_ENUM", + "VAR": "_ENUM" + }[node.vartype] + ", " + + str(buf_index) + ", 0, }"] + buf_index += sz + item_count += 1 + if len(node.path) == 1: + extern_variables_declarations += [ + "extern __IEC_" + node.iectype + "_" + + "t" if node.vartype is "VAR" else "p" + + node.cpath + ";"] + + assert(found_heartbeat) + + # TODO : filter only requiered external declarations + for v in varlist: + if v["C_path"].find('.') < 0: + extern_variables_declarations += [ + "extern %(type)s %(C_path)s;" % v] + + # TODO check if programs need to be declared separately + # "programs_declarations": "\n".join(["extern %(type)s %(C_path)s;" % + # p for p in self._ProgramList]), + + # C code to observe/access HMI tree variables + svghmi_c_filepath = paths.AbsNeighbourFile(__file__, "svghmi.c") + svghmi_c_file = open(svghmi_c_filepath, 'r') + svghmi_c_code = svghmi_c_file.read() + svghmi_c_file.close() + svghmi_c_code = svghmi_c_code % { + "variable_decl_array": ",\n".join(variable_decl_array), + "extern_variables_declarations": "\n".join(extern_variables_declarations), + "buffer_size": buf_index, + "item_count": item_count, + "var_access_code": targets.GetCode("var_access.c"), + "PLC_ticktime": self.GetCTR().GetTicktime(), + "hmi_hash_ints": ",".join(map(str,hmi_tree_root.hash())) + } + + gen_svghmi_c_path = os.path.join(buildpath, "svghmi.c") + gen_svghmi_c = open(gen_svghmi_c_path, 'w') + gen_svghmi_c.write(svghmi_c_code) + gen_svghmi_c.close() + + # Python based WebSocket HMITree Server + svghmiserverfile = open(paths.AbsNeighbourFile(__file__, "svghmi_server.py"), 'r') + svghmiservercode = svghmiserverfile.read() + svghmiserverfile.close() + + runtimefile_path = os.path.join(buildpath, "runtime_00_svghmi.py") + runtimefile = open(runtimefile_path, 'w') + runtimefile.write(svghmiservercode) + runtimefile.close() + + # Backup HMI Tree in XML form so that it can be loaded without building + hmitree_backup_path = os.path.join(buildpath, "hmitree.xml") + hmitree_backup_file = open(hmitree_backup_path, 'wb') + hmitree_backup_file.write(etree.tostring(hmi_tree_root.etree())) + hmitree_backup_file.close() + + return ((["svghmi"], [(gen_svghmi_c_path, IECCFLAGS)], True), "", + ("runtime_00_svghmi.py", open(runtimefile_path, "rb"))) + # ^ + # note the double zero after "runtime_", + # to ensure placement before other CTN generated code in execution order + + +def Register_SVGHMI_UI_for_HMI_tree_updates(ref): + global on_hmitree_update + def HMITreeUpdate(_hmi_tree_root): + obj = ref() + if obj is not None: + obj.HMITreeUpdate(_hmi_tree_root) + + on_hmitree_update = HMITreeUpdate + + +class SVGHMIEditor(ConfTreeNodeEditor): + CONFNODEEDITOR_TABS = [ + (_("HMI Tree"), "CreateSVGHMI_UI")] + + def CreateSVGHMI_UI(self, parent): + global hmi_tree_root + + if hmi_tree_root is None: + buildpath = self.Controler.GetCTRoot()._getBuildPath() + hmitree_backup_path = os.path.join(buildpath, "hmitree.xml") + if os.path.exists(hmitree_backup_path): + hmitree_backup_file = open(hmitree_backup_path, 'rb') + hmi_tree_root = HMITreeNode.from_etree(etree.parse(hmitree_backup_file).getroot()) + + ret = SVGHMI_UI(parent, Register_SVGHMI_UI_for_HMI_tree_updates) + + on_hmitree_update(hmi_tree_root) + + return ret + +class SVGHMI(object): + XSD = """<?xml version="1.0" encoding="utf-8" ?> + <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <xsd:element name="SVGHMI"> + <xsd:complexType> + <xsd:attribute name="OnStart" type="xsd:string" use="optional"/> + <xsd:attribute name="OnStop" type="xsd:string" use="optional"/> + <xsd:attribute name="OnWatchdog" type="xsd:string" use="optional"/> + <xsd:attribute name="WatchdogInitial" type="xsd:integer" use="optional"/> + <xsd:attribute name="WatchdogInterval" type="xsd:integer" use="optional"/> + </xsd:complexType> + </xsd:element> + </xsd:schema> + """ + + EditorType = SVGHMIEditor + + ConfNodeMethods = [ + { + "bitmap": "ImportSVG", + "name": _("Import SVG"), + "tooltip": _("Import SVG"), + "method": "_ImportSVG" + }, + { + "bitmap": "EditSVG", + "name": _("Inkscape"), + "tooltip": _("Edit HMI"), + "method": "_StartInkscape" + }, + { + "bitmap": "OpenPOT", + "name": _("New lang"), + "tooltip": _("Open non translated message catalog (POT) to start new language"), + "method": "_OpenPOT" + }, + { + "bitmap": "EditPO", + "name": _("Edit lang"), + "tooltip": _("Edit existing message catalog (PO) for specific language"), + "method": "_EditPO" + }, + { + "bitmap": "AddFont", + "name": _("Add Font"), + "tooltip": _("Add TTF, OTF or WOFF font to be embedded in HMI"), + "method": "_AddFont" + }, + { + "bitmap": "DelFont", + "name": _("Delete Font"), + "tooltip": _("Remove font previously added to HMI"), + "method": "_DelFont" + }, + ] + + def _getSVGpath(self, project_path=None): + if project_path is None: + project_path = self.CTNPath() + return os.path.join(project_path, "svghmi.svg") + + def _getPOTpath(self, project_path=None): + if project_path is None: + project_path = self.CTNPath() + return os.path.join(project_path, "messages.pot") + + def OnCTNSave(self, from_project_path=None): + if from_project_path is not None: + shutil.copyfile(self._getSVGpath(from_project_path), + self._getSVGpath()) + shutil.copyfile(self._getPOTpath(from_project_path), + self._getPOTpath()) + # XXX TODO copy .PO files + return True + + def GetSVGGeometry(self): + self.ProgressStart("inkscape", "collecting SVG geometry (Inkscape)") + # invoke inskscape -S, csv-parse output, produce elements + InkscapeGeomColumns = ["Id", "x", "y", "w", "h"] + + inkpath = get_inkscape_path() + + if inkpath is None: + self.FatalError("SVGHMI: inkscape is not installed.") + + svgpath = self._getSVGpath() + status, result, _err_result = ProcessLogger(self.GetCTRoot().logger, + '"' + inkpath + '" -S "' + svgpath + '"', + no_stdout=True, + no_stderr=True).spin() + if status != 0: + self.FatalError("SVGHMI: inkscape couldn't extract geometry from given SVG.") + + res = [] + for line in result.split(): + strippedline = line.strip() + attrs = dict( + zip(InkscapeGeomColumns, line.strip().split(','))) + + res.append(etree.Element("bbox", **attrs)) + + self.ProgressEnd("inkscape") + return res + + def GetHMITree(self): + global hmi_tree_root + self.ProgressStart("hmitree", "getting HMI tree") + res = [hmi_tree_root.etree(add_hash=True)] + self.ProgressEnd("hmitree") + return res + + def GetTranslations(self, _context, msgs): + self.ProgressStart("i18n", "getting Translations") + messages = EtreeToMessages(msgs) + + if len(messages) == 0: + self.ProgressEnd("i18n") + return + + SaveCatalog(self._getPOTpath(), messages) + + translations = ReadTranslations(self.CTNPath()) + + langs,translated_messages = MatchTranslations(translations, messages, + errcallback=self.GetCTRoot().logger.write_warning) + + ret = TranslationToEtree(langs,translated_messages) + + self.ProgressEnd("i18n") + + return ret + + def GetFontsFiles(self): + project_path = self.CTNPath() + fontdir = os.path.join(project_path, "fonts") + if os.path.isdir(fontdir): + return [os.path.join(fontdir,f) for f in sorted(os.listdir(fontdir))] + return [] + + def GetFonts(self, _context): + css_parts = [] + + for fontfile in self.GetFontsFiles(): + if os.path.isfile(fontfile): + css_parts.append(GetCSSFontFaceFromFontFile(fontfile)) + + return "".join(css_parts) + + times_msgs = {} + indent = 1 + def ProgressStart(self, k, m): + self.times_msgs[k] = (time.time(), m) + self.GetCTRoot().logger.write(" "*self.indent + "Start %s...\n"%m) + self.indent = self.indent + 1 + + def ProgressEnd(self, k): + t = time.time() + oldt, m = self.times_msgs[k] + self.indent = self.indent - 1 + self.GetCTRoot().logger.write(" "*self.indent + "... finished in %.3fs\n"%(t - oldt)) + + def CTNGenerate_C(self, buildpath, locations): + + location_str = "_".join(map(str, self.GetCurrentLocation())) + view_name = self.BaseParams.getName() + + svgfile = self._getSVGpath() + + res = ([], "", False) + + target_fname = "svghmi_"+location_str+".xhtml" + + build_path = self._getBuildPath() + target_path = os.path.join(build_path, target_fname) + hash_path = os.path.join(build_path, "svghmi.md5") + + self.GetCTRoot().logger.write("SVGHMI:\n") + + if os.path.exists(svgfile): + + hasher = hashlib.md5() + hmi_tree_root._hash(hasher) + pofiles = GetPoFiles(self.CTNPath()) + filestocheck = [svgfile] + \ + (list(zip(*pofiles)[1]) if pofiles else []) + \ + self.GetFontsFiles() + + for filetocheck in filestocheck: + with open(filetocheck, 'rb') as afile: + while True: + buf = afile.read(65536) + if len(buf) > 0: + hasher.update(buf) + else: + break + digest = hasher.hexdigest() + + if os.path.exists(hash_path): + with open(hash_path, 'rb') as digest_file: + last_digest = digest_file.read() + else: + last_digest = None + + if digest != last_digest: + + transform = XSLTransform(os.path.join(ScriptDirectory, "gen_index_xhtml.xslt"), + [("GetSVGGeometry", lambda *_ignored:self.GetSVGGeometry()), + ("GetHMITree", lambda *_ignored:self.GetHMITree()), + ("GetTranslations", self.GetTranslations), + ("GetFonts", self.GetFonts), + ("ProgressStart", lambda _ign,k,m:self.ProgressStart(str(k),str(m))), + ("ProgressEnd", lambda _ign,k:self.ProgressEnd(str(k)))]) + + self.ProgressStart("svg", "source SVG parsing") + + # load svg as a DOM with Etree + svgdom = etree.parse(svgfile) + + self.ProgressEnd("svg") + + # call xslt transform on Inkscape's SVG to generate XHTML + try: + self.ProgressStart("xslt", "XSLT transform") + result = transform.transform(svgdom) # , profile_run=True) + self.ProgressEnd("xslt") + except XSLTApplyError as e: + self.FatalError("SVGHMI " + view_name + ": " + e.message) + finally: + for entry in transform.get_error_log(): + message = "SVGHMI: "+ entry.message + "\n" + self.GetCTRoot().logger.write_warning(message) + + target_file = open(target_path, 'wb') + result.write(target_file, encoding="utf-8") + target_file.close() + + # print(str(result)) + # print(transform.xslt.error_log) + # print(etree.tostring(result.xslt_profile,pretty_print=True)) + + with open(hash_path, 'wb') as digest_file: + digest_file.write(digest) + else: + self.GetCTRoot().logger.write(" No changes - XSLT transformation skipped\n") + + else: + target_file = open(target_path, 'wb') + target_file.write("""<!DOCTYPE html> +<html> +<body> +<h1> No SVG file provided </h1> +</body> +</html> +""") + target_file.close() + + res += ((target_fname, open(target_path, "rb")),) + + svghmi_cmds = {} + for thing in ["Start", "Stop", "Watchdog"]: + given_command = self.GetParamsAttributes("SVGHMI.On"+thing)["value"] + svghmi_cmds[thing] = ( + "Popen(" + + repr(shlex.split(given_command.format(port="8008", name=view_name))) + + ")") if given_command else "pass # no command given" + + runtimefile_path = os.path.join(buildpath, "runtime_%s_svghmi_.py" % location_str) + runtimefile = open(runtimefile_path, 'w') + runtimefile.write(""" +# TODO : multiple watchdog (one for each svghmi instance) +def svghmi_watchdog_trigger(): + {svghmi_cmds[Watchdog]} + +svghmi_watchdog = None + +def _runtime_{location}_svghmi_start(): + global svghmi_watchdog + svghmi_root.putChild( + '{view_name}', + NoCacheFile('{xhtml}', + defaultType='application/xhtml+xml')) + + {svghmi_cmds[Start]} + + svghmi_watchdog = Watchdog( + {watchdog_initial}, + {watchdog_interval}, + svghmi_watchdog_trigger) + +def _runtime_{location}_svghmi_stop(): + global svghmi_watchdog + if svghmi_watchdog is not None: + svghmi_watchdog.cancel() + svghmi_watchdog = None + + svghmi_root.delEntity('{view_name}') + {svghmi_cmds[Stop]} + + """.format(location=location_str, + xhtml=target_fname, + view_name=view_name, + svghmi_cmds=svghmi_cmds, + watchdog_initial = self.GetParamsAttributes("SVGHMI.WatchdogInitial")["value"], + watchdog_interval = self.GetParamsAttributes("SVGHMI.WatchdogInterval")["value"], + )) + + runtimefile.close() + + res += (("runtime_%s_svghmi.py" % location_str, open(runtimefile_path, "rb")),) + + return res + + def _ImportSVG(self): + dialog = wx.FileDialog(self.GetCTRoot().AppFrame, _("Choose a SVG file"), os.getcwd(), "", _("SVG files (*.svg)|*.svg|All files|*.*"), wx.OPEN) + if dialog.ShowModal() == wx.ID_OK: + svgpath = dialog.GetPath() + if os.path.isfile(svgpath): + shutil.copy(svgpath, self._getSVGpath()) + else: + self.GetCTRoot().logger.write_error(_("No such SVG file: %s\n") % svgpath) + dialog.Destroy() + + def _StartInkscape(self): + svgfile = self._getSVGpath() + open_inkscape = True + if not self.GetCTRoot().CheckProjectPathPerm(): + dialog = wx.MessageDialog(self.GetCTRoot().AppFrame, + _("You don't have write permissions.\nOpen Inkscape anyway ?"), + _("Open Inkscape"), + wx.YES_NO | wx.ICON_QUESTION) + open_inkscape = dialog.ShowModal() == wx.ID_YES + dialog.Destroy() + if open_inkscape: + if not os.path.isfile(svgfile): + svgfile = None + open_svg(svgfile) + + def _StartPOEdit(self, POFile): + open_poedit = True + if not self.GetCTRoot().CheckProjectPathPerm(): + dialog = wx.MessageDialog(self.GetCTRoot().AppFrame, + _("You don't have write permissions.\nOpen POEdit anyway ?"), + _("Open POEdit"), + wx.YES_NO | wx.ICON_QUESTION) + open_poedit = dialog.ShowModal() == wx.ID_YES + dialog.Destroy() + if open_poedit: + open_pofile(POFile) + + def _EditPO(self): + """ Select a specific translation and edit it with POEdit """ + project_path = self.CTNPath() + dialog = wx.FileDialog(self.GetCTRoot().AppFrame, _("Choose a PO file"), project_path, "", _("PO files (*.po)|*.po"), wx.OPEN) + if dialog.ShowModal() == wx.ID_OK: + POFile = dialog.GetPath() + if os.path.isfile(POFile): + if os.path.relpath(POFile, project_path) == os.path.basename(POFile): + self._StartPOEdit(POFile) + else: + self.GetCTRoot().logger.write_error(_("PO file misplaced: %s is not in %s\n") % (POFile,project_path)) + else: + self.GetCTRoot().logger.write_error(_("PO file does not exist: %s\n") % POFile) + dialog.Destroy() + + def _OpenPOT(self): + """ Start POEdit with untouched empty catalog """ + POFile = self._getPOTpath() + if os.path.isfile(POFile): + self._StartPOEdit(POFile) + else: + self.GetCTRoot().logger.write_error(_("POT file does not exist, add translatable text (label starting with '_') in Inkscape first\n")) + + def _AddFont(self): + dialog = wx.FileDialog( + self.GetCTRoot().AppFrame, + _("Choose a font"), + os.path.expanduser("~"), + "", + _("Font files (*.ttf;*.otf;*.woff;*.woff2)|*.ttf;*.otf;*.woff;*.woff2"), wx.OPEN) + + if dialog.ShowModal() == wx.ID_OK: + fontfile = dialog.GetPath() + if os.path.isfile(fontfile): + familyname, uniquename, formatname, mimetype = GetFontTypeAndFamilyName(fontfile) + else: + self.GetCTRoot().logger.write_error( + _('Selected font %s is not a readable file\n')%fontfile) + return + if familyname is None or uniquename is None or formatname is None or mimetype is None: + self.GetCTRoot().logger.write_error( + _('Selected font file %s is invalid or incompatible\n')%fontfile) + return + + project_path = self.CTNPath() + + fontfname = uniquename + "." + mimetype.split('/')[1] + fontdir = os.path.join(project_path, "fonts") + newfontfile = os.path.join(fontdir, fontfname) + + if not os.path.exists(fontdir): + os.mkdir(fontdir) + + shutil.copyfile(fontfile, newfontfile) + + self.GetCTRoot().logger.write( + _('Added font %s as %s\n')%(fontfile,newfontfile)) + + def _DelFont(self): + project_path = self.CTNPath() + fontdir = os.path.join(project_path, "fonts") + dialog = wx.FileDialog( + self.GetCTRoot().AppFrame, + _("Choose a font to remove"), + fontdir, + "", + _("Font files (*.ttf;*.otf;*.woff;*.woff2)|*.ttf;*.otf;*.woff;*.woff2"), wx.OPEN) + if dialog.ShowModal() == wx.ID_OK: + fontfile = dialog.GetPath() + if os.path.isfile(fontfile): + if os.path.relpath(fontfile, fontdir) == os.path.basename(fontfile): + os.remove(fontfile) + self.GetCTRoot().logger.write( + _('Removed font %s\n')%fontfile) + else: + self.GetCTRoot().logger.write_error( + _("Font to remove %s is not in %s\n") % (fontfile,fontdir)) + else: + self.GetCTRoot().logger.write_error( + _("Font file does not exist: %s\n") % fontfile) + + def CTNGlobalInstances(self): + # view_name = self.BaseParams.getName() + # return [ (view_name + "_" + name, iec_type, "") for name, iec_type in SPECIAL_NODES] + # TODO : move to library level for multiple hmi + return [(name, iec_type, "") for name, iec_type in SPECIAL_NODES] + + def GetIconName(self): + return "SVGHMI" diff -r 2b00f90c6888 -r d5b2369a103f svghmi/svghmi_server.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/svghmi_server.py Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,204 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# This file is part of Beremiz +# Copyright (C) 2019: Edouard TISSERANT +# See COPYING file for copyrights details. + +from __future__ import absolute_import +import errno +from threading import RLock, Timer + +try: + from runtime.spawn_subprocess import Popen +except ImportError: + from subprocess import Popen + +from twisted.web.server import Site +from twisted.web.resource import Resource +from twisted.internet import reactor +from twisted.web.static import File + +from autobahn.twisted.websocket import WebSocketServerFactory, WebSocketServerProtocol +from autobahn.websocket.protocol import WebSocketProtocol +from autobahn.twisted.resource import WebSocketResource + +# TODO multiclient : +# session list lock +# svghmi_sessions = [] +# svghmi_watchdogs = [] + +svghmi_session = None +svghmi_watchdog = None + +svghmi_send_collect = PLCBinary.svghmi_send_collect +svghmi_send_collect.restype = ctypes.c_int # error or 0 +svghmi_send_collect.argtypes = [ + ctypes.POINTER(ctypes.c_uint32), # size + ctypes.POINTER(ctypes.c_void_p)] # data ptr +# TODO multiclient : switch to arrays + +svghmi_recv_dispatch = PLCBinary.svghmi_recv_dispatch +svghmi_recv_dispatch.restype = ctypes.c_int # error or 0 +svghmi_recv_dispatch.argtypes = [ + ctypes.c_uint32, # size + ctypes.c_char_p] # data ptr +# TODO multiclient : switch to arrays + +class HMISession(object): + def __init__(self, protocol_instance): + global svghmi_session + + # Single client : + # Creating a new HMISession closes pre-existing HMISession + if svghmi_session is not None: + svghmi_session.close() + svghmi_session = self + self.protocol_instance = protocol_instance + + # TODO multiclient : + # svghmi_sessions.append(self) + # get a unique bit index amont other svghmi_sessions, + # so that we can match flags passed by C->python callback + + def close(self): + global svghmi_session + if svghmi_session == self: + svghmi_session = None + self.protocol_instance.sendClose(WebSocketProtocol.CLOSE_STATUS_CODE_NORMAL) + + def onMessage(self, msg): + # pass message to the C side recieve_message() + return svghmi_recv_dispatch(len(msg), msg) + + # TODO multiclient : pass client index as well + + def sendMessage(self, msg): + self.protocol_instance.sendMessage(msg, True) + return 0 + +class Watchdog(object): + def __init__(self, initial_timeout, interval, callback): + self._callback = callback + self.lock = RLock() + self.initial_timeout = initial_timeout + self.interval = interval + self.callback = callback + with self.lock: + self._start() + + def _start(self, rearm=False): + duration = self.interval if rearm else self.initial_timeout + if duration: + self.timer = Timer(duration, self.trigger) + self.timer.start() + else: + self.timer = None + + def _stop(self): + if self.timer is not None: + self.timer.cancel() + self.timer = None + + def cancel(self): + with self.lock: + self._stop() + + def feed(self, rearm=True): + with self.lock: + self._stop() + self._start(rearm) + + def trigger(self): + self._callback() + # wait for initial timeout on re-start + self.feed(rearm=False) + +class HMIProtocol(WebSocketServerProtocol): + + def __init__(self, *args, **kwargs): + self._hmi_session = None + WebSocketServerProtocol.__init__(self, *args, **kwargs) + + def onOpen(self): + assert(self._hmi_session is None) + self._hmi_session = HMISession(self) + + def onClose(self, wasClean, code, reason): + self._hmi_session = None + + def onMessage(self, msg, isBinary): + assert(self._hmi_session is not None) + + result = self._hmi_session.onMessage(msg) + if result == 1 : # was heartbeat + if svghmi_watchdog is not None: + svghmi_watchdog.feed() + +class HMIWebSocketServerFactory(WebSocketServerFactory): + protocol = HMIProtocol + +svghmi_root = None +svghmi_listener = None +svghmi_send_thread = None + +def SendThreadProc(): + global svghmi_session + size = ctypes.c_uint32() + ptr = ctypes.c_void_p() + res = 0 + while True: + res=svghmi_send_collect(ctypes.byref(size), ctypes.byref(ptr)) + if res == 0: + # TODO multiclient : dispatch to sessions + if svghmi_session is not None: + svghmi_session.sendMessage(ctypes.string_at(ptr.value,size.value)) + elif res == errno.ENODATA: + # this happens when there is no data after wakeup + # because of hmi data refresh period longer than PLC common ticktime + pass + else: + # this happens when finishing + break + + +def watchdog_trigger(): + print("SVGHMI watchdog trigger") + + +# Called by PLCObject at start +def _runtime_00_svghmi_start(): + global svghmi_listener, svghmi_root, svghmi_send_thread + + svghmi_root = Resource() + svghmi_root.putChild("ws", WebSocketResource(HMIWebSocketServerFactory())) + + svghmi_listener = reactor.listenTCP(8008, Site(svghmi_root), interface='localhost') + + # start a thread that call the C part of SVGHMI + svghmi_send_thread = Thread(target=SendThreadProc, name="SVGHMI Send") + svghmi_send_thread.start() + + +# Called by PLCObject at stop +def _runtime_00_svghmi_stop(): + global svghmi_listener, svghmi_root, svghmi_send_thread, svghmi_session + + if svghmi_session is not None: + svghmi_session.close() + svghmi_root.delEntity("ws") + svghmi_root = None + svghmi_listener.stopListening() + svghmi_listener = None + # plc cleanup calls svghmi_(locstring)_cleanup and unlocks send thread + svghmi_send_thread.join() + svghmi_send_thread = None + + +class NoCacheFile(File): + def render_GET(self, request): + request.setHeader(b"Cache-Control", b"no-cache, no-store") + return File.render_GET(self, request) + render_HEAD = render_GET + + diff -r 2b00f90c6888 -r d5b2369a103f svghmi/ui.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/ui.py Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,356 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# This file is part of Beremiz +# Copyright (C) 2021: Edouard TISSERANT +# +# See COPYING file for copyrights details. + +from __future__ import absolute_import +import os +import hashlib +import weakref +from tempfile import NamedTemporaryFile + +import wx + +from lxml import etree +from lxml.etree import XSLTApplyError +from XSLTransform import XSLTransform + +import util.paths as paths +from IDEFrame import EncodeFileSystemPath, DecodeFileSystemPath +from docutil import get_inkscape_path + +from util.ProcessLogger import ProcessLogger + +ScriptDirectory = paths.AbsDir(__file__) + +class HMITreeSelector(wx.TreeCtrl): + def __init__(self, parent): + global on_hmitree_update + wx.TreeCtrl.__init__(self, parent, style=( + wx.TR_MULTIPLE | + wx.TR_HAS_BUTTONS | + wx.SUNKEN_BORDER | + wx.TR_LINES_AT_ROOT)) + + self.MakeTree() + + def _recurseTree(self, current_hmitree_root, current_tc_root): + for c in current_hmitree_root.children: + if hasattr(c, "children"): + display_name = ('{} (class={})'.format(c.name, c.hmiclass)) \ + if c.hmiclass is not None else c.name + tc_child = self.AppendItem(current_tc_root, display_name) + self.SetPyData(tc_child, c) + + self._recurseTree(c,tc_child) + else: + display_name = '{} {}'.format(c.nodetype[4:], c.name) + tc_child = self.AppendItem(current_tc_root, display_name) + self.SetPyData(tc_child, c) + + def MakeTree(self, hmi_tree_root=None): + + self.Freeze() + + self.root = None + self.DeleteAllItems() + + root_display_name = _("Please build to see HMI Tree") \ + if hmi_tree_root is None else "HMI" + self.root = self.AddRoot(root_display_name) + self.SetPyData(self.root, hmi_tree_root) + + if hmi_tree_root is not None: + self._recurseTree(hmi_tree_root, self.root) + self.Expand(self.root) + + self.Thaw() + +class WidgetPicker(wx.TreeCtrl): + def __init__(self, parent, initialdir=None): + wx.TreeCtrl.__init__(self, parent, style=( + wx.TR_MULTIPLE | + wx.TR_HAS_BUTTONS | + wx.SUNKEN_BORDER | + wx.TR_LINES_AT_ROOT)) + + self.MakeTree(initialdir) + + def _recurseTree(self, current_dir, current_tc_root, dirlist): + """ + recurse through subdirectories, but creates tree nodes + only when (sub)directory conbtains .svg file + """ + res = [] + for f in sorted(os.listdir(current_dir)): + p = os.path.join(current_dir,f) + if os.path.isdir(p): + + r = self._recurseTree(p, current_tc_root, dirlist + [f]) + if len(r) > 0 : + res = r + dirlist = [] + current_tc_root = res.pop() + + elif os.path.splitext(f)[1].upper() == ".SVG": + if len(dirlist) > 0 : + res = [] + for d in dirlist: + current_tc_root = self.AppendItem(current_tc_root, d) + res.append(current_tc_root) + self.SetPyData(current_tc_root, None) + dirlist = [] + res.pop() + tc_child = self.AppendItem(current_tc_root, f) + self.SetPyData(tc_child, p) + return res + + def MakeTree(self, lib_dir = None): + + self.Freeze() + + self.root = None + self.DeleteAllItems() + + root_display_name = _("Please select widget library directory") \ + if lib_dir is None else os.path.basename(lib_dir) + self.root = self.AddRoot(root_display_name) + self.SetPyData(self.root, None) + + if lib_dir is not None: + self._recurseTree(lib_dir, self.root, []) + self.Expand(self.root) + + self.Thaw() + +_conf_key = "SVGHMIWidgetLib" +_preview_height = 200 +class WidgetLibBrowser(wx.Panel): + def __init__(self, parent, id=wx.ID_ANY, pos=wx.DefaultPosition, + size=wx.DefaultSize): + + wx.Panel.__init__(self, parent, id, pos, size) + + self.bmp = None + self.msg = None + self.hmitree_node = None + self.selected_SVG = None + + self.Config = wx.ConfigBase.Get() + self.libdir = self.RecallLibDir() + + sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=3, vgap=0) + sizer.AddGrowableCol(0) + sizer.AddGrowableRow(1) + self.libbutton = wx.Button(self, -1, _("Select SVG widget library")) + self.widgetpicker = WidgetPicker(self, self.libdir) + self.preview = wx.Panel(self, size=(-1, _preview_height + 10)) + sizer.AddWindow(self.libbutton, flag=wx.GROW) + sizer.AddWindow(self.widgetpicker, flag=wx.GROW) + sizer.AddWindow(self.preview, flag=wx.GROW) + sizer.Layout() + self.SetAutoLayout(True) + self.SetSizer(sizer) + sizer.Fit(self) + self.Bind(wx.EVT_BUTTON, self.OnSelectLibDir, self.libbutton) + self.preview.Bind(wx.EVT_PAINT, self.OnPaint) + self.preview.Bind(wx.EVT_LEFT_DOWN, self.OnLeftDown) + + self.Bind(wx.EVT_TREE_SEL_CHANGED, self.OnWidgetSelection, self.widgetpicker) + + self.msg = _("Drag selected Widget from here to Inkscape") + self.tempf = None + + def RecallLibDir(self): + conf = self.Config.Read(_conf_key) + if len(conf) == 0: + return None + else: + return DecodeFileSystemPath(conf) + + def RememberLibDir(self, path): + self.Config.Write(_conf_key, + EncodeFileSystemPath(path)) + self.Config.Flush() + + def DrawPreview(self): + """ + Refresh preview panel + """ + # Init preview panel paint device context + dc = wx.PaintDC(self.preview) + dc.Clear() + + if self.bmp: + # Get Preview panel size + sz = self.preview.GetClientSize() + w = self.bmp.GetWidth() + dc.DrawBitmap(self.bmp, (sz.width - w)/2, 5) + + if self.msg: + dc.SetFont(self.GetFont()) + dc.DrawText(self.msg, 25,25) + + + def OnSelectLibDir(self, event): + defaultpath = self.RecallLibDir() + if defaultpath == None: + defaultpath = os.path.expanduser("~") + + dialog = wx.DirDialog(self, _("Choose a widget library"), defaultpath, + style=wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER) + + if dialog.ShowModal() == wx.ID_OK: + self.libdir = dialog.GetPath() + self.RememberLibDir(self.libdir) + self.widgetpicker.MakeTree(self.libdir) + + dialog.Destroy() + + def OnPaint(self, event): + """ + Called when Preview panel needs to be redrawn + @param event: wx.PaintEvent + """ + self.DrawPreview() + event.Skip() + + def GenThumbnail(self, svgpath, thumbpath): + inkpath = get_inkscape_path() + if inkpath is None: + self.msg = _("Inkscape is not installed.") + return False + # TODO: spawn a thread, to decouple thumbnail gen + status, result, _err_result = ProcessLogger( + None, + '"' + inkpath + '" "' + svgpath + '" -e "' + thumbpath + + '" -D -h ' + str(_preview_height)).spin() + if status != 0: + self.msg = _("Inkscape couldn't generate thumbnail.") + return False + return True + + def OnWidgetSelection(self, event): + """ + Called when tree item is selected + @param event: wx.TreeEvent + """ + item_pydata = self.widgetpicker.GetPyData(event.GetItem()) + if item_pydata is not None: + svgpath = item_pydata + dname = os.path.dirname(svgpath) + fname = os.path.basename(svgpath) + hasher = hashlib.new('md5') + with open(svgpath, 'rb') as afile: + while True: + buf = afile.read(65536) + if len(buf) > 0: + hasher.update(buf) + else: + break + digest = hasher.hexdigest() + thumbfname = os.path.splitext(fname)[0]+"_"+digest+".png" + thumbdir = os.path.join(dname, ".svghmithumbs") + thumbpath = os.path.join(thumbdir, thumbfname) + + have_thumb = os.path.exists(thumbpath) + + try: + if not have_thumb: + if not os.path.exists(thumbdir): + os.mkdir(thumbdir) + have_thumb = self.GenThumbnail(svgpath, thumbpath) + + self.bmp = wx.Bitmap(thumbpath) if have_thumb else None + + self.selected_SVG = svgpath if have_thumb else None + self.ValidateWidget() + except IOError: + self.msg = _("Widget library must be writable") + + self.Refresh() + event.Skip() + + def OnHMITreeNodeSelection(self, hmitree_node): + self.hmitree_node = hmitree_node + self.ValidateWidget() + self.Refresh() + + def OnLeftDown(self, evt): + if self.tempf is not None: + filename = self.tempf.name + data = wx.FileDataObject() + data.AddFile(filename) + dropSource = wx.DropSource(self) + dropSource.SetData(data) + dropSource.DoDragDrop(wx.Drag_AllowMove) + + def GiveDetails(self, _context, msgs): + for msg in msgs: + self.msg += msg.text + "\n" + + def GetSubHMITree(self, _context): + return [self.hmitree_node.etree()] + + def ValidateWidget(self): + self.msg = "" + + if self.tempf is not None: + os.unlink(self.tempf.name) + self.tempf = None + + try: + if self.selected_SVG is None: + raise Exception(_("No widget selected")) + if self.hmitree_node is None: + raise Exception(_("No HMI tree node selected")) + + transform = XSLTransform( + os.path.join(ScriptDirectory, "gen_dnd_widget_svg.xslt"), + [("GetSubHMITree", self.GetSubHMITree), + ("GiveDetails", self.GiveDetails)]) + + svgdom = etree.parse(self.selected_SVG) + + result = transform.transform( + svgdom, hmi_path = self.hmitree_node.hmi_path()) + + for entry in transform.get_error_log(): + self.msg += "XSLT: " + entry.message + "\n" + + self.tempf = NamedTemporaryFile(suffix='.svg', delete=False) + result.write(self.tempf, encoding="utf-8") + self.tempf.close() + + except Exception as e: + self.msg += str(e) + except XSLTApplyError as e: + self.msg += "Widget transform error: " + e.message + + def __del__(self): + if self.tempf is not None: + os.unlink(self.tempf.name) + +class SVGHMI_UI(wx.SplitterWindow): + + def __init__(self, parent, register_for_HMI_tree_updates): + wx.SplitterWindow.__init__(self, parent, + style=wx.SUNKEN_BORDER | wx.SP_3D) + + self.SelectionTree = HMITreeSelector(self) + self.Staging = WidgetLibBrowser(self) + self.SplitVertically(self.SelectionTree, self.Staging, 300) + register_for_HMI_tree_updates(weakref.ref(self)) + self.Bind(wx.EVT_TREE_SEL_CHANGED, + self.OnHMITreeNodeSelection, self.SelectionTree) + + def OnHMITreeNodeSelection(self, event): + item_pydata = self.SelectionTree.GetPyData(event.GetItem()) + self.Staging.OnHMITreeNodeSelection(item_pydata) + + def HMITreeUpdate(self, hmi_tree_root): + self.SelectionTree.MakeTree(hmi_tree_root) + diff -r 2b00f90c6888 -r d5b2369a103f svghmi/widget_animate.ysl2 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/widget_animate.ysl2 Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,53 @@ +// widget_animate.ysl2 + +template "widget[@type='Animate']", mode="widget_class"{ + || + class AnimateWidget extends Widget{ + frequency = 5; + speed = 0; + start = false; + widget_center = undefined; + + dispatch(value) { + this.speed = value / 5; + + //reconfigure animation + this.request_animate(); + } + + animate(){ + // change animation properties + for(let child of this.element.children){ + if(child.nodeName.startsWith("animate")){ + if(this.speed != 0 && !this.start){ + this.start = true; + this.element.beginElement(); + } + + if(this.speed > 0){ + child.setAttribute("dur", this.speed+"s"); + } + else if(this.speed < 0){ + child.setAttribute("dur", (-1)*this.speed+"s"); + } + else{ + this.start = false; + this.element.endElement(); + } + } + } + } + + init() { + let widget_pos = this.element.getBBox(); + this.widget_center = [(widget_pos.x+widget_pos.width/2), (widget_pos.y+widget_pos.height/2)]; + } + } + || +} + + +template "widget[@type='Animate']", mode="widget_defs" { + param "hmi_element"; + |, +} diff -r 2b00f90c6888 -r d5b2369a103f svghmi/widget_animaterotation.ysl2 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/widget_animaterotation.ysl2 Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,51 @@ +// widget_animaterotation.ysl2 + +template "widget[@type='AnimateRotation']", mode="widget_class"{ + || + class AnimateRotationWidget extends Widget{ + frequency = 5; + speed = 0; + widget_center = undefined; + + dispatch(value) { + this.speed = value / 5; + + //reconfigure animation + this.request_animate(); + } + + animate(){ + // change animation properties + for(let child of this.element.children){ + if(child.nodeName == "animateTransform"){ + if(this.speed > 0){ + child.setAttribute("dur", this.speed+"s"); + child.setAttribute("from", "0 "+this.widget_center[0]+" "+this.widget_center[1]); + child.setAttribute("to", "360 "+this.widget_center[0]+" "+this.widget_center[1]); + } + else if(this.speed < 0){ + child.setAttribute("dur", (-1)*this.speed+"s"); + child.setAttribute("from", "360 "+this.widget_center[0]+" "+this.widget_center[1]); + child.setAttribute("to", "0 "+this.widget_center[0]+" "+this.widget_center[1]); + } + else{ + child.setAttribute("from", "0 "+this.widget_center[0]+" "+this.widget_center[1]); + child.setAttribute("to", "0 "+this.widget_center[0]+" "+this.widget_center[1]); + } + } + } + } + + init() { + let widget_pos = this.element.getBBox(); + this.widget_center = [(widget_pos.x+widget_pos.width/2), (widget_pos.y+widget_pos.height/2)]; + } + } + || +} + + +template "widget[@type='AnimateRotation']", mode="widget_defs" { + param "hmi_element"; + |, +} diff -r 2b00f90c6888 -r d5b2369a103f svghmi/widget_back.ysl2 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/widget_back.ysl2 Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,17 @@ +// widget_back.ysl2 + +template "widget[@type='Back']", mode="widget_class" + || + class BackWidget extends Widget{ + on_click(evt) { + if(jump_history.length > 1){ + jump_history.pop(); + let [page_name, index] = jump_history.pop(); + switch_page(page_name, index); + } + } + init() { + this.element.setAttribute("onclick", "hmi_widgets['"+this.element_id+"'].on_click(evt)"); + } + } + || diff -r 2b00f90c6888 -r d5b2369a103f svghmi/widget_button.ysl2 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/widget_button.ysl2 Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,155 @@ +// widget_button.ysl2 + +// Finite state machine +decl fsm(name); +decl state(name); +decl on_mouse(position); +decl on_dispatch(value); +decl jump(state); +decl show(eltname); +decl hmi_value(value); + +// State machine to drive HMI_BOOL on a potentially laggy connection +const "_button_fsm" fsm { + state "init" { + on_dispatch "false" jump "released"; + on_dispatch "true" jump "pressed"; + } + + state "pressing" { + // show "waitactive"; + hmi_value "true"; + on_dispatch "true" jump "pressed"; + on_mouse "up" jump "shortpress"; + } + state "pressed" { + show "active"; + on_mouse "up" jump "releasing"; + on_dispatch "false" jump "released"; + } + state "shortpress" { + on_dispatch "true" jump "releasing"; + on_mouse "down" jump "pressing"; + } + + state "releasing" { + // show "waitinactive"; + hmi_value "false"; + on_dispatch "false" jump "released"; + on_mouse "down" jump "shortrelease"; + } + state "released" { + show "inactive"; + on_mouse "down" jump "pressing"; + on_dispatch "true" jump "pressed"; + } + state "shortrelease" { + on_dispatch "false" jump "pressing"; + on_mouse "up" jump "releasing"; + } +} + +template "fsm", mode="dispatch_transition" { + | switch (this.state) { + apply "state", mode="dispatch_transition"; + | } +} +template "state", mode="dispatch_transition" { + | case "«@name»": + apply "on-dispatch"; + | break; +} +template "on-dispatch" { + | if(value == «@value») { + apply "jump", mode="transition"; + | } +} + +template "fsm", mode="mouse_transition" { + param "position"; + | switch (this.state) { + apply "state", mode="mouse_transition" with "position", "$position"; + | } +} +template "state", mode="mouse_transition" { + param "position"; + | case "«@name»": + apply "on-mouse[@position = $position]"; + | break; +} +template "on-mouse" { + // up or down state is already assumed because apply statement filters it + apply "jump", mode="transition"; +} + +template "jump", mode="transition" { + | this.state = "«@state»"; + | this.«@state»_action(); +} + +template "fsm", mode="actions" { + apply "state", mode="actions"; +} +template "state", mode="actions" { + | «@name»_action(){ + //| console.log("Entering state «@name»"); + apply "*", mode="actions"; + | } +} +template "show", mode="actions" { + | this.display = "«@eltname»"; + | this.request_animate(); +} +template "hmi-value", mode="actions" { + | this.apply_hmi_value(0, «@value»); +} + +template "widget[@type='Button']", mode="widget_class"{ + const "fsm","exsl:node-set($_button_fsm)"; + | class ButtonWidget extends Widget{ + | frequency = 5; + + | display = "inactive"; + | state = "init"; + + | dispatch(value) { + // | console.log("dispatch"+value); + apply "$fsm", mode="dispatch_transition"; + | } + + | onmouseup(evt) { + | svg_root.removeEventListener("pointerup", this.bound_onmouseup, true); + // | console.log("onmouseup"); + apply "$fsm", mode="mouse_transition" with "position", "'up'"; + | } + | onmousedown(evt) { + | svg_root.addEventListener("pointerup", this.bound_onmouseup, true); + // | console.log("onmousedown"); + apply "$fsm", mode="mouse_transition" with "position", "'down'"; + | } + + apply "$fsm", mode="actions"; + + | animate(){ + | if (this.active_elt && this.inactive_elt) { + foreach "str:split('active inactive')" { + | if(this.display == "«.»") + | this.«.»_elt.style.display = ""; + | else + | this.«.»_elt.style.display = "none"; + } + | } + | } + + | init() { + | this.bound_onmouseup = this.onmouseup.bind(this); + | this.element.addEventListener("pointerdown", this.onmousedown.bind(this)); + | } + | } +} + + +template "widget[@type='Button']", mode="widget_defs" { + param "hmi_element"; + optional_labels("active inactive"); +} diff -r 2b00f90c6888 -r d5b2369a103f svghmi/widget_circularbar.ysl2 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/widget_circularbar.ysl2 Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,60 @@ +// widget_circularbar.ysl2 + +template "widget[@type='CircularBar']", mode="widget_class"{ + || + class CircularBarWidget extends Widget{ + frequency = 10; + range = undefined; + + dispatch(value) { + this.display_val = value; + this.request_animate(); + } + + animate(){ + if(this.value_elt) + this.value_elt.textContent = String(this.display_val); + let [min,max,start,end] = this.range; + let [cx,cy] = this.center; + let [rx,ry] = this.proportions; + let tip = start + (end-start)*Number(this.display_val)/(max-min); + let size = 0; + + if (tip-start > Math.PI) + size = 1; + else + size = 0; + + this.path_elt.setAttribute('d', "M "+(cx+rx*Math.cos(start))+","+(cy+ry*Math.sin(start))+ + " A "+rx+","+ry+ + " 0 "+size+ + " 1 "+(cx+rx*Math.cos(tip))+","+(cy+ry*Math.sin(tip))); + } + + init() { + let [start, end, cx, cy, rx, ry] = ["start", "end", "cx", "cy", "rx", "ry"]. + map(tag=>Number(this.path_elt.getAttribute('sodipodi:'+tag))) + + if (ry == 0) + ry = rx; + + if (start > end) + end = end + 2*Math.PI; + + let [min,max] = [[this.min_elt,0],[this.max_elt,100]].map(([elt,def],i)=>elt? + Number(elt.textContent) : + this.args.length >= i+1 ? this.args[i] : def); + + this.range = [min, max, start, end]; + this.center = [cx, cy]; + this.proportions = [rx, ry]; + } + } + || +} + +template "widget[@type='CircularBar']", mode="widget_defs" { + param "hmi_element"; + labels("path"); + optional_labels("value min max"); +} diff -r 2b00f90c6888 -r d5b2369a103f svghmi/widget_circularslider.ysl2 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/widget_circularslider.ysl2 Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,239 @@ +// widget_circuralslider.ysl2 + +template "widget[@type='CircularSlider']", mode="widget_class" + || + class CircularSliderWidget extends Widget{ + frequency = 5; + range = undefined; + circle = undefined; + handle_pos = undefined; + curr_value = 0; + drag = false; + enTimer = false; + last_drag = false; + + dispatch(value) { + let [min,max,start,totallength] = this.range; + //save current value inside widget + this.curr_value = value; + + //check if in range + if (this.curr_value > max){ + this.curr_value = max; + this.apply_hmi_value(0, this.curr_value); + } + else if (this.curr_value < min){ + this.curr_value = min; + this.apply_hmi_value(0, this.curr_value); + } + + if(this.value_elt) + this.value_elt.textContent = String(value); + + //don't update if draging and setpoint ghost doesn't exist + if(!this.drag || (this.setpoint_elt != undefined)){ + this.update_DOM(value, this.handle_elt); + } + } + + update_DOM(value, elt){ + let [min,max,totalDistance] = this.range; + let length = Math.max(0,Math.min((totalDistance),(Number(value)-min)/(max-min)*(totalDistance))); + let tip = this.range_elt.getPointAtLength(length); + elt.setAttribute('transform',"translate("+(tip.x-this.handle_pos.x)+","+(tip.y-this.handle_pos.y)+")"); + + // show or hide ghost if exists + if(this.setpoint_elt != undefined){ + if(this.last_drag!= this.drag){ + if(this.drag){ + this.setpoint_elt.setAttribute("style", this.setpoint_style); + }else{ + this.setpoint_elt.setAttribute("style", "display:none"); + } + this.last_drag = this.drag; + } + } + } + + on_release(evt) { + //unbind events + window.removeEventListener("touchmove", this.on_bound_drag, true); + window.removeEventListener("mousemove", this.on_bound_drag, true); + + window.removeEventListener("mouseup", this.bound_on_release, true) + window.removeEventListener("touchend", this.bound_on_release, true); + window.removeEventListener("touchcancel", this.bound_on_release, true); + + //reset drag flag + if(this.drag){ + this.drag = false; + } + + // get final position + this.update_position(evt); + } + + on_drag(evt){ + //ignore drag event for X amount of time and if not selected + if(this.enTimer && this.drag){ + this.update_position(evt); + + //reset timer + this.enTimer = false; + setTimeout("{hmi_widgets['"+this.element_id+"'].enTimer = true;}", 100); + } + } + + update_position(evt){ + if(this.drag && this.enTimer){ + var svg_dist = 0; + + //calculate center of widget in html + // --TODO maybe it would be better to bind this part to window change size event ??? + let [xdest,ydest,svgWidth,svgHeight] = page_desc[current_visible_page].bbox; + let [cX, cY,fiStart,fiEnd,minMax,x1,y1,width,height] = this.circle; + let htmlCirc = this.range_elt.getBoundingClientRect(); + let cxHtml = ((htmlCirc.right-htmlCirc.left)/(width)*(cX-x1))+htmlCirc.left; + let cyHtml = ((htmlCirc.bottom-htmlCirc.top)/(height)*(cY-y1))+htmlCirc.top; + + + //get mouse coordinates + let mouseX = undefined; + let mouseY = undefined; + if (evt.type.startsWith("touch")){ + mouseX = Math.ceil(evt.touches[0].clientX); + mouseY = Math.ceil(evt.touches[0].clientY); + } + else{ + mouseX = evt.pageX; + mouseY = evt.pageY; + } + + //calculate angle + let fi = Math.atan2(cyHtml-mouseY, mouseX-cxHtml); + + // transform from 0 to 2PI + if (fi > 0){ + fi = 2*Math.PI-fi; + } + else{ + fi = -fi; + } + + //offset it to 0 + fi = fi - fiStart; + if (fi < 0){ + fi = fi + 2*Math.PI; + } + + //get handle distance from mouse position + if(fi<fiEnd){ + this.curr_value=(fi)/(fiEnd)*(this.range[1]-this.range[0]); + } + else if(fiEnd<fi && fi<fiEnd+minMax){ + this.curr_value = this.range[1]; + } + else{ + this.curr_value = this.range[0]; + } + + //apply value to hmi + this.apply_hmi_value(0, Math.ceil(this.curr_value)); + + //redraw handle + this.request_animate(); + + } + + } + + animate(){ + // redraw handle on screen refresh + // check if setpoint(ghost) handle exsist otherwise update main handle + if(this.setpoint_elt != undefined){ + this.update_DOM(this.curr_value, this.setpoint_elt); + } + else{ + this.update_DOM(this.curr_value, this.handle_elt); + } + } + + on_select(evt){ + //enable drag flag and timer + this.drag = true; + this.enTimer = true; + + //bind events + window.addEventListener("touchmove", this.on_bound_drag, true); + window.addEventListener("mousemove", this.on_bound_drag, true); + + window.addEventListener("mouseup", this.bound_on_release, true); + window.addEventListener("touchend", this.bound_on_release, true); + window.addEventListener("touchcancel", this.bound_on_release, true); + + //update postion on mouse press + this.update_position(evt); + + //prevent next events + evt.stopPropagation(); + } + + init() { + //get min max + let min = this.min_elt ? + Number(this.min_elt.textContent) : + this.args.length >= 1 ? this.args[0] : 0; + let max = this.max_elt ? + Number(this.max_elt.textContent) : + this.args.length >= 2 ? this.args[1] : 100; + + //fiStart ==> offset + let fiStart = Number(this.range_elt.getAttribute('sodipodi:start')); + let fiEnd = Number(this.range_elt.getAttribute('sodipodi:end')); + fiEnd = fiEnd - fiStart; + + //fiEnd ==> size of angle + if (fiEnd < 0){ + fiEnd = 2*Math.PI + fiEnd; + } + + //min max barrier angle + let minMax = (2*Math.PI - fiEnd)/2; + + //get parameters from svg + let cX = Number(this.range_elt.getAttribute('sodipodi:cx')); + let cY = Number(this.range_elt.getAttribute('sodipodi:cy')); + this.range_elt.style.strokeMiterlimit="0"; //eliminates some weird border around html object + this.range = [min, max,this.range_elt.getTotalLength()]; + let cPos = this.range_elt.getBBox(); + this.handle_pos = this.range_elt.getPointAtLength(0); + this.circle = [cX, cY,fiStart,fiEnd,minMax,cPos.x,cPos.y,cPos.width,cPos.height]; + + //bind functions + this.bound_on_select = this.on_select.bind(this); + this.bound_on_release = this.on_release.bind(this); + this.on_bound_drag = this.on_drag.bind(this); + + this.handle_elt.addEventListener("mousedown", this.bound_on_select); + this.element.addEventListener("mousedown", this.bound_on_select); + this.element.addEventListener("touchstart", this.bound_on_select); + //touch recognised as page drag without next command + document.body.addEventListener("touchstart", function(e){}, false); + + //save ghost style + //save ghost style + if(this.setpoint_elt != undefined){ + this.setpoint_style = this.setpoint_elt.getAttribute("style"); + this.setpoint_elt.setAttribute("style", "display:none"); + } + + } + } + || + +template "widget[@type='CircularSlider']", mode="widget_defs" { + param "hmi_element"; + labels("handle range"); + optional_labels("value min max setpoint"); + |, +} diff -r 2b00f90c6888 -r d5b2369a103f svghmi/widget_custom.ysl2 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/widget_custom.ysl2 Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,62 @@ +// widget_custom.ysl2 +// +// widget entierely defined from JS code in Inkscape description field + +// TODO + +// a preliminary implementation was initially attempted but disabled +// code collected around before code refactoring + + +/*const "mark" > =HMI=\n*/ + + + /* TODO re-enable + || + function evaluate_js_from_descriptions() { + var Page; + var Input; + var Display; + var res = []; + || + const "midmark" > \n«$mark» + apply """//*[contains(child::svg:desc, $midmark) or \ + starts-with(child::svg:desc, $mark)]""",2 + mode="code_from_descs"; + || + return res; + } + || + */ + + // template "*", mode="code_from_descs" { + // || + // { + // var path, role, name, priv; + // var id = "«@id»"; + // || + + // /* if label is used, use it as default name */ + // if "@inkscape:label" + // |> name = "«@inkscape:label»"; + + // | /* -------------- */ + + // // this breaks indent, but fixing indent could break string literals + // value "substring-after(svg:desc, $mark)"; + // // nobody reads generated code anyhow... + + // || + + // /* -------------- */ + // res.push({ + // path:path, + // role:role, + // name:name, + // priv:priv + // }) + // } + // || + // } + + diff -r 2b00f90c6888 -r d5b2369a103f svghmi/widget_customhtml.ysl2 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/widget_customhtml.ysl2 Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,33 @@ +// widget_customhtml.ysl2 + +template "widget[@type='CustomHtml']", mode="widget_class"{ + || + class CustomHtmlWidget extends Widget{ + frequency = 5; + widget_size = undefined; + + dispatch(value) { + this.request_animate(); + } + + animate(){ + } + + init() { + this.widget_size = this.container_elt.getBBox(); + this.element.innerHTML ='<foreignObject x="'+ + this.widget_size.x+'" y="'+this.widget_size.y+ + '" width="'+this.widget_size.width+'" height="'+this.widget_size.height+'"> '+ + this.code_elt.textContent+ + ' </foreignObject>'; + } + } + || +} + + +template "widget[@type='CustomHtml']", mode="widget_defs" { + param "hmi_element"; + labels("container code"); + |, +} diff -r 2b00f90c6888 -r d5b2369a103f svghmi/widget_display.ysl2 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/widget_display.ysl2 Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,291 @@ +// widget_display.ysl2 + + +template "widget[@type='Display']", mode="widget_class" + || + class DisplayWidget extends Widget{ + frequency = 5; + dispatch(value, oldval, index) { + this.fields[index] = value; + this.request_animate(); + } + } + || + +template "widget[@type='Display']", mode="widget_defs" { + param "hmi_element"; + + const "format" optional_labels("format"); + const "has_format","string-length($format)>0"; + value "$format"; + + if "$hmi_element[not(self::svg:text)] and not($has_format)" + error > Display Widget id="«$hmi_element/@id»" must be a svg::text element itself or a group containing a svg:text element labelled "format" + + const "field_initializer" foreach "path" { + choose{ + when "@type='HMI_STRING'" > "" + otherwise > 0 + } + if "position()!=last()" > , + } + | fields: [«$field_initializer»], + | animate: function(){ + choose { + when "$has_format" { + | if(this.format_elt.getAttribute("lang")) { + | this.format = svg_text_to_multiline(this.format_elt); + | this.format_elt.removeAttribute("lang"); + | } + | let str = vsprintf(this.format,this.fields); + | multiline_to_svg_text(this.format_elt, str); + } + otherwise { + | let str = this.args.length == 1 ? vsprintf(this.args[0],this.fields) : this.fields.join(' '); + | multiline_to_svg_text(this.element, str); + } + } + | }, + | + if "$has_format" { + | init: function() { + | this.format = svg_text_to_multiline(this.format_elt); + | }, + } +} + +emit "preamble:display" +|| +/* https://github.com/alexei/sprintf.js/blob/master/src/sprintf.js */ +/* global window, exports, define */ + +!function() { + 'use strict' + + var re = { + not_string: /[^s]/, + not_bool: /[^t]/, + not_type: /[^T]/, + not_primitive: /[^v]/, + number: /[diefg]/, + numeric_arg: /[bcdiefguxX]/, + json: /[j]/, + not_json: /[^j]/, + text: /^[^\x25]+/, + modulo: /^\x25{2}/, + placeholder: /^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/, + key: /^([a-z_][a-z_\d]*)/i, + key_access: /^\.([a-z_][a-z_\d]*)/i, + index_access: /^\[(\d+)\]/, + sign: /^[+-]/ + } + + function sprintf(key) { + // arguments is not an array, but should be fine for this call + return sprintf_format(sprintf_parse(key), arguments) + } + + function vsprintf(fmt, argv) { + return sprintf.apply(null, [fmt].concat(argv || [])) + } + + function sprintf_format(parse_tree, argv) { + var cursor = 1, tree_length = parse_tree.length, arg, output = '', i, k, ph, pad, pad_character, pad_length, is_positive, sign + for (i = 0; i < tree_length; i++) { + if (typeof parse_tree[i] === 'string') { + output += parse_tree[i] + } + else if (typeof parse_tree[i] === 'object') { + ph = parse_tree[i] // convenience purposes only + if (ph.keys) { // keyword argument + arg = argv[cursor] + for (k = 0; k < ph.keys.length; k++) { + if (arg == undefined) { + throw new Error(sprintf('[sprintf] Cannot access property "%s" of undefined value "%s"', ph.keys[k], ph.keys[k-1])) + } + arg = arg[ph.keys[k]] + } + } + else if (ph.param_no) { // positional argument (explicit) + arg = argv[ph.param_no] + } + else { // positional argument (implicit) + arg = argv[cursor++] + } + + if (re.not_type.test(ph.type) && re.not_primitive.test(ph.type) && arg instanceof Function) { + arg = arg() + } + + if (re.numeric_arg.test(ph.type) && (typeof arg !== 'number' && isNaN(arg))) { + throw new TypeError(sprintf('[sprintf] expecting number but found %T', arg)) + } + + if (re.number.test(ph.type)) { + is_positive = arg >= 0 + } + + switch (ph.type) { + case 'b': + arg = parseInt(arg, 10).toString(2) + break + case 'c': + arg = String.fromCharCode(parseInt(arg, 10)) + break + case 'd': + case 'i': + arg = parseInt(arg, 10) + break + case 'j': + arg = JSON.stringify(arg, null, ph.width ? parseInt(ph.width) : 0) + break + case 'e': + arg = ph.precision ? parseFloat(arg).toExponential(ph.precision) : parseFloat(arg).toExponential() + break + case 'f': + arg = ph.precision ? parseFloat(arg).toFixed(ph.precision) : parseFloat(arg) + break + case 'g': + arg = ph.precision ? String(Number(arg.toPrecision(ph.precision))) : parseFloat(arg) + break + case 'o': + arg = (parseInt(arg, 10) >>> 0).toString(8) + break + case 's': + arg = String(arg) + arg = (ph.precision ? arg.substring(0, ph.precision) : arg) + break + case 't': + arg = String(!!arg) + arg = (ph.precision ? arg.substring(0, ph.precision) : arg) + break + case 'T': + arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase() + arg = (ph.precision ? arg.substring(0, ph.precision) : arg) + break + case 'u': + arg = parseInt(arg, 10) >>> 0 + break + case 'v': + arg = arg.valueOf() + arg = (ph.precision ? arg.substring(0, ph.precision) : arg) + break + case 'x': + arg = (parseInt(arg, 10) >>> 0).toString(16) + break + case 'X': + arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase() + break + } + if (re.json.test(ph.type)) { + output += arg + } + else { + if (re.number.test(ph.type) && (!is_positive || ph.sign)) { + sign = is_positive ? '+' : '-' + arg = arg.toString().replace(re.sign, '') + } + else { + sign = '' + } + pad_character = ph.pad_char ? ph.pad_char === '0' ? '0' : ph.pad_char.charAt(1) : ' ' + pad_length = ph.width - (sign + arg).length + pad = ph.width ? (pad_length > 0 ? pad_character.repeat(pad_length) : '') : '' + output += ph.align ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg) + } + } + } + return output + } + + var sprintf_cache = Object.create(null) + + function sprintf_parse(fmt) { + if (sprintf_cache[fmt]) { + return sprintf_cache[fmt] + } + + var _fmt = fmt, match, parse_tree = [], arg_names = 0 + while (_fmt) { + if ((match = re.text.exec(_fmt)) !== null) { + parse_tree.push(match[0]) + } + else if ((match = re.modulo.exec(_fmt)) !== null) { + parse_tree.push('%') + } + else if ((match = re.placeholder.exec(_fmt)) !== null) { + if (match[2]) { + arg_names |= 1 + var field_list = [], replacement_field = match[2], field_match = [] + if ((field_match = re.key.exec(replacement_field)) !== null) { + field_list.push(field_match[1]) + while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') { + if ((field_match = re.key_access.exec(replacement_field)) !== null) { + field_list.push(field_match[1]) + } + else if ((field_match = re.index_access.exec(replacement_field)) !== null) { + field_list.push(field_match[1]) + } + else { + throw new SyntaxError('[sprintf] failed to parse named argument key') + } + } + } + else { + throw new SyntaxError('[sprintf] failed to parse named argument key') + } + match[2] = field_list + } + else { + arg_names |= 2 + } + if (arg_names === 3) { + throw new Error('[sprintf] mixing positional and named placeholders is not (yet) supported') + } + + parse_tree.push( + { + placeholder: match[0], + param_no: match[1], + keys: match[2], + sign: match[3], + pad_char: match[4], + align: match[5], + width: match[6], + precision: match[7], + type: match[8] + } + ) + } + else { + throw new SyntaxError('[sprintf] unexpected placeholder') + } + _fmt = _fmt.substring(match[0].length) + } + return sprintf_cache[fmt] = parse_tree + } + + /** + * export to either browser or node.js + */ + /* eslint-disable quote-props */ + if (typeof exports !== 'undefined') { + exports['sprintf'] = sprintf + exports['vsprintf'] = vsprintf + } + if (typeof window !== 'undefined') { + window['sprintf'] = sprintf + window['vsprintf'] = vsprintf + + if (typeof define === 'function' && define['amd']) { + define(function() { + return { + 'sprintf': sprintf, + 'vsprintf': vsprintf + } + }) + } + } + /* eslint-enable quote-props */ +}(); // eslint-disable-line +|| diff -r 2b00f90c6888 -r d5b2369a103f svghmi/widget_dropdown.ysl2 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/widget_dropdown.ysl2 Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,353 @@ +// widget_dropdown.ysl2 + +template "widget[@type='DropDown']", mode="widget_class"{ +|| + function numb_event(e) { + e.stopPropagation(); + } + class DropDownWidget extends Widget{ + dispatch(value) { + if(!this.opened) this.set_selection(value); + } + init() { + this.button_elt.onclick = this.on_button_click.bind(this); + // Save original size of rectangle + this.box_bbox = this.box_elt.getBBox() + this.highlight_bbox = this.highlight_elt.getBBox() + this.highlight_elt.style.visibility = "hidden"; + + // Compute margins + this.text_bbox = this.text_elt.getBBox(); + let lmargin = this.text_bbox.x - this.box_bbox.x; + let tmargin = this.text_bbox.y - this.box_bbox.y; + this.margins = [lmargin, tmargin].map(x => Math.max(x,0)); + + // Index of first visible element in the menu, when opened + this.menu_offset = 0; + + // How mutch to lift the menu vertically so that it does not cross bottom border + this.lift = 0; + + // Event handlers cannot be object method ('this' is unknown) + // as a workaround, handler given to addEventListener is bound in advance. + this.bound_close_on_click_elsewhere = this.close_on_click_elsewhere.bind(this); + this.bound_on_selection_click = this.on_selection_click.bind(this); + this.bound_on_backward_click = this.on_backward_click.bind(this); + this.bound_on_forward_click = this.on_forward_click.bind(this); + this.opened = false; + this.clickables = []; + } + on_button_click() { + this.open(); + } + // Called when a menu entry is clicked + on_selection_click(selection) { + this.close(); + this.apply_hmi_value(0, selection); + } + on_backward_click(){ + this.scroll(false); + } + on_forward_click(){ + this.scroll(true); + } + set_selection(value) { + let display_str; + if(value >= 0 && value < this.content.length){ + // if valid selection resolve content + display_str = this.content[value]; + this.last_selection = value; + } else { + // otherwise show problem + display_str = "?"+String(value)+"?"; + } + // It is assumed that first span always stays, + // and contains selection when menu is closed + this.text_elt.firstElementChild.textContent = display_str; + } + grow_text(up_to) { + let count = 1; + let txt = this.text_elt; + let first = txt.firstElementChild; + // Real world (pixels) boundaries of current page + let bounds = svg_root.getBoundingClientRect(); + this.lift = 0; + while(count < up_to) { + let next = first.cloneNode(); + // relative line by line text flow instead of absolute y coordinate + next.removeAttribute("y"); + next.setAttribute("dy", "1.1em"); + // default content to allow computing text element bbox + next.textContent = "..."; + // append new span to text element + txt.appendChild(next); + // now check if text extended by one row fits to page + // FIXME : exclude margins to be more accurate on box size + let rect = txt.getBoundingClientRect(); + if(rect.bottom > bounds.bottom){ + // in case of overflow at the bottom, lift up one row + let backup = first.getAttribute("dy"); + // apply lift as a dy added too first span (y attrib stays) + first.setAttribute("dy", "-"+String((this.lift+1)*1.1)+"em"); + rect = txt.getBoundingClientRect(); + if(rect.top > bounds.top){ + this.lift += 1; + } else { + // if it goes over the top, then backtrack + // restore dy attribute on first span + if(backup) + first.setAttribute("dy", backup); + else + first.removeAttribute("dy"); + // remove unwanted child + txt.removeChild(next); + return count; + } + } + count++; + } + return count; + } + close_on_click_elsewhere(e) { + // inhibit events not targetting spans (menu items) + if([this.text_elt, this.element].indexOf(e.target.parentNode) == -1){ + e.stopPropagation(); + // close menu in case click is outside box + if(e.target !== this.box_elt) + this.close(); + } + } + close(){ + // Stop hogging all click events + svg_root.removeEventListener("pointerdown", numb_event, true); + svg_root.removeEventListener("pointerup", numb_event, true); + svg_root.removeEventListener("click", this.bound_close_on_click_elsewhere, true); + // Restore position and sixe of widget elements + this.reset_text(); + this.reset_clickables(); + this.reset_box(); + this.reset_highlight(); + // Put the button back in place + this.element.appendChild(this.button_elt); + // Mark as closed (to allow dispatch) + this.opened = false; + // Dispatch last cached value + this.apply_cache(); + } + // Make item (text span) clickable by overlaying a rectangle on top of it + make_clickable(span, func) { + let txt = this.text_elt; + let original_text_y = this.text_bbox.y; + let highlight = this.highlight_elt; + let original_h_y = this.highlight_bbox.y; + let clickable = highlight.cloneNode(); + let yoffset = span.getBBox().y - original_text_y; + clickable.y.baseVal.value = original_h_y + yoffset; + clickable.style.pointerEvents = "bounding-box"; + //clickable.style.visibility = "hidden"; + //clickable.onclick = () => alert("love JS"); + clickable.onclick = func; + this.element.appendChild(clickable); + this.clickables.push(clickable) + } + reset_clickables() { + while(this.clickables.length){ + this.element.removeChild(this.clickables.pop()); + } + } + // Set text content when content is smaller than menu (no scrolling) + set_complete_text(){ + let spans = this.text_elt.children; + let c = 0; + for(let item of this.content){ + let span=spans[c]; + span.textContent = item; + let sel = c; + this.make_clickable(span, (evt) => this.bound_on_selection_click(sel)); + c++; + } + } + // Move partial view : + // false : upward, lower value + // true : downward, higher value + scroll(forward){ + let contentlength = this.content.length; + let spans = this.text_elt.children; + let spanslength = spans.length; + // reduce accounted menu size according to prsence of scroll buttons + // since we scroll there is necessarly one button + spanslength--; + if(forward){ + // reduce accounted menu size because of back button + // in current view + if(this.menu_offset > 0) spanslength--; + this.menu_offset = Math.min( + contentlength - spans.length + 1, + this.menu_offset + spanslength); + }else{ + // reduce accounted menu size because of back button + // in view once scrolled + if(this.menu_offset - spanslength > 0) spanslength--; + this.menu_offset = Math.max( + 0, + this.menu_offset - spanslength); + } + if(this.menu_offset == 1) + this.menu_offset = 0; + + this.reset_highlight(); + + this.reset_clickables(); + this.set_partial_text(); + + this.highlight_selection(); + } + // Setup partial view text content + // with jumps at first and last entry when appropriate + set_partial_text(){ + let spans = this.text_elt.children; + let contentlength = this.content.length; + let spanslength = spans.length; + let i = this.menu_offset, c = 0; + let m = this.box_bbox; + while(c < spanslength){ + let span=spans[c]; + let onclickfunc; + // backward jump only present if not exactly at start + if(c == 0 && i != 0){ + span.textContent = "â–²"; + onclickfunc = this.bound_on_backward_click; + let o = span.getBBox(); + span.setAttribute("dx", (m.width - o.width)/2); + // presence of forward jump when not right at the end + }else if(c == spanslength-1 && i < contentlength - 1){ + span.textContent = "â–¼"; + onclickfunc = this.bound_on_forward_click; + let o = span.getBBox(); + span.setAttribute("dx", (m.width - o.width)/2); + // otherwise normal content + }else{ + span.textContent = this.content[i]; + let sel = i; + onclickfunc = (evt) => this.bound_on_selection_click(sel); + span.removeAttribute("dx"); + i++; + } + this.make_clickable(span, onclickfunc); + c++; + } + } + open(){ + let length = this.content.length; + // systematically reset text, to strip eventual whitespace spans + this.reset_text(); + // grow as much as needed or possible + let slots = this.grow_text(length); + // Depending on final size + if(slots == length) { + // show all at once + this.set_complete_text(); + } else { + // eventualy align menu to current selection, compensating for lift + let offset = this.last_selection - this.lift; + if(offset > 0) + this.menu_offset = Math.min(offset + 1, length - slots + 1); + else + this.menu_offset = 0; + // show surrounding values + this.set_partial_text(); + } + // Now that text size is known, we can set the box around it + this.adjust_box_to_text(); + // Take button out until menu closed + this.element.removeChild(this.button_elt); + // Rise widget to top by moving it to last position among siblings + this.element.parentNode.appendChild(this.element.parentNode.removeChild(this.element)); + // disable interaction with background + svg_root.addEventListener("pointerdown", numb_event, true); + svg_root.addEventListener("pointerup", numb_event, true); + svg_root.addEventListener("click", this.bound_close_on_click_elsewhere, true); + this.highlight_selection(); + + // mark as open + this.opened = true; + } + // Put text element in normalized state + reset_text(){ + let txt = this.text_elt; + let first = txt.firstElementChild; + // remove attribute eventually added to first text line while opening + first.onclick = null; + first.removeAttribute("dy"); + first.removeAttribute("dx"); + // keep only the first line of text + for(let span of Array.from(txt.children).slice(1)){ + txt.removeChild(span) + } + } + // Put rectangle element in saved original state + reset_box(){ + let m = this.box_bbox; + let b = this.box_elt; + b.x.baseVal.value = m.x; + b.y.baseVal.value = m.y; + b.width.baseVal.value = m.width; + b.height.baseVal.value = m.height; + } + highlight_selection(){ + if(this.last_selection == undefined) return; + let highlighted_row = this.last_selection - this.menu_offset; + if(highlighted_row < 0) return; + let spans = this.text_elt.children; + let spanslength = spans.length; + let contentlength = this.content.length; + if(this.menu_offset != 0) { + spanslength--; + highlighted_row++; + } + if(this.menu_offset + spanslength < contentlength - 1) spanslength--; + if(highlighted_row > spanslength) return; + let original_text_y = this.text_bbox.y; + let highlight = this.highlight_elt; + let span = spans[highlighted_row]; + let yoffset = span.getBBox().y - original_text_y; + highlight.y.baseVal.value = this.highlight_bbox.y + yoffset; + highlight.style.visibility = "visible"; + } + reset_highlight(){ + let highlight = this.highlight_elt; + highlight.y.baseVal.value = this.highlight_bbox.y; + highlight.style.visibility = "hidden"; + } + // Use margin and text size to compute box size + adjust_box_to_text(){ + let [lmargin, tmargin] = this.margins; + let m = this.text_elt.getBBox(); + let b = this.box_elt; + // b.x.baseVal.value = m.x - lmargin; + b.y.baseVal.value = m.y - tmargin; + // b.width.baseVal.value = 2 * lmargin + m.width; + b.height.baseVal.value = 2 * tmargin + m.height; + } + } +|| +} + +template "widget[@type='DropDown']", mode="widget_defs" { + param "hmi_element"; + labels("text box button highlight"); + // It is assumed that list content conforms to Array interface. + > content: + choose{ + // special case when used for language selection + when "count(arg) = 1 and arg[1]/@value = '#langs'" { + > langs + } + otherwise { + > [\n + foreach "arg" | "«@value»", + > ] + } + } + > ,\n +} diff -r 2b00f90c6888 -r d5b2369a103f svghmi/widget_foreach.ysl2 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/widget_foreach.ysl2 Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,122 @@ + +template "widget[@type='ForEach']", mode="widget_defs" { + param "hmi_element"; + + if "count(path) != 1" error > ForEach widget «$hmi_element/@id» must have one HMI path given. + if "count(arg) != 1" error > ForEach widget «$hmi_element/@id» must have one argument given : a class name. + + const "class","arg[1]/@value"; + + const "base_path","path/@value"; + const "hmi_index_base", "$indexed_hmitree/*[@hmipath = $base_path]"; + const "hmi_tree_base", "$hmitree/descendant-or-self::*[@path = $hmi_index_base/@path]"; + const "hmi_tree_items", "$hmi_tree_base/*[@class = $class]"; + const "hmi_index_items", "$indexed_hmitree/*[@path = $hmi_tree_items/@path]"; + const "items_paths", "$hmi_index_items/@hmipath"; + | index_pool: [ + foreach "$hmi_index_items" { + | «@index»`if "position()!=last()" > ,` + } + | ], + | init: function() { + const "prefix","concat($class,':')"; + const "buttons_regex","concat('^',$prefix,'[+\-][0-9]+')"; + const "buttons", "$hmi_element/*[regexp:test(@inkscape:label, $buttons_regex)]"; + foreach "$buttons" { + const "op","substring-after(@inkscape:label, $prefix)"; + | id("«@id»").setAttribute("onclick", "hmi_widgets['«$hmi_element/@id»'].on_click('«$op»', evt)"); + } + | + | this.items = [ + const "items_regex","concat('^',$prefix,'[0-9]+')"; + const "unordered_items","$hmi_element//*[regexp:test(@inkscape:label, $items_regex)]"; + foreach "$unordered_items" { + const "elt_label","concat($prefix, string(position()))"; + const "elt","$unordered_items[@inkscape:label = $elt_label]"; + const "pos","position()"; + const "item_path", "$items_paths[$pos]"; + | [ /* item="«$elt_label»" path="«$item_path»" */ + if "count($elt)=0" error > Missing item labeled «$elt_label» in ForEach widget «$hmi_element/@id» + foreach "func:refered_elements($elt)[@id = $hmi_elements/@id][not(@id = $elt/@id)]" { + if "not(func:is_descendant_path(func:widget(@id)/path/@value, $item_path))" + error > Widget id="«@id»" label="«@inkscape:label»" is having wrong path. Accroding to ForEach widget ancestor id="«$hmi_element/@id»", path should be descendant of "«$item_path»". + | hmi_widgets["«@id»"]`if "position()!=last()" > ,` + } + | ]`if "position()!=last()" > ,` + } + | ] + | }, + | item_offset: 0, +} + +template "widget[@type='ForEach']", mode="widget_class" +|| +class ForEachWidget extends Widget{ + + unsub_items(){ + for(let item of this.items){ + for(let widget of item) { + widget.unsub(); + } + } + } + + unsub(){ + this.unsub_items(); + this.offset = 0; + this.relativeness = undefined; + } + + sub_items(){ + for(let i = 0; i < this.items.length; i++) { + let item = this.items[i]; + let orig_item_index = this.index_pool[i]; + let item_index = this.index_pool[i+this.item_offset]; + let item_index_offset = item_index - orig_item_index; + if(this.relativeness[0]) + item_index_offset += this.offset; + for(let widget of item) { + /* all variables of all widgets in a ForEach are all relative. + Really. + + TODO: allow absolute variables in ForEach widgets + */ + widget.sub(item_index_offset, widget.indexes.map(_=>true)); + } + } + } + + sub(new_offset=0, relativeness=[]){ + this.offset = new_offset; + this.relativeness = relativeness; + this.sub_items(); + } + + apply_cache() { + this.items.forEach(item=>item.forEach(widget=>widget.apply_cache())); + } + + on_click(opstr, evt) { + let new_item_offset = eval(String(this.item_offset)+opstr); + if(new_item_offset + this.items.length > this.index_pool.length) { + if(this.item_offset + this.items.length == this.index_pool.length) + new_item_offset = 0; + else + new_item_offset = this.index_pool.length - this.items.length; + } else if(new_item_offset < 0) { + if(this.item_offset == 0) + new_item_offset = this.index_pool.length - this.items.length; + else + new_item_offset = 0; + } + this.item_offset = new_item_offset; + this.unsub_items(); + this.sub_items(); + update_subscriptions(); + need_cache_apply.push(this); + jumps_need_update = true; + requestHMIAnimation(); + } +} +|| + diff -r 2b00f90c6888 -r d5b2369a103f svghmi/widget_input.ysl2 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/widget_input.ysl2 Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,95 @@ +// widget_input.ysl2 + +template "widget[@type='Input']", mode="widget_class"{ +|| + class InputWidget extends Widget{ + on_op_click(opstr) { + this.change_hmi_value(0, opstr); + } + edit_callback(new_val) { + this.apply_hmi_value(0, new_val); + } + + is_inhibited = false; + alert(msg){ + this.is_inhibited = true; + this.display = msg; + setTimeout(() => this.stopalert(), 1000); + this.request_animate(); + } + + stopalert(){ + this.is_inhibited = false; + this.display = this.last_value; + this.request_animate(); + } + + overshot(new_val, max) { + this.alert("max"); + } + + undershot(new_val, min) { + this.alert("min"); + } + + + } +|| +} + +template "widget[@type='Input']", mode="widget_defs" { + param "hmi_element"; + + const "value_elt" optional_labels("value"); + const "have_value","string-length($value_elt)>0"; + value "$value_elt"; + + const "edit_elt" optional_labels("edit"); + const "have_edit","string-length($edit_elt)>0"; + value "$edit_elt"; + + if "$have_value" + | frequency: 5, + + | dispatch: function(value) { + + + if "$have_value or $have_edit" { + choose{ + when "count(arg) = 1" { + | this.last_value = vsprintf("«arg[1]/@value»", [value]); + } + otherwise { + | this.last_value = value; + } + } + | if(!this.is_inhibited){ + | this.display = this.last_value; + if "$have_value" { + | this.request_animate(); + } + | } + } + | }, + + if "$have_value" { + | animate: function(){ + | this.value_elt.textContent = String(this.display); + | }, + } + + | init: function() { + + if "$have_edit" { + | this.edit_elt.onclick = () => edit_value("«path/@value»", "«path/@type»", this, this.last_value); + if "$have_value" { + | this.value_elt.style.pointerEvents = "none"; + } + } + + foreach "$hmi_element/*[regexp:test(@inkscape:label,'^[=+\-].+')]" { + | id("«@id»").onclick = () => this.on_op_click("«func:escape_quotes(@inkscape:label)»"); + } + + | }, +} diff -r 2b00f90c6888 -r d5b2369a103f svghmi/widget_jsontable.ysl2 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/widget_jsontable.ysl2 Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,285 @@ +// widget_jsontable.ysl2 + +template "widget[@type='JsonTable']", mode="widget_class" + || + class JsonTableWidget extends Widget{ + // arbitrary defaults to avoid missing entries in query + cache = [0,0,0]; + init_common() { + this.spread_json_data_bound = this.spread_json_data.bind(this); + this.handle_http_response_bound = this.handle_http_response.bind(this); + this.fetch_error_bound = this.fetch_error.bind(this); + this.promised = false; + } + + handle_http_response(response) { + if (!response.ok) { + console.log("HTTP error, status = " + response.status); + } + return response.json(); + } + + fetch_error(e){ + console.log("HTTP fetch error, message = " + e.message + "Widget:" + this.element_id); + } + + do_http_request(...opt) { + this.abort_controller = new AbortController(); + return Promise.resolve().then(() => { + + const query = { + args: this.args, + range: this.cache[1], + position: this.cache[2], + visible: this.visible, + extra: this.cache.slice(4), + options: opt + }; + + const options = { + method: 'POST', + body: JSON.stringify(query), + headers: {'Content-Type': 'application/json'}, + signal: this.abort_controller.signal + }; + + return fetch(this.args[0], options) + .then(this.handle_http_response_bound) + .then(this.spread_json_data_bound) + .catch(this.fetch_error_bound); + }); + } + + unsub(){ + this.abort_controller.abort(); + super.unsub(); + } + + sub(...args){ + this.cache[0] = undefined; + super.sub(...args); + } + + dispatch(value, oldval, index) { + + if(this.cache[index] != value) + this.cache[index] = value; + else + return; + + if(!this.promised){ + this.promised = true; + this.do_http_request().finally(() => { + this.promised = false; + }); + } + } + make_on_click(...options){ + let that = this; + return function(evt){ + that.do_http_request(...options); + } + } + // on_click(evt, ...options) { + // this.do_http_request(...options); + // } + } + || + +template "svg:*", mode="json_table_elt_render" { + error > JsonTable Widget can't contain element of type «local-name()». +} + + +const "hmi_textstylelists_descs", "$parsed_widgets/widget[@type = 'TextStyleList']"; +const "hmi_textstylelists", "$hmi_elements[@id = $hmi_textstylelists_descs/@id]"; + +const "textstylelist_related" foreach "$hmi_textstylelists" list { + attrib "listid" value "@id"; + foreach "func:refered_elements(.)" elt { + attrib "eltid" value "@id"; + } +} +const "textstylelist_related_ns", "exsl:node-set($textstylelist_related)"; + +def "func:json_expressions" { + param "expressions"; + param "label"; + + // compute javascript expressions to access JSON data + // desscribed in given svg element's "label" + // knowing that parent element already has given "expressions". + + choose { + when "$label" { + const "suffixes", "str:split($label)"; + const "res" foreach "$suffixes" expression { + const "suffix","."; + const "pos","position()"; + // take last available expression (i.e can have more suffixes than expressions) + const "expr","$expressions[position() <= $pos][last()]/expression"; + choose { + when "contains($suffix,'=')" { + const "name", "substring-before($suffix,'=')"; + if "$expr/@name[. != $name]" + error > JsonTable : missplaced '=' or inconsistent names in Json data expressions. + attrib "name" value "$name"; + attrib "content" > «$expr/@content»«substring-after($suffix,'=')» + } + otherwise { + copy "$expr/@name"; + attrib "content" > «$expr/@content»«$suffix» + } + } + } + result "exsl:node-set($res)"; + } + // Empty labels are ignored, expressions are then passed as-is. + otherwise result "$expressions"; + } + +} + +const "initexpr" expression attrib "content" > jdata +const "initexpr_ns", "exsl:node-set($initexpr)"; + +template "svg:use", mode="json_table_elt_render" { + param "expressions"; + // cloned element must be part of a HMI:List + const "targetid", "substring-after(@xlink:href,'#')"; + const "from_list", "$hmi_lists[(@id | */@id) = $targetid]"; + + choose { + when "count($from_list) > 0" { + | id("«@id»").setAttribute("xlink:href", + // obtain new target id from HMI:List widget + | "#"+hmi_widgets["«$from_list/@id»"].items[«$expressions/expression[1]/@content»]); + } + otherwise + warning > Clones (svg:use) in JsonTable Widget must point to a valid HMI:List widget or item. Reference "«@xlink:href»" is not valid and will not be updated. + } +} + +template "svg:text", mode="json_table_elt_render" { + param "expressions"; + const "value_expr", "$expressions/expression[1]/@content"; + const "original", "@original"; + const "from_textstylelist", "$textstylelist_related_ns/list[elt/@eltid = $original]"; + choose { + + when "count($from_textstylelist) > 0" { + const "content_expr", "$expressions/expression[2]/@content"; + if "string-length($content_expr) = 0 or $expressions/expression[2]/@name != 'textContent'" + error > Clones (svg:use) in JsonTable Widget pointing to a HMI:TextStyleList widget or item must have a "textContent=.someVal" assignement following value expression in label. + | { + | let elt = id("«@id»"); + | elt.textContent = String(«$content_expr»); + | elt.style = hmi_widgets["«$from_textstylelist/@listid»"].styles[«$value_expr»]; + | } + } + otherwise { + | id("«@id»").textContent = String(«$value_expr»); + } + } +} + + +// only labels comming from Json widget are counted in +def "func:filter_non_widget_label" { + param "elt"; + param "widget_elts"; + const "eltid" choose { + when "$elt/@original" value "$elt/@original"; + otherwise value "$elt/@id"; + } + result "$widget_elts[@id=$eltid]/@inkscape:label"; +} + +template "svg:*", mode="json_table_render_except_comments"{ + param "expressions"; + param "widget_elts"; + + const "label", "func:filter_non_widget_label(., $widget_elts)"; + // filter out "# commented" elements + if "not(starts-with($label,'#'))" + apply ".", mode="json_table_render"{ + with "expressions", "$expressions"; + with "widget_elts", "$widget_elts"; + with "label", "$label"; + } +} + + +template "svg:*", mode="json_table_render" { + param "expressions"; + param "widget_elts"; + param "label"; + + const "new_expressions", "func:json_expressions($expressions, $label)"; + + const "elt","."; + foreach "$new_expressions/expression[position() > 1][starts-with(@name,'onClick')]" + | id("«$elt/@id»").onclick = this.make_on_click('«@name»', «@content»); + + apply ".", mode="json_table_elt_render" + with "expressions", "$new_expressions"; +} + +template "svg:g", mode="json_table_render" { + param "expressions"; + param "widget_elts"; + param "label"; + + // use intermediate variables for optimization + const "varprefix" > obj_«@id»_ + | try { + + foreach "$expressions/expression"{ + | let «$varprefix»«position()» = «@content»; + | if(«$varprefix»«position()» == undefined) { + | throw null; + | } + } + + // because we put values in a variables, we can replace corresponding expression with variable name + const "new_expressions" foreach "$expressions/expression" xsl:copy { + copy "@name"; + attrib "content" > «$varprefix»«position()» + } + + // revert hiding in case it did happen before + | id("«@id»").style = "«@style»"; + + apply "*", mode="json_table_render_except_comments" { + with "expressions", "func:json_expressions(exsl:node-set($new_expressions), $label)"; + with "widget_elts", "$widget_elts"; + } + | } catch(err) { + | id("«@id»").style = "display:none"; + | } +} + +template "widget[@type='JsonTable']", mode="widget_defs" { + param "hmi_element"; + labels("data"); + const "data_elt", "$result_svg_ns//*[@id = $hmi_element/@id]/*[@inkscape:label = 'data']"; + | visible: «count($data_elt/*[@inkscape:label])», + | spread_json_data: function(janswer) { + | let [range,position,jdata] = janswer; + | [[1, range], [2, position], [3, this.visible]].map(([i,v]) => { + | this.apply_hmi_value(i,v); + | this.cache[i] = v; + | }); + apply "$data_elt", mode="json_table_render_except_comments" { + with "expressions","$initexpr_ns"; + with "widget_elts","$hmi_element/*[@inkscape:label = 'data']/descendant::svg:*"; + } + | }, + | init() { + | this.init_common(); + foreach "$hmi_element/*[starts-with(@inkscape:label,'action_')]" { + | id("«@id»").onclick = this.make_on_click("«func:escape_quotes(@inkscape:label)»"); + } + | } + +} diff -r 2b00f90c6888 -r d5b2369a103f svghmi/widget_jump.ysl2 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/widget_jump.ysl2 Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,124 @@ +// widget_jump.ysl2 + +template "widget[@type='Jump']", mode="widget_class"{ +|| + class JumpWidget extends Widget{ + + activable = false; + active = false; + disabled = false; + frequency = 2; + + update_activity() { + if(this.active) { + /* show active */ + this.active_elt.setAttribute("style", this.active_elt_style); + /* hide inactive */ + this.inactive_elt.setAttribute("style", "display:none"); + } else { + /* show inactive */ + this.inactive_elt.setAttribute("style", this.inactive_elt_style); + /* hide active */ + this.active_elt.setAttribute("style", "display:none"); + } + } + + make_on_click() { + let that = this; + const name = this.args[0]; + return function(evt){ + /* TODO: suport path pointing to local variable whom value + would be an HMI_TREE index to jump to a relative page */ + const index = that.indexes.length > 0 ? that.indexes[0] + that.offset : undefined; + switch_page(name, index); + } + } + + notify_page_change(page_name, index) { + if(this.activable) { + const ref_index = this.indexes.length > 0 ? this.indexes[0] + this.offset : undefined; + const ref_name = this.args[0]; + this.active = ((ref_name == undefined || ref_name == page_name) && index == ref_index); + this.update_activity(); + } + } + + dispatch(value) { + this.disabled = !Number(value); + if(this.disabled) { + /* show disabled */ + this.disabled_elt.setAttribute("style", this.disabled_elt_style); + /* hide inactive */ + this.inactive_elt.setAttribute("style", "display:none"); + /* hide active */ + this.active_elt.setAttribute("style", "display:none"); + } else { + /* hide disabled */ + this.disabled_elt.setAttribute("style", "display:none"); + this.update_activity(); + } + } + } +|| +} + +template "widget[@type='Jump']", mode="widget_defs" { + param "hmi_element"; + const "activity" optional_labels("active inactive"); + const "have_activity","string-length($activity)>0"; + value "$activity"; + + const "disability" optional_labels("disabled"); + const "have_disability","$have_activity and string-length($disability)>0"; + value "$disability"; + + | init: function() { + | this.element.onclick = this.make_on_click(); + if "$have_activity" { + | this.active_elt_style = this.active_elt.getAttribute("style"); + | this.inactive_elt_style = this.inactive_elt.getAttribute("style"); + | this.activable = true; + } + choose { + when "$have_disability" { + | this.disabled_elt_style = this.disabled_elt.getAttribute("style"); + } + otherwise { + | this.unsubscribable = true; + } + } + | }, +} + +template "widget[@type='Jump']", mode="per_page_widget_template"{ + param "page_desc"; + /* check that given path is compatible with page's reference path */ + if "path" { + /* TODO: suport local variable containing an HMI_TREE index to jump to a relative page */ + /* when no page name provided, check for same page */ + const "target_page_name" choose { + when "arg" value "arg[1]/@value"; + otherwise value "$page_desc/arg[1]/@value"; + } + const "target_page_path" choose { + when "arg" value "$hmi_pages_descs[arg[1]/@value = $target_page_name]/path[1]/@value"; + otherwise value "$page_desc/path[1]/@value"; + } + + if "not(func:same_class_paths($target_page_path, path[1]/@value))" + error > Jump id="«@id»" to page "«$target_page_name»" with incompatible path "«path[1]/@value» (must be same class as "«$target_page_path»") + } +} + +emit "declarations:jump" +|| +var jumps_need_update = false; +var jump_history = [[default_page, undefined]]; + +function update_jumps() { + page_desc[current_visible_page].jumps.map(w=>w.notify_page_change(current_visible_page,current_page_index)); + jumps_need_update = false; +}; + +|| + diff -r 2b00f90c6888 -r d5b2369a103f svghmi/widget_keypad.ysl2 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/widget_keypad.ysl2 Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,133 @@ +// widget_keypad.ysl2 + +emit "declarations:keypad" { + | + | var keypads = { + foreach "$keypads_descs"{ + const "keypad_id","@id"; + foreach "arg"{ + const "g", "$geometry[@Id = $keypad_id]"; + | "«@value»":["«$keypad_id»", «$g/@x», «$g/@y»], + } + } + | } +} + +template "widget[@type='Keypad']", mode="widget_class" + || + class KeypadWidget extends Widget{ + + on_key_click(symbols) { + var syms = symbols.split(" "); + this.shift |= this.caps; + this.editstr += syms[this.shift?syms.length-1:0]; + this.shift = false; + this.update(); + } + + on_Esc_click() { + end_modal.call(this); + } + + on_Enter_click() { + let coercedval = (typeof this.initial) == "number" ? Number(this.editstr) : this.editstr; + if(typeof coercedval == 'number' && isNaN(coercedval)){ + // revert to initial so it explicitely shows input was ignored + this.editstr = String(this.initial); + this.update(); + } else { + let callback_obj = this.result_callback_obj; + end_modal.call(this); + callback_obj.edit_callback(coercedval); + } + } + + on_BackSpace_click() { + this.editstr = this.editstr.slice(0,this.editstr.length-1); + this.update(); + } + + on_Sign_click() { + if(this.editstr[0] == "-") + this.editstr = this.editstr.slice(1,this.editstr.length); + else + this.editstr = "-" + this.editstr; + this.update(); + } + + on_NumDot_click() { + if(this.editstr.indexOf(".") == "-1"){ + this.editstr += "."; + this.update(); + } + } + + on_Space_click() { + this.editstr += " "; + this.update(); + } + + caps = false; + _caps = undefined; + on_CapsLock_click() { + this.caps = !this.caps; + this.update(); + } + + shift = false; + _shift = undefined; + on_Shift_click() { + this.shift = !this.shift; + this.caps = false; + this.update(); + } + editstr = ""; + _editstr = undefined; + result_callback_obj = undefined; + start_edit(info, valuetype, callback_obj, initial,size) { + show_modal.call(this,size); + this.editstr = String(initial); + this.result_callback_obj = callback_obj; + this.Info_elt.textContent = info; + this.shift = false; + this.caps = false; + this.initial = initial; + + this.update(); + } + + update() { + if(this.editstr != this._editstr){ + this._editstr = this.editstr; + this.Value_elt.textContent = this.editstr; + } + if(this.Shift_sub && this.shift != this._shift){ + this._shift = this.shift; + (this.shift?this.activate_activable:this.inactivate_activable)(this.Shift_sub); + } + if(this.CapsLock_sub && this.caps != this._caps){ + this._caps = this.caps; + (this.caps?this.activate_activable:this.inactivate_activable)(this.CapsLock_sub); + } + } + } + || + +template "widget[@type='Keypad']", mode="widget_defs" { + param "hmi_element"; + labels("Esc Enter BackSpace Keys Info Value"); + optional_labels("Sign Space NumDot"); + activable_labels("CapsLock Shift"); + | init: function() { + foreach "$hmi_element/*[@inkscape:label = 'Keys']/*" { + | id("«@id»").setAttribute("onclick", "hmi_widgets['«$hmi_element/@id»'].on_key_click('«func:escape_quotes(@inkscape:label)»')"); + } + foreach "str:split('Esc Enter BackSpace Sign Space NumDot CapsLock Shift')" { + | if(this.«.»_elt) + | this.«.»_elt.setAttribute("onclick", "hmi_widgets['«$hmi_element/@id»'].on_«.»_click()"); + } + | }, + | + const "g", "$geometry[@Id = $hmi_element/@id]"; + | coordinates: [«$g/@x», «$g/@y»], +} diff -r 2b00f90c6888 -r d5b2369a103f svghmi/widget_list.ysl2 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/widget_list.ysl2 Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,20 @@ +// widget_list.ysl2 + +template "widget[@type='List']", mode="widget_defs" { + param "hmi_element"; + | items: { + foreach "$hmi_element/*[@inkscape:label]" { + | «@inkscape:label»: "«@id»", + } + | }, +} + +template "widget[@type='TextStyleList']", mode="widget_defs" { + param "hmi_element"; + | styles: { + foreach "$hmi_element/*[@inkscape:label]" { + const "style", "func:refered_elements(.)[self::svg:text]/@style"; + | «@inkscape:label»: "«$style»", + } + | }, +} diff -r 2b00f90c6888 -r d5b2369a103f svghmi/widget_meter.ysl2 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/widget_meter.ysl2 Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,43 @@ +// widget_meter.ysl2 + +template "widget[@type='Meter']", mode="widget_class"{ + || + class MeterWidget extends Widget{ + frequency = 10; + origin = undefined; + range = undefined; + + dispatch(value) { + this.display_val = value; + this.request_animate(); + } + + animate(){ + if(this.value_elt) + this.value_elt.textContent = String(this.display_val); + let [min,max,totallength] = this.range; + let length = Math.max(0,Math.min(totallength,(Number(this.display_val)-min)*totallength/(max-min))); + let tip = this.range_elt.getPointAtLength(length); + this.needle_elt.setAttribute('d', "M "+this.origin.x+","+this.origin.y+" "+tip.x+","+tip.y); + } + + init() { + let [min,max] = [[this.min_elt,0],[this.max_elt,100]].map(([elt,def],i)=>elt? + Number(elt.textContent) : + this.args.length >= i+1 ? this.args[i] : def); + + this.range = [min, max, this.range_elt.getTotalLength()] + this.origin = this.needle_elt.getPointAtLength(0); + } + + } + || +} + +template "widget[@type='Meter']", mode="widget_defs" { + param "hmi_element"; + labels("needle range"); + optional_labels("value min max"); +} + + diff -r 2b00f90c6888 -r d5b2369a103f svghmi/widget_multistate.ysl2 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/widget_multistate.ysl2 Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,60 @@ +// widget_multistate.ysl2 + +template "widget[@type='MultiState']", mode="widget_class" + || + class MultiStateWidget extends Widget{ + frequency = 5; + state = 0; + dispatch(value) { + this.state = value; + for(let choice of this.choices){ + if(this.state != choice.value){ + choice.elt.setAttribute("style", "display:none"); + } else { + choice.elt.setAttribute("style", choice.style); + } + } + } + + on_click(evt) { + //get current selected value + let next_ind; + for(next_ind=0; next_ind<this.choices.length; next_ind++){ + if(this.state == this.choices[next_ind].value){ + next_ind = next_ind + 1; + break; + } + } + + //get next selected value + if(this.choices.length > next_ind){ + this.state = this.choices[next_ind].value; + } + else{ + this.state = this.choices[0].value; + } + + //post value to plc + this.apply_hmi_value(0, this.state); + } + + init() { + this.element.setAttribute("onclick", "hmi_widgets['"+this.element_id+"'].on_click(evt)"); + } + } + || + +template "widget[@type='MultiState']", mode="widget_defs" { + param "hmi_element"; + | choices: [ + const "regex",!"'^(\"[^\"].*\"|\-?[0-9]+|false|true)(#.*)?$'"!; + foreach "$result_svg_ns//*[@id = $hmi_element/@id]//*[regexp:test(@inkscape:label,$regex)]" { + const "literal", "regexp:match(@inkscape:label,$regex)[2]"; + | { + | elt:id("«@id»"), + | style:"«@style»", + | value:«$literal» + | }`if "position()!=last()" > ,` + } + | ], +} diff -r 2b00f90c6888 -r d5b2369a103f svghmi/widget_scrollbar.ysl2 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/widget_scrollbar.ysl2 Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,112 @@ +// widget_scrollbar.ysl2 + +template "widget[@type='ScrollBar']", mode="widget_class"{ + || + class ScrollBarWidget extends Widget{ + frequency = 10; + position = undefined; + range = undefined; + size = undefined; + mincursize = 0.1; + + dispatch(value,oldval, index) { + switch(index) { + case 0: + this.range = Math.max(1,value); + break; + case 1: + this.position = value; + break; + case 2: + this.size = value; + break; + } + + this.request_animate(); + } + + get_ratios() { + let range = this.range; + let size = Math.max(this.range * this.mincursize, Math.min(this.size, range)); + let maxh = this.range_elt.height.baseVal.value; + let pixels = maxh; + let units = range; + return [size, maxh, range, pixels, units]; + } + + animate(){ + if(this.position == undefined || this.range == undefined || this.size == undefined) + return; + let [size, maxh, range, pixels, units] = this.get_ratios(); + + let new_y = this.range_elt.y.baseVal.value + Math.round(Math.min(this.position,range-size) * pixels / units); + let new_height = Math.round(maxh * size/range); + + this.cursor_elt.y.baseVal.value = new_y; + this.cursor_elt.height.baseVal.value = new_height; + } + + init_mandatory() { + this.cursor_elt.onpointerdown = () => this.on_cursor_down(); + + this.bound_drag = this.drag.bind(this); + this.bound_drop = this.drop.bind(this); + } + + apply_position(position){ + this.position = Math.round(Math.max(Math.min(position, this.range - this.size), 0)); + this.apply_hmi_value(1, this.position); + } + + on_page_click(is_up){ + this.apply_position(is_up ? this.position-this.size + : this.position+this.size); + } + + on_cursor_down(e){ + // get scrollbar -> root transform + let ctm = this.range_elt.getCTM(); + // relative motion -> discard translation + ctm.e = 0; + ctm.f = 0; + // root -> scrollbar transform + this.invctm = ctm.inverse(); + svg_root.addEventListener("pointerup", this.bound_drop, true); + svg_root.addEventListener("pointermove", this.bound_drag, true); + this.dragpos = this.position; + } + + drop(e) { + svg_root.removeEventListener("pointerup", this.bound_drop, true); + svg_root.removeEventListener("pointermove", this.bound_drag, true); + } + + drag(e) { + let [size, maxh, range, pixels, units] = this.get_ratios(); + if(pixels == 0) return; + let point = new DOMPoint(e.movementX, e.movementY); + let movement = point.matrixTransform(this.invctm).y; + this.dragpos += movement * units / pixels; + this.apply_position(this.dragpos); + } + } + || +} + +template "widget[@type='ScrollBar']", mode="widget_defs" { + param "hmi_element"; + labels("cursor range"); + + const "pagebuttons" optional_labels("pageup pagedown"); + const "have_pagebuttons","string-length($pagebuttons)>0"; + value "$pagebuttons"; + + | init: function() { + | this.init_mandatory(); + + if "$have_pagebuttons" { + | this.pageup_elt.onclick = () => this.on_page_click(true); + | this.pagedown_elt.onclick = () => this.on_page_click(false); + } + | }, +} diff -r 2b00f90c6888 -r d5b2369a103f svghmi/widget_slider.ysl2 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/widget_slider.ysl2 Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,347 @@ +// widget_slider.ysl2 + +template "widget[@type='Slider']", mode="widget_class" + || + class SliderWidget extends Widget{ + frequency = 5; + range = undefined; + handle_orig = undefined; + scroll_size = undefined; + scroll_range = 0; + scroll_visible = 7; + min_size = 0.07; + fi = undefined; + curr_value = 0; + drag = false; + enTimer = false; + handle_click = undefined; + last_drag = false; + + dispatch(value,oldval, index) { + if (index == 0){ + let [min,max,start,totallength] = this.range; + //save current value inside widget + this.curr_value = value; + + //check if in range + if (this.curr_value > max){ + this.curr_value = max; + this.apply_hmi_value(0, this.curr_value); + } + else if (this.curr_value < min){ + this.curr_value = min; + this.apply_hmi_value(0, this.curr_value); + } + + if(this.value_elt) + this.value_elt.textContent = String(value); + } + else if(index == 1){ + this.scroll_range = value; + this.set_scroll(); + } + else if(index == 2){ + this.scroll_visible = value; + this.set_scroll(); + } + + //don't update if draging and setpoint ghost doesn't exist + if(!this.drag || (this.setpoint_elt != undefined)){ + this.update_DOM(this.curr_value, this.handle_elt); + } + } + + set_scroll(){ + //check if range is bigger than visible and set scroll size + if(this.scroll_range > this.scroll_visible){ + this.scroll_size = this.scroll_range - this.scroll_visible; + this.range[0] = 0; + this.range[1] = this.scroll_size; + } + else{ + this.scroll_size = 1; + this.range[0] = 0; + this.range[1] = 1; + } + } + + update_DOM(value, elt){ + let [min,max,start,totallength] = this.range; + // check if handle is resizeable + if (this.scroll_size != undefined){ //size changes + //get parameters + let length = Math.max(min,Math.min(max,(Number(value)-min)*max/(max-min))); + let tip = this.range_elt.getPointAtLength(length); + let handle_min = totallength*this.min_size; + + let step = 1; + //check if range is bigger than max displayed and recalculate step + if ((totallength/handle_min) < (max-min+1)){ + step = (max-min+1)/(totallength/handle_min-1); + } + + let kx,ky,offseY,offseX = undefined; + //scale on x or y axes + if (this.fi > 0.75){ + //get scale factor + if(step > 1){ + ky = handle_min/this.handle_orig.height; + } + else{ + ky = (totallength-handle_min*(max-min))/this.handle_orig.height; + } + kx = 1; + //get 0 offset to stay inside range + offseY = start.y - (this.handle_orig.height + this.handle_orig.y) * ky; + offseX = 0; + //get distance from value + tip.y =this.range_elt.getPointAtLength(0).y - length/step *handle_min; + } + else{ + //get scale factor + if(step > 1){ + kx = handle_min/this.handle_orig.width; + } + else{ + kx = (totallength-handle_min*(max-min))/this.handle_orig.width; + } + ky = 1; + //get 0 offset to stay inside range + offseX = start.x - (this.handle_orig.x * kx); + offseY = 0; + //get distance from value + tip.x =this.range_elt.getPointAtLength(0).x + length/step *handle_min; + } + elt.setAttribute('transform',"matrix("+(kx)+" 0 0 "+(ky)+" "+(tip.x-start.x+offseX)+" "+(tip.y-start.y+offseY)+")"); + } + else{ //size stays the same + let length = Math.max(0,Math.min(totallength,(Number(value)-min)*totallength/(max-min))); + let tip = this.range_elt.getPointAtLength(length); + elt.setAttribute('transform',"translate("+(tip.x-start.x)+","+(tip.y-start.y)+")"); + } + + // show or hide ghost if exists + if(this.setpoint_elt != undefined){ + if(this.last_drag!= this.drag){ + if(this.drag){ + this.setpoint_elt.setAttribute("style", this.setpoint_style); + }else{ + this.setpoint_elt.setAttribute("style", "display:none"); + } + this.last_drag = this.drag; + } + } + } + + on_release(evt) { + //unbind events + window.removeEventListener("touchmove", this.on_bound_drag, true); + window.removeEventListener("mousemove", this.on_bound_drag, true); + + window.removeEventListener("mouseup", this.bound_on_release, true); + window.removeEventListener("touchend", this.bound_on_release, true); + window.removeEventListener("touchcancel", this.bound_on_release, true); + + //reset drag flag + if(this.drag){ + this.drag = false; + } + + // get final position + this.update_position(evt); + + } + + on_drag(evt){ + //ignore drag event for X amount of time and if not selected + if(this.enTimer && this.drag){ + this.update_position(evt); + + //reset timer + this.enTimer = false; + setTimeout("{hmi_widgets['"+this.element_id+"'].enTimer = true;}", 100); + } + } + + update_position(evt){ + var html_dist = 0; + let [min,max,start,totallength] = this.range; + + //calculate size of widget in html + var range_borders = this.range_elt.getBoundingClientRect(); + var [minX,minY,maxX,maxY] = [range_borders.left,range_borders.bottom,range_borders.right,range_borders.top]; + var range_length = Math.sqrt( range_borders.height*range_borders.height + range_borders.width*range_borders.width ); + + //get range and mouse coordinates + var mouseX = undefined; + var mouseY = undefined; + if (evt.type.startsWith("touch")){ + mouseX = Math.ceil(evt.touches[0].clientX); + mouseY = Math.ceil(evt.touches[0].clientY); + } + else{ + mouseX = evt.pageX; + mouseY = evt.pageY; + } + + // calculate position + if (this.handle_click){ //if clicked on handle + let moveDist = 0, resizeAdd = 0; + let range_percent = 1; + + //set paramters for resizeable handle + if (this.scroll_size != undefined){ + // add one more object to stay inside range + resizeAdd = 1; + + //chack if range is bigger than display option and + // calculate percent of range with out handle + if(((max/(max*this.min_size)) < (max-min+1))){ + range_percent = 1-this.min_size; + } + else{ + range_percent = 1-(max-max*this.min_size*(max-min))/max; + } + } + + //calculate value difference on x or y axis + if(this.fi > 0.7){ + moveDist = ((max-min+resizeAdd)/(range_length*range_percent))*((this.handle_click[1]-mouseY)/Math.sin(this.fi)); + } + else{ + moveDist = ((max-min+resizeAdd)/(range_length*range_percent))*((mouseX-this.handle_click[0])/Math.cos(this.fi)); + } + + this.curr_value = Math.ceil(this.handle_click[2] + moveDist); + } + else{ //if clicked on widget + //get handle distance from mouse position + if (minX > mouseX && minY < mouseY){ + html_dist = 0; + } + else if (maxX < mouseX && maxY > mouseY){ + html_dist = range_length; + } + else{ + if(this.fi > 0.7){ + html_dist = (minY - mouseY)/Math.sin(this.fi); + } + else{ + html_dist = (mouseX - minX)/Math.cos(this.fi); + } + } + //calculate distance + this.curr_value=Math.ceil((html_dist/range_length)*(this.range[1]-this.range[0])+this.range[0]); + } + + //check if in range and apply + if (this.curr_value > max){ + this.curr_value = max; + } + else if (this.curr_value < min){ + this.curr_value = min; + } + this.apply_hmi_value(0, this.curr_value); + + //redraw handle + this.request_animate(); + + } + + animate(){ + // redraw handle on screen refresh + // check if setpoint(ghost) handle exsist otherwise update main handle + if(this.setpoint_elt != undefined){ + this.update_DOM(this.curr_value, this.setpoint_elt); + } + else{ + this.update_DOM(this.curr_value, this.handle_elt); + } + } + + on_select(evt){ + //enable drag flag and timer + this.drag = true; + this.enTimer = true; + + //bind events + window.addEventListener("touchmove", this.on_bound_drag, true); + window.addEventListener("mousemove", this.on_bound_drag, true); + + window.addEventListener("mouseup", this.bound_on_release, true); + window.addEventListener("touchend", this.bound_on_release, true); + window.addEventListener("touchcancel", this.bound_on_release, true); + + // check if handle was pressed + if (evt.currentTarget == this.handle_elt){ + //get mouse position on the handle + let mouseX = undefined; + let mouseY = undefined; + if (evt.type.startsWith("touch")){ + mouseX = Math.ceil(evt.touches[0].clientX); + mouseY = Math.ceil(evt.touches[0].clientY); + } + else{ + mouseX = evt.pageX; + mouseY = evt.pageY; + } + //save coordinates and orig value + this.handle_click = [mouseX,mouseY,this.curr_value]; + } + else{ + // get new handle position and reset if handle was not pressed + this.handle_click = undefined; + this.update_position(evt); + } + + //prevent next events + evt.stopPropagation(); + + } + + + init() { + //set min max value if not defined + let min = this.min_elt ? + Number(this.min_elt.textContent) : + this.args.length >= 1 ? this.args[0] : 0; + let max = this.max_elt ? + Number(this.max_elt.textContent) : + this.args.length >= 2 ? this.args[1] : 100; + + + // save initial parameters + this.range_elt.style.strokeMiterlimit="0"; + this.range = [min, max, this.range_elt.getPointAtLength(0),this.range_elt.getTotalLength()]; + let start = this.range_elt.getPointAtLength(0); + let end = this.range_elt.getPointAtLength(this.range_elt.getTotalLength()); + this.fi = Math.atan2(start.y-end.y, end.x-start.x); + this.handle_orig = this.handle_elt.getBBox(); + + //bind functions + this.bound_on_select = this.on_select.bind(this); + this.bound_on_release = this.on_release.bind(this); + this.on_bound_drag = this.on_drag.bind(this); + + this.handle_elt.addEventListener("mousedown", this.bound_on_select); + this.element.addEventListener("mousedown", this.bound_on_select); + this.element.addEventListener("touchstart", this.bound_on_select); + //touch recognised as page drag without next command + document.body.addEventListener("touchstart", function(e){}, false); + + //save ghost style + if(this.setpoint_elt != undefined){ + this.setpoint_style = this.setpoint_elt.getAttribute("style"); + this.setpoint_elt.setAttribute("style", "display:none"); + } + + } + } + || + +template "widget[@type='Slider']", mode="widget_defs" { + param "hmi_element"; + labels("handle range"); + optional_labels("value min max setpoint"); + |, +} diff -r 2b00f90c6888 -r d5b2369a103f svghmi/widget_switch.ysl2 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/widget_switch.ysl2 Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,37 @@ +// widget_switch.ysl2 + +template "widget[@type='Switch']", mode="widget_class" + || + class SwitchWidget extends Widget{ + frequency = 5; + dispatch(value) { + for(let choice of this.choices){ + if(value != choice.value){ + choice.elt.setAttribute("style", "display:none"); + } else { + choice.elt.setAttribute("style", choice.style); + } + } + } + } + || + +template "widget[@type='Switch']", mode="widget_defs" { + param "hmi_element"; + | choices: [ + const "regex",!"'^(\"[^\"].*\"|\-?[0-9]+|false|true)(#.*)?$'"!; + + const "subelts", "$result_widgets[@id = $hmi_element/@id]//*"; + const "subwidgets", "$subelts//*[@id = $hmi_widgets/@id]"; + const "accepted", "$subelts[not(ancestor-or-self::*/@id = $subwidgets/@id)]"; + + foreach "$accepted[regexp:test(@inkscape:label,$regex)]" { + const "literal", "regexp:match(@inkscape:label,$regex)[2]"; + | { + | elt:id("«@id»"), + | style:"«@style»", + | value:«$literal» + | }`if "position()!=last()" > ,` + } + | ], +} diff -r 2b00f90c6888 -r d5b2369a103f svghmi/widget_tooglebutton.ysl2 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/widget_tooglebutton.ysl2 Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,51 @@ +// widget_tooglebutton.ysl2 + + +template "widget[@type='ToggleButton']", mode="widget_class"{ + || + class ToggleButtonWidget extends Widget{ + frequency = 5; + state = 0; + active_style = undefined; + inactive_style = undefined; + + dispatch(value) { + this.state = value; + //redraw toggle button + this.request_animate(); + } + + on_click(evt) { + //toggle state and apply + this.state = this.state ? false : true; + this.apply_hmi_value(0, this.state); + + //redraw toggle button + this.request_animate(); + } + + activate(val) { + let [active, inactive] = val ? ["none",""] : ["", "none"]; + if (this.active_elt) + this.active_elt.style.display = active; + if (this.inactive_elt) + this.inactive_elt.style.display = inactive; + } + + animate(){ + // redraw toggle button on screen refresh + this.activate(this.state); + } + + init() { + this.activate(false); + this.element.onclick = (evt) => this.on_click(evt); + } + } + || +} + +template "widget[@type='ToggleButton']", mode="widget_defs" { + param "hmi_element"; + optional_labels("active inactive"); +} diff -r 2b00f90c6888 -r d5b2369a103f svghmi/widgetlib/keypads/alphanumeric_keypad.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/widgetlib/keypads/alphanumeric_keypad.svg Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,931 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="210mm" + height="297mm" + viewBox="0 0 210 297" + version="1.1" + id="svg3584" + inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)" + sodipodi:docname="alphanumeric_keypad.svg"> + <defs + id="defs3578" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="0.35" + inkscape:cx="41.428571" + inkscape:cy="537.14286" + inkscape:document-units="mm" + inkscape:current-layer="svg3584" + showgrid="false" + inkscape:window-width="3840" + inkscape:window-height="2096" + inkscape:window-x="1600" + inkscape:window-y="27" + inkscape:window-maximized="1" /> + <metadata + id="metadata3581"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + transform="matrix(0.88765941,0,0,0.83218073,-131.27574,10.1969)" + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4278" + inkscape:label="HMI:Keypad:HMI_STRING:HMI_LOCAL:PAGE_LOCAL"> + <path + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.6;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.16776976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="M 54.211084,1.2654702 H 435.7388 V 230.18209 H 54.211084 Z" + id="rect1006-3" + inkscape:connector-curvature="0" + inkscape:label="Background" + sodipodi:nodetypes="ccccc" /> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path185" + d="m 162,197 h -11 c -2,0 -3,1 -3,3 v 18 c 0,2 1,3 3,3 h 11 168 18 c 0,0 1,-1 1,-3 v -18 c 0,-2 -1,-3 -1,-3 h -18 z" + inkscape:connector-curvature="0" + inkscape:label="Space" /> + <g + id="g4380" + inkscape:label="Keys" + style="stroke-width:0.47631353" + transform="translate(0,-19.076386)"> + <g + id="g4283" + inkscape:label="q Q" + style="stroke-width:0.47631353" + transform="translate(0,-9.5381931)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path41" + d="m 95,121 h 19 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 H 95 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + inkscape:connector-curvature="0" /> + <text + x="99.378708" + y="138.28395" + id="text203" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928514)">Q</text> + </g> + <g + id="g4337" + inkscape:label="w W" + style="stroke-width:0.47631353" + transform="translate(0,-9.5381931)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path43" + d="m 124,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + inkscape:connector-curvature="0" /> + <text + x="127.0709" + y="138.28395" + id="text207" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928514)">W</text> + </g> + <g + id="g4332" + inkscape:label="e E" + style="stroke-width:0.47631353" + transform="translate(0,-9.5381931)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path45" + d="m 154,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + inkscape:connector-curvature="0" /> + <text + x="159.70854" + y="138.28395" + id="text211" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928514)">E</text> + </g> + <g + id="g4326" + inkscape:label="r R" + style="stroke-width:0.47631353" + transform="translate(0,-9.5381931)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path47" + d="m 184,121 h 19 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -19 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + inkscape:connector-curvature="0" /> + <text + x="188.39003" + y="138.28395" + id="text215" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928514)">R</text> + </g> + <g + id="g4321" + inkscape:label="t T" + style="stroke-width:0.47631353" + transform="translate(0,-9.5381931)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path49" + d="m 213,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z" + inkscape:connector-curvature="0" /> + <text + x="219.04961" + y="138.28395" + id="text219" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928514)">T</text> + </g> + <g + id="g4316" + inkscape:label="y Y" + style="stroke-width:0.47631353" + transform="translate(0,-9.5381931)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path51" + d="m 243,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z" + inkscape:connector-curvature="0" /> + <text + x="248.72017" + y="138.28395" + id="text223" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928514)">Y</text> + </g> + <g + id="g4311" + inkscape:label="u U" + style="stroke-width:0.47631353" + transform="translate(0,-9.5381931)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path53" + d="m 273,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z" + inkscape:connector-curvature="0" /> + <text + x="278.39075" + y="138.28395" + id="text227" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928514)">U</text> + </g> + <g + id="g4306" + inkscape:label="i I" + style="stroke-width:0.47631353" + transform="translate(0,-9.5381931)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path55" + d="m 302,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z" + inkscape:connector-curvature="0" /> + <text + x="311.02859" + y="138.28395" + id="text231" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928514)">I</text> + </g> + <g + id="g4301" + inkscape:label="o O" + style="stroke-width:0.47631353" + transform="translate(0,-9.5381931)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path57" + d="m 332,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z" + inkscape:connector-curvature="0" /> + <text + x="336.74319" + y="138.28395" + id="text235" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928514)">O</text> + </g> + <g + id="g4296" + inkscape:label="p P" + style="stroke-width:0.47631353" + transform="translate(0,-9.5381931)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path59" + d="m 362,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z" + inkscape:connector-curvature="0" /> + <text + x="367.40256" + y="138.28395" + id="text239" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928514)">P</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4511" + inkscape:label="a A"> + <path + inkscape:connector-curvature="0" + d="m 103,147 h 19 c 1,0 3,1 3,2 v 19 c 0,1 -2,2 -3,2 h -19 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z" + id="path65" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text243" + y="163.99854" + x="107.29005" + transform="scale(1.0007154,0.99928514)">A</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4516" + inkscape:label="s S"> + <path + inkscape:connector-curvature="0" + d="m 132,147 h 20 c 1,0 3,1 3,2 v 19 c 0,1 -2,2 -3,2 h -20 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z" + id="path67" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text247" + y="163.99854" + x="137.95012" + transform="scale(1.0007154,0.99928514)">S</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4521" + inkscape:label="d D"> + <path + inkscape:connector-curvature="0" + d="m 162,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z" + id="path69" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text251" + y="163.99854" + x="166.63159" + transform="scale(1.0007154,0.99928514)">D</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4526" + inkscape:label="f F"> + <path + inkscape:connector-curvature="0" + d="m 192,147 h 19 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -19 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z" + id="path71" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text255" + y="163.99854" + x="197.29166" + transform="scale(1.0007154,0.99928514)">F</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4531" + inkscape:label="g G"> + <path + inkscape:connector-curvature="0" + d="m 221,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z" + id="path73" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text259" + y="163.99854" + x="225.97284" + transform="scale(1.0007154,0.99928514)">G</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4536" + inkscape:label="h H"> + <path + inkscape:connector-curvature="0" + d="m 251,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z" + id="path75" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text263" + y="163.99854" + x="255.64342" + transform="scale(1.0007154,0.99928514)">H</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4541" + inkscape:label="j J"> + <path + inkscape:connector-curvature="0" + d="m 281,147 h 19 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -19 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z" + id="path77" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text267" + y="163.99854" + x="287.29208" + transform="scale(1.0007154,0.99928514)">J</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4546" + inkscape:label="k K"> + <path + inkscape:connector-curvature="0" + d="m 310,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z" + id="path79" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text271" + y="163.99854" + x="314.98465" + transform="scale(1.0007154,0.99928514)">K</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4551" + inkscape:label="l L"> + <path + inkscape:connector-curvature="0" + d="m 340,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z" + id="path81" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text275" + y="163.99854" + x="345.64444" + transform="scale(1.0007154,0.99928514)">L</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4586" + inkscape:label="z Z" + transform="translate(0,9.5381929)"> + <path + inkscape:connector-curvature="0" + d="m 113,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 z" + id="path87-3" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text279" + y="188.72411" + x="119.15855" + transform="scale(1.0007154,0.99928514)">Z</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4581" + inkscape:label="x X" + transform="translate(0,9.5381929)"> + <path + inkscape:connector-curvature="0" + d="m 143,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 z" + id="path89-6" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text283" + y="188.72411" + x="148.82933" + transform="scale(1.0007154,0.99928514)">X</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4576" + inkscape:label="c C" + transform="translate(0,9.5381929)"> + <path + inkscape:connector-curvature="0" + d="m 173,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 z" + id="path91-7" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text287" + y="188.72411" + x="178.50011" + transform="scale(1.0007154,0.99928514)">C</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4571" + inkscape:label="v V" + transform="translate(0,9.5381929)"> + <path + inkscape:connector-curvature="0" + d="m 202,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c 0,0 -1,-1 -1,-3 v -17 c 0,-1 1,-3 1,-3 z" + id="path195" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text291" + y="188.72411" + x="208.16988" + transform="scale(1.0007154,0.99928514)">V</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4566" + inkscape:label="b B" + transform="translate(0,9.5381929)"> + <path + inkscape:connector-curvature="0" + d="m 233,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z" + id="path93" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text295" + y="188.72411" + x="237.84096" + transform="scale(1.0007154,0.99928514)">B</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4561" + inkscape:label="n N" + transform="translate(0,9.5381929)"> + <path + inkscape:connector-curvature="0" + d="m 263,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z" + id="path95" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text299" + y="188.72411" + x="267.51193" + transform="scale(1.0007154,0.99928514)">N</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4556" + inkscape:label="m M" + transform="translate(0,9.5381929)"> + <path + inkscape:connector-curvature="0" + d="m 293,172 h 19 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -19 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z" + id="path97" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text303" + y="188.72411" + x="296.1933" + transform="scale(1.0007154,0.99928514)">M</text> + </g> + <g + id="g4818" + inkscape:label=". :" + style="stroke-width:0.47631353" + transform="translate(0,9.5381929)"> + <path + inkscape:connector-curvature="0" + d="m 352,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z" + id="path101" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + transform="scale(1.0007154,0.99928513)" + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826" + id="text719" + y="189.66107" + x="359.58276">.</text> + <text + x="359.58276" + y="181.64532" + id="text4834" + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928512)">:</text> + </g> + <g + id="g4813" + inkscape:label=", ;" + style="stroke-width:0.47631353" + transform="translate(0,9.5381929)"> + <path + inkscape:connector-curvature="0" + d="m 322,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z" + id="path99" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826" + id="text727" + y="181.64532" + x="330.00806" + transform="scale(1.0007154,0.99928512)">;</text> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826" + y="189.66107" + x="330.00806" + transform="scale(1.0007154,0.99928512)" + id="text4826">,</text> + </g> + <g + style="stroke-width:0.47631353" + inkscape:label="1" + id="g2845" + transform="translate(-13.353469,-45.783327)"> + <path + inkscape:connector-curvature="0" + d="m 95,121 h 19 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 H 95 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + id="path2839" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text2841" + y="138.28395" + x="101.07153" + transform="scale(1.0007154,0.99928513)">1</text> + </g> + <g + style="stroke-width:0.47631353" + inkscape:label="2" + id="g2853" + transform="translate(-13.353469,-45.783327)"> + <path + inkscape:connector-curvature="0" + d="m 124,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + id="path2847" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text2849" + y="138.28395" + x="130.18704" + transform="scale(1.0007154,0.99928513)">2</text> + </g> + <g + inkscape:label="3" + id="g2861" + style="stroke-width:0.47631353" + transform="translate(-13.353469,-45.783327)"> + <path + inkscape:connector-curvature="0" + d="m 154,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + id="path2855" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text2857" + y="138.28395" + x="159.70854" + transform="scale(1.0007154,0.99928514)">3</text> + </g> + <g + id="g2957" + inkscape:label="4" + transform="translate(0,-19.076386)"> + <path + inkscape:connector-curvature="0" + d="m 170.64653,94.293059 h 19 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -19 c -1,0 -3,-2 -3,-3 V 97.293059 c 0,-2 2,-3 3,-3 z" + id="path2865" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text2867" + y="111.55791" + x="176.39188" + transform="scale(1.0007154,0.99928514)">4</text> + </g> + <g + id="g2962" + inkscape:label="5" + transform="translate(0,-19.076386)"> + <path + inkscape:connector-curvature="0" + d="m 199.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z" + id="path2873" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text2875" + y="111.55791" + x="205.70567" + transform="scale(1.0007154,0.99928514)">5</text> + </g> + <g + id="g2967" + inkscape:label="6" + transform="translate(0,-19.076386)"> + <path + inkscape:connector-curvature="0" + d="m 229.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z" + id="path2881" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text2883" + y="111.55791" + x="236.15851" + transform="scale(1.0007154,0.99928514)">6</text> + </g> + <g + id="g2972" + inkscape:label="7" + transform="translate(0,-19.076386)"> + <path + inkscape:connector-curvature="0" + d="m 259.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z" + id="path2889" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text2891" + y="111.55791" + x="266.06564" + transform="scale(1.0007154,0.99928514)">7</text> + </g> + <g + id="g2977" + inkscape:label="8" + transform="translate(0,-19.076386)"> + <path + inkscape:connector-curvature="0" + d="m 288.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z" + id="path2897" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text2899" + y="111.55791" + x="295.08231" + transform="scale(1.0007154,0.99928514)">8</text> + </g> + <g + id="g2982" + inkscape:label="9 -" + transform="translate(0,-19.076386)"> + <path + inkscape:connector-curvature="0" + d="m 318.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z" + id="path2905" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text2907" + y="111.55791" + x="325.05408" + transform="scale(1.0007154,0.99928514)">9</text> + <text + transform="scale(1.0007154,0.99928511)" + x="335.72681" + y="102.42173" + id="text806" + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826">-</text> + </g> + <g + id="g2987" + inkscape:label="0 +" + transform="translate(0,-19.076386)"> + <path + inkscape:connector-curvature="0" + d="m 348.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z" + id="path2913" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text2915" + y="111.55791" + x="355.05984" + transform="scale(1.0007154,0.99928514)">0</text> + <text + transform="scale(1.0007154,0.99928511)" + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826" + id="text804" + y="102.42173" + x="365.30151">+</text> + </g> + </g> + <g + transform="translate(335.89988,-58.934803)" + id="g3544" + inkscape:label="Esc" + style="stroke-width:0.47631353"> + <path + style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path105" + d="m 47.948645,115.07509 h 39.076386 c 1,0 3,1 3,3 v 18 c 0,1 -2,3 -3,3 H 47.948645 c -2,0 -3,-2 -3,-3 v -18 c 0,-2 1,-3 3,-3 z" + inkscape:connector-curvature="0" + sodipodi:nodetypes="sssssssss" /> + <text + transform="scale(1.0007154,0.99928512)" + style="font-weight:normal;font-size:9.37966251px;font-family:Arial;fill:#ffffff;fill-rule:evenodd;stroke-width:0.36866826" + id="text469" + y="130.02028" + x="59.288635">Esc</text> + </g> + <g + inkscape:label="Enter" + id="g4291" + style="stroke-width:0.47631353" + transform="translate(0,-19.076386)"> + <path + sodipodi:nodetypes="sssssssss" + style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path3616" + d="m 368.68274,170 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 54.24217 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z" + inkscape:connector-curvature="0" /> + <path + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="m -260.23633,1080.8125 v 15.7949 h -38.68555 v -3 l -6.91992,4 6.91992,4 v -3.0019 h 40.6836 v -17.793 z" + transform="matrix(0.47690966,0,0,0.47690966,531.12074,-361.18588)" + id="path6545" + inkscape:connector-curvature="0" /> + </g> + <g + inkscape:label="BackSpace" + id="g4287" + style="fill-rule:evenodd;stroke-width:0.47631353" + transform="translate(2.3648311e-6,-28.614579)"> + <path + sodipodi:nodetypes="sssssssss" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path3624" + d="m 391.97749,144 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 30.94742 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z" + inkscape:connector-curvature="0" /> + <path + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#2b2828;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="m -268.72656,1011.1777 -6.91992,4 6.91992,4 v -3.0019 h 29.18945 v -1.9981 h -29.18945 z" + transform="matrix(0.47690966,0,0,0.47690966,531.12074,-351.64769)" + id="path11623-1-0" + inkscape:connector-curvature="0" /> + </g> + <g + id="g934" + inkscape:label="CapsLock"> + <g + inkscape:label="inactive" + id="g942" + style="display:inline;fill-rule:evenodd;stroke-width:0.47631353" + transform="translate(0,-19.076386)"> + <path + sodipodi:nodetypes="sssssssss" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path936" + d="m 67.025031,170 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 H 92 c 2,0 4,1 4,2 v 19 c 0,1 -2,2 -4,2 z" + inkscape:connector-curvature="0" /> + <text + x="69.789322" + y="156.71973" + id="text938-5" + style="font-weight:normal;font-size:8.66233635px;font-family:Arial;fill:#2b2828;stroke-width:0.36866823" + transform="scale(1.0007154,0.99928515)">Caps</text> + <text + x="69.789322" + y="166.5585" + id="text940" + style="font-weight:normal;font-size:8.66233635px;font-family:Arial;fill:#2b2828;stroke-width:0.36866823" + transform="scale(1.0007154,0.99928515)">Lock</text> + </g> + <g + transform="translate(0,-19.076386)" + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4429" + inkscape:label="active"> + <path + inkscape:connector-curvature="0" + d="m 67.025031,170 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 H 92 c 2,0 4,1 4,2 v 19 c 0,1 -2,2 -4,2 z" + id="path199" + style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + sodipodi:nodetypes="sssssssss" /> + <text + transform="scale(1.0007154,0.99928515)" + style="font-weight:normal;font-size:8.66233635px;font-family:Arial;fill:#ffffff;stroke-width:0.36866823" + id="text647" + y="156.71973" + x="69.789322">Caps</text> + <text + transform="scale(1.0007154,0.99928515)" + style="font-weight:normal;font-size:8.66233635px;font-family:Arial;fill:#ffffff;stroke-width:0.36866823" + id="text651" + y="166.5585" + x="69.789322">Lock</text> + </g> + </g> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#fffff5;fill-opacity:1;fill-rule:nonzero;stroke:#202326;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect2130" + width="361.89996" + height="30.150299" + x="64.024956" + y="15.771065" + rx="3.8152773" + ry="3.8152773" + inkscape:label="Field" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.0763855px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.47690967px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="72.50132" + y="38.296417" + id="text1309" + inkscape:label="Value"><tspan + sodipodi:role="line" + id="tspan1307" + x="72.50132" + y="38.296417" + style="text-align:start;text-anchor:start;stroke-width:0.47690967px">text</tspan></text> + <g + id="g437" + inkscape:label="Shift"> + <g + id="g421" + inkscape:label="inactive"> + <path + inkscape:connector-curvature="0" + d="m 379.96247,185.46181 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 42.96244 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z" + id="path910" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + sodipodi:nodetypes="sssssssss" /> + <text + style="font-weight:normal;font-size:8.92098808px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text912" + y="177.90059" + x="392.55679" + transform="scale(1.0007154,0.99928513)">Shift</text> + <path + sodipodi:nodetypes="sssssssss" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path856" + d="m 67.025031,185.46181 c -1,0 -3,-1 -3,-3 v -17 c 0,-1 2,-3 3,-3 H 104 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 z" + inkscape:connector-curvature="0" /> + <text + x="75.85218" + y="177.90059" + id="text858" + style="font-weight:normal;font-size:8.92098808px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928513)">Shift</text> + </g> + <g + id="g413" + inkscape:label="active"> + <path + sodipodi:nodetypes="sssssssss" + style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path551" + d="m 379.96247,185.46181 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 42.96244 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z" + inkscape:connector-curvature="0" /> + <text + transform="scale(1.0007154,0.99928513)" + x="392.55679" + y="177.90059" + id="text629" + style="font-weight:normal;font-size:8.92098808px;font-family:Arial;fill:#ffffff;stroke-width:0.36866826">Shift</text> + <path + inkscape:connector-curvature="0" + d="m 67.025031,185.46181 c -1,0 -3,-1 -3,-3 v -17 c 0,-1 2,-3 3,-3 H 104 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 z" + id="path879" + style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + sodipodi:nodetypes="sssssssss" /> + <text + transform="scale(1.0007154,0.99928513)" + style="font-weight:normal;font-size:8.92098808px;font-family:Arial;fill:#ffffff;fill-rule:evenodd;stroke-width:0.36866826" + id="text881" + y="177.90059" + x="75.85218">Shift</text> + </g> + </g> + <text + transform="scale(0.96824588,1.0327955)" + id="text471" + y="12.333657" + x="252.9579" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.31375408px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.30784383px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + inkscape:label="Info"><tspan + style="stroke-width:0.30784383px" + y="12.333657" + x="252.9579" + id="tspan469" + sodipodi:role="line">information</tspan></text> + </g> +</svg> diff -r 2b00f90c6888 -r d5b2369a103f svghmi/widgetlib/keypads/numeric_keypad.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/widgetlib/keypads/numeric_keypad.svg Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,348 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="210mm" + height="297mm" + viewBox="0 0 210 297" + version="1.1" + id="svg3084" + inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)" + sodipodi:docname="numeric_keypad.svg"> + <defs + id="defs3078" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="0.0875" + inkscape:cx="-2124.7129" + inkscape:cy="1244.0354" + inkscape:document-units="mm" + inkscape:current-layer="svg3084" + showgrid="false" + inkscape:window-width="1414" + inkscape:window-height="414" + inkscape:window-x="1735" + inkscape:window-y="162" + inkscape:window-maximized="0" /> + <metadata + id="metadata3081"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="HMI:Keypad:HMI_INT:HMI_REAL" + id="g2432" + style="fill-rule:evenodd;stroke-width:0.47631353" + transform="matrix(0.88765941,0,0,0.83218073,-193.26385,-7.9459567)"> + <path + sodipodi:nodetypes="ccccc" + inkscape:label="Background" + inkscape:connector-curvature="0" + id="path2136" + d="M 54.211099,1.2654702 H 435.73881 V 230.18209 H 54.211099 Z" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.6;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.16776976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <rect + ry="3.8152773" + rx="3.8152773" + y="15.77106" + x="64.024963" + height="30.150299" + width="361.89996" + id="rect2426" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#fffff5;fill-opacity:1;fill-rule:nonzero;stroke:#202326;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + inkscape:label="Field" /> + <text + id="text2430" + y="37.408375" + x="72.50132" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.0763855px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.47690967px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + inkscape:label="Value"><tspan + style="text-align:start;text-anchor:start;stroke-width:0.47690967px" + y="37.408375" + x="72.50132" + id="tspan2428" + sodipodi:role="line">number</tspan></text> + <g + style="fill-rule:evenodd;stroke-width:0.13585199" + inkscape:label="Enter" + id="g4947" + transform="matrix(1.6700128,0,0,1.6700128,-826.83854,-145.60855)"> + <path + style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.10074362;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path193" + d="m 750,175 c 0,-2 -1,-3 -3,-3 h -20 c -1,0 -3,1 -3,3 v 43 c 0,1 2,2 3,2 h 20 c 2,0 3,-1 3,-2 z" + inkscape:connector-curvature="0" /> + <path + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="m -1244.2949,1166.5938 v 15.791 h -38.6875 v -2.9981 l -6.9199,4 6.9199,4 v -2.998 h 40.6836 v -17.7949 z" + transform="matrix(0.28557246,0,0,0.28557246,1098.7155,-140.51013)" + id="path6545-4" + inkscape:connector-curvature="0" /> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.13585199" + inkscape:label="Keys" + id="g4993" + transform="matrix(1.6700128,0,0,1.6700128,-826.83854,-145.60855)"> + <g + style="stroke-width:0.13585199" + inkscape:label="7" + id="g4892"> + <path + inkscape:connector-curvature="0" + d="m 638,120 h 20 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z" + id="path163" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text331" + y="129.38269" + x="636.4165" + transform="scale(1.0007154,0.99928514)">7</text> + </g> + <g + style="stroke-width:0.13585199" + inkscape:label="4" + id="g4907"> + <path + inkscape:connector-curvature="0" + d="m 638,146 h 20 c 2,0 3,1 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + id="path169" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text335" + y="154.10822" + x="636.4165" + transform="scale(1.0007154,0.99928514)">4</text> + </g> + <g + style="stroke-width:0.13585199" + inkscape:label="1" + id="g4922"> + <path + inkscape:connector-curvature="0" + d="m 638,172 h 20 c 2,0 3,1 3,3 v 17 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -17 c 0,-2 2,-3 3,-3 z" + id="path175" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text339" + y="179.82285" + x="636.4165" + transform="scale(1.0007154,0.99928514)">1</text> + </g> + <g + style="stroke-width:0.13585199" + inkscape:label="8" + id="g4897"> + <path + inkscape:connector-curvature="0" + d="m 668,120 h 19 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -19 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z" + id="path165" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text347" + y="129.38269" + x="667.07562" + transform="scale(1.0007154,0.99928514)">8</text> + </g> + <g + style="stroke-width:0.13585199" + inkscape:label="5" + id="g4912"> + <path + inkscape:connector-curvature="0" + d="m 668,146 h 19 c 2,0 3,1 3,3 v 18 c 0,2 -1,3 -3,3 h -19 c -1,0 -3,-1 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + id="path171" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text351" + y="154.10822" + x="667.07562" + transform="scale(1.0007154,0.99928514)">5</text> + </g> + <g + style="stroke-width:0.13585199" + inkscape:label="2" + id="g4927"> + <path + inkscape:connector-curvature="0" + d="m 668,172 h 19 c 2,0 3,1 3,3 v 17 c 0,1 -1,3 -3,3 h -19 c -1,0 -3,-2 -3,-3 v -17 c 0,-2 2,-3 3,-3 z" + id="path177" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text355" + y="179.82285" + x="667.07562" + transform="scale(1.0007154,0.99928514)">2</text> + </g> + <g + style="stroke-width:0.13585199" + inkscape:label="9" + id="g4902"> + <path + inkscape:connector-curvature="0" + d="m 697,120 h 20 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z" + id="path167" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text363" + y="129.38269" + x="695.75708" + transform="scale(1.0007154,0.99928514)">9</text> + </g> + <g + style="stroke-width:0.13585199" + inkscape:label="6" + id="g4917"> + <path + inkscape:connector-curvature="0" + d="m 697,146 h 20 c 2,0 3,1 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + id="path173" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text367" + y="154.10822" + x="695.75708" + transform="scale(1.0007154,0.99928514)">6</text> + </g> + <g + style="stroke-width:0.13585199" + inkscape:label="3" + id="g4932"> + <path + inkscape:connector-curvature="0" + d="m 697,172 h 20 c 2,0 3,1 3,3 v 17 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -17 c 0,-2 2,-3 3,-3 z" + id="path179" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text371" + y="179.82285" + x="695.75708" + transform="scale(1.0007154,0.99928514)">3</text> + </g> + <g + style="stroke-width:0.13585199" + inkscape:label="0" + id="g4937"> + <path + inkscape:connector-curvature="0" + d="m 638,220 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 h 49 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 z" + id="path373" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text377" + y="205.53712" + x="636.4165" + transform="scale(1.0007154,0.99928514)">0</text> + </g> + </g> + <g + id="g3113" + inkscape:label="Esc" + transform="translate(-318.22576)"> + <path + style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path167-3" + d="m 387.26079,54.792986 h 33.40019 c 3.34,0 5.01006,3.34003 5.01006,5.010045 v 30.060225 c 0,3.340029 -1.67006,5.010032 -5.01006,5.010032 h -33.40019 c -1.67006,0 -5.01007,-1.670003 -5.01007,-5.010032 V 59.803031 c 0,-1.670015 3.34001,-5.010045 5.01007,-5.010045 z" + inkscape:connector-curvature="0" /> + <text + x="394.42801" + y="78.632088" + id="text469-4" + style="font-weight:normal;font-size:10.63882256px;font-family:Arial;fill:#ffffff;fill-rule:evenodd;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928511)">Esc</text> + </g> + <g + id="g3109" + inkscape:label="BackSpace" + transform="translate(0,-43.420332)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path173-1" + d="m 387.26079,98.213318 h 33.40019 c 3.34,0 5.01006,1.670013 5.01006,5.010032 v 30.06024 c 0,3.34002 -1.67006,5.01003 -5.01006,5.01003 h -33.40019 c -1.67006,0 -5.01007,-1.67001 -5.01007,-5.01003 v -30.06024 c 0,-3.340019 3.34001,-5.010032 5.01007,-5.010032 z" + inkscape:connector-curvature="0" /> + <path + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#2b2828;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="m -1278.9668,1041.3047 -6.9199,4 6.9199,4 v -3 h 33.416 v -1.9981 h -33.416 z" + transform="matrix(0.47690966,0,0,0.47690966,1008.0304,-380.26227)" + id="path11623-1-0-2" + inkscape:connector-curvature="0" /> + </g> + <g + id="g787" + inkscape:label="Sign" + style="fill-rule:evenodd;stroke-width:0.13585199" + transform="matrix(1.6700128,0,0,1.6700128,-678.20742,-102.18822)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path781" + d="m 638,120 h 20 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z" + inkscape:connector-curvature="0" /> + <text + x="642.1239" + y="135.09822" + id="text783" + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + transform="scale(1.0007154,0.99928514)">+/-</text> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.31375408px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.30784383px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="252.9579" + y="12.333653" + id="text509" + transform="scale(0.96824589,1.0327955)" + inkscape:label="Info"><tspan + sodipodi:role="line" + id="tspan507" + x="252.9579" + y="12.333653" + style="stroke-width:0.30784383px">information</tspan></text> + <g + transform="matrix(1.6700128,0,0,1.6700128,-826.83854,-145.60856)" + style="fill-rule:evenodd;stroke-width:0.13585199" + id="g4942" + inkscape:label="NumDot"> + <path + inkscape:connector-curvature="0" + d="m 697,197 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z" + id="path181" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:6.96602964px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text771" + y="204.54802" + x="696.7464" + transform="scale(1.0007154,0.99928514)">.</text> + </g> + </g> +</svg> diff -r 2b00f90c6888 -r d5b2369a103f svghmi/widgetlib/meter_template.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/widgetlib/meter_template.svg Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,182 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="210mm" + height="297mm" + viewBox="0 0 210 297" + version="1.1" + id="svg2092" + inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)" + sodipodi:docname="meter_template.svg"> + <defs + id="defs2086"> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker19820" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Mend" + inkscape:collect="always"> + <path + inkscape:connector-curvature="0" + transform="matrix(-0.4,0,0,-0.4,-4,0)" + style="fill:#3ee800;fill-opacity:1;fill-rule:evenodd;stroke:#3ee800;stroke-width:1.00000003pt;stroke-opacity:1" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + id="path19818" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="marker25117" + style="overflow:visible" + inkscape:isstock="true" + inkscape:collect="always"> + <path + inkscape:connector-curvature="0" + id="path25115" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill:#3ee800;fill-opacity:1;fill-rule:evenodd;stroke:#3ee800;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(-0.4,0,0,-0.4,-4,0)" /> + </marker> + <marker + inkscape:stockid="DotM" + orient="auto" + refY="0" + refX="0" + id="DotM" + style="overflow:visible" + inkscape:isstock="true" + inkscape:collect="always"> + <path + inkscape:connector-curvature="0" + id="path8269" + d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z" + style="fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:#ff6600;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(0.4,0,0,0.4,2.96,0.4)" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="marker26099" + style="overflow:visible" + inkscape:isstock="true" + inkscape:collect="always"> + <path + inkscape:connector-curvature="0" + id="path26097" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:#ff6600;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(-0.4,0,0,-0.4,-4,0)" /> + </marker> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="0.49497475" + inkscape:cx="494.41281" + inkscape:cy="773.97224" + inkscape:document-units="mm" + inkscape:current-layer="svg2092" + showgrid="false" + inkscape:window-width="1414" + inkscape:window-height="801" + inkscape:window-x="186" + inkscape:window-y="62" + inkscape:window-maximized="0" /> + <metadata + id="metadata2089"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + id="g7998" + transform="matrix(0.57180538,0,0,0.57180538,22.524027,122.59857)" + inkscape:label="HMI:Meter@/PUMP0/SLOTH"> + <desc + id="desc3869">A sophisticated meter looking like real + +@position : HMI_INT, HMI_REAL # the position as int or real +</desc> + <path + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#3ee800;stroke-width:1.38814712;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:url(#marker19820);marker-end:url(#marker25117);color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path7978" + sodipodi:type="arc" + sodipodi:cx="128.02208" + sodipodi:cy="2.2017097" + sodipodi:rx="64.411957" + sodipodi:ry="64.411957" + sodipodi:start="3.1415927" + sodipodi:end="4.712389" + d="M 63.610123,2.2017068 A 64.411957,64.411957 0 0 1 128.02208,-62.210247" + sodipodi:open="true" + inkscape:label="range" /> + <path + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ff6600;stroke-width:0.92543143;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:29.63333321;stroke-opacity:1;marker-start:url(#DotM);marker-end:url(#marker26099)" + d="M 130.96206,4.0725977 79.111776,-41.363223" + id="path7980" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" + inkscape:label="needle" /> + <text + inkscape:label="min" + id="text7984" + y="4.9187088" + x="49.132977" + style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="text-align:end;text-anchor:end;fill:#ff6600;stroke-width:0.26458332px" + y="4.9187088" + x="49.132977" + id="tspan7982" + sodipodi:role="line">0</tspan></text> + <text + inkscape:label="max" + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="127.48073" + y="-68.889908" + id="text7988"><tspan + sodipodi:role="line" + id="tspan7986" + x="127.48073" + y="-68.889908" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px">10000</tspan></text> + <text + inkscape:label="value" + id="text7992" + y="-52.465355" + x="67.258514" + style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + id="tspan7990" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px" + y="-52.465355" + x="67.258514" + sodipodi:role="line">[value]</tspan></text> + </g> +</svg> diff -r 2b00f90c6888 -r d5b2369a103f svghmi/widgetlib/modern_knob_1.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/widgetlib/modern_knob_1.svg Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,267 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="210mm" + height="297mm" + viewBox="0 0 210 297" + version="1.1" + id="svg2637" + inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)" + sodipodi:docname="modern_knob_1.svg"> + <defs + id="defs2631"> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4292" + id="linearGradient10071" + gradientUnits="userSpaceOnUse" + x1="504.87" + y1="526.63" + x2="505.57999" + y2="603.70001" + gradientTransform="matrix(3.5063468,0,0,3.5063468,198.4947,-3883.2624)" /> + <linearGradient + id="linearGradient4292"> + <stop + id="stop4294" + style="stop-color:#666666" + offset="0" /> + <stop + id="stop4296" + style="stop-color:#c3c3c5" + offset="1" /> + </linearGradient> + <linearGradient + id="linearGradient4378" + y2="585.34003" + xlink:href="#linearGradient3919" + gradientUnits="userSpaceOnUse" + x2="493.29999" + y1="596.53003" + x1="486.85001" + inkscape:collect="always" + gradientTransform="matrix(3.5063468,0,0,3.5063468,198.4947,-3883.2624)" /> + <linearGradient + id="linearGradient3919" + inkscape:collect="always"> + <stop + id="stop3921" + style="stop-color:#ffffff" + offset="0" /> + <stop + id="stop3923" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /> + </linearGradient> + <radialGradient + id="radialGradient4372" + xlink:href="#linearGradient3862" + gradientUnits="userSpaceOnUse" + cy="271.12" + cx="488.75" + gradientTransform="matrix(-1.1814,2.021e-7,-1.7895e-7,-0.97615,1072.1,866.87)" + r="57.629002" + inkscape:collect="always" /> + <linearGradient + id="linearGradient3862"> + <stop + id="stop3864" + style="stop-color:#414141" + offset="0" /> + <stop + id="stop3868" + style="stop-color:#41433f" + offset=".15789" /> + <stop + id="stop3866" + style="stop-color:#000000" + offset="1" /> + </linearGradient> + <linearGradient + id="linearGradient4374" + y2="274.60001" + xlink:href="#linearGradient3994" + gradientUnits="userSpaceOnUse" + x2="461.51001" + gradientTransform="matrix(-0.93252,0,0,-0.93252,950.38,864.32)" + y1="378.48001" + x1="460.51001" + inkscape:collect="always" /> + <linearGradient + id="linearGradient3994"> + <stop + id="stop3996" + style="stop-color:#626262" + offset="0" /> + <stop + id="stop4000" + style="stop-color:#919191" + offset=".74085" /> + <stop + id="stop3998" + style="stop-color:#ceced2" + offset="1" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#radialGradient4436" + id="linearGradient31386" + x1="1094.1289" + y1="489.64468" + x2="1008.9722" + y2="209.67311" + gradientUnits="userSpaceOnUse" /> + <radialGradient + id="radialGradient4436" + gradientUnits="userSpaceOnUse" + cy="336.42001" + cx="491.09" + gradientTransform="matrix(1.1429,0,0,1.1429,-73.994,-53.898)" + r="42.073002" + inkscape:collect="always"> + <stop + id="stop3894" + style="stop-color:#ddcf1b" + offset="0" /> + <stop + id="stop3898" + style="stop-color:#ccd21b" + offset=".5" /> + <stop + id="stop3896" + style="stop-color:#2bb733" + offset="1" /> + </radialGradient> + <linearGradient + id="linearGradient4376" + y2="603.70001" + xlink:href="#linearGradient4292" + gradientUnits="userSpaceOnUse" + x2="505.57999" + y1="526.63" + x1="504.87" + inkscape:collect="always" + gradientTransform="matrix(2.1333334,0,0,2.1333334,893.33419,706.77548)" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="0.35" + inkscape:cx="41.428571" + inkscape:cy="555.71429" + inkscape:document-units="mm" + inkscape:current-layer="svg2637" + showgrid="false" + inkscape:window-width="1414" + inkscape:window-height="840" + inkscape:window-x="1690" + inkscape:window-y="117" + inkscape:window-maximized="0" /> + <metadata + id="metadata2634"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + transform="matrix(0.26458333,0,0,0.26458333,-468.86815,-460.25864)" + id="g3058"> + <g + id="g31471"> + <circle + id="path4349" + style="fill:url(#linearGradient10071);stroke:url(#linearGradient4378);stroke-width:2.13336658" + transform="scale(1,-1)" + cx="1974.9573" + cy="-1907.7942" + r="125.20776" /> + <path + transform="matrix(2.1333334,0,0,2.1333334,917.47072,723.36897)" + id="path4276" + style="fill:url(#radialGradient4372);stroke:url(#linearGradient4374);stroke-width:0.93251997" + sodipodi:type="inkscape:offset" + d="m 495.71875,499.5625 c -30.71038,0 -55.625,24.94721 -55.625,55.65625 0,30.70904 24.91462,55.65625 55.625,55.65625 30.71038,0 55.65625,-24.94587 55.65625,-55.65625 0,-30.71038 -24.94587,-55.65625 -55.65625,-55.65625 z m 0.5957,6.625 c 26.16416,-0.0377 49.91573,24.21255 48.50196,50.61719 a 1.906235,1.906235 0 0 0 -0.002,0.0312 c -0.96267,26.09835 -23.97335,48.63457 -50.44531,47.41601 a 1.906235,1.906235 0 0 0 -0.0703,-0.002 c -27.12401,-0.25004 -50.9578,-26.70889 -47.31641,-53.83984 a 1.906235,1.906235 0 0 0 0.008,-0.0703 c 2.26482,-23.38029 22.99305,-43.56741 46.70508,-44.05859 a 1.906235,1.906235 0 0 0 0.0781,-0.004 c 0.86395,-0.0528 1.71288,-0.0887 2.54101,-0.0898 z" + inkscape:original="M 495.71875 501.46875 C 466.0389 501.46875 442 525.5389 442 555.21875 C 442 584.8986 466.0389 608.96875 495.71875 608.96875 C 525.3986 608.96875 549.46875 584.8986 549.46875 555.21875 C 549.46875 525.5389 525.3986 501.46875 495.71875 501.46875 z M 496.3125 504.28125 C 523.64396 504.24185 548.1961 529.3142 546.71875 556.90625 C 545.71652 584.07711 521.8754 607.42646 494.28125 606.15625 C 465.94032 605.89499 441.28655 578.52263 445.09375 550.15625 C 447.45524 525.77795 468.89562 504.8879 493.65625 504.375 C 494.5429 504.3208 495.43084 504.28245 496.3125 504.28125 z " + inkscape:radius="1.9060444" /> + </g> + <g + style="fill:none;stroke-width:1.47405899" + transform="matrix(0.53304115,0,0,0.53229017,1417.5153,1776.3135)" + inkscape:label="HMI:CircularBar@/CIRCULARBAR" + id="g30664"> + <text + inkscape:label="value" + id="text30652" + y="272.72952" + x="1045.2592" + style="font-style:normal;font-weight:normal;font-size:70.65699005px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;opacity:1;fill-opacity:1;stroke:none;stroke-width:2.60381603px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="text-align:center;text-anchor:middle;fill-opacity:1;stroke:none;stroke-width:2.60381603px;stroke-opacity:1" + y="272.72952" + x="1045.2592" + id="tspan30650" + sodipodi:role="line">65%</tspan></text> + <path + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:url(#linearGradient31386);stroke-width:11.26410389;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:120.22967529;stroke-opacity:1;marker:none" + id="path30654" + inkscape:label="path" + sodipodi:type="arc" + sodipodi:cx="1045.7766" + sodipodi:cy="247.00946" + sodipodi:rx="209.17709" + sodipodi:ry="209.47221" + sodipodi:start="2.268928" + sodipodi:end="0.87266463" + d="M 911.32017,407.47449 A 209.17709,209.47221 0 0 1 849.21444,175.36575 209.17709,209.47221 0 0 1 1045.7766,37.537247 209.17709,209.47221 0 0 1 1242.3388,175.36574 209.17709,209.47221 0 0 1 1180.2331,407.47449" + sodipodi:open="true" /> + </g> + <g + id="g31467" + inkscape:label="g31467" + style="display:inline"> + <circle + id="path4282" + style="fill:url(#linearGradient4376);stroke-width:2.13333344" + cx="1974.1705" + cy="1908.6909" + r="76.17897" /> + <use + transform="matrix(0.53304115,0,0,0.53229017,1419.5153,1778.3135)" + style="opacity:1;vector-effect:none;fill:#cccccc;fill-opacity:1;stroke:none;stroke-width:4.00493336;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + x="0" + y="0" + xlink:href="#text30652" + id="use31590" + width="100%" + height="100%" /> + <use + transform="matrix(0.53304115,0,0,0.53229017,1417.5153,1776.3135)" + style="opacity:1;vector-effect:none;fill:#333333;fill-opacity:1;stroke:none;stroke-width:4.0050149;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + x="0" + y="0" + xlink:href="#text30652" + id="use31592" + width="100%" + height="100%" /> + </g> + </g> +</svg> diff -r 2b00f90c6888 -r d5b2369a103f svghmi/widgetlib/voltmeter.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/widgetlib/voltmeter.svg Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,791 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="210mm" + height="297mm" + viewBox="0 0 210 297" + version="1.1" + id="svg2354" + inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)" + sodipodi:docname="voltmeter.svg"> + <defs + id="defs2348"> + <filter + id="filter5708" + inkscape:collect="always" + style="color-interpolation-filters:sRGB"> + <feGaussianBlur + id="feGaussianBlur5710" + stdDeviation="28.132071" + inkscape:collect="always" /> + </filter> + <marker + inkscape:stockid="SquareL" + orient="auto" + refY="0" + refX="0" + id="marker20566-2" + style="overflow:visible" + inkscape:isstock="true" + inkscape:collect="always"> + <path + inkscape:connector-curvature="0" + id="path20564-8" + d="M -5,-5 V 5 H 5 V -5 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker23223" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Mend" + inkscape:collect="always"> + <path + inkscape:connector-curvature="0" + transform="matrix(-0.4,0,0,-0.4,-4,0)" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + id="path23221" /> + </marker> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5712" + id="linearGradient10503" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-266.78,858.86)" + x1="-914.59003" + y1="-906.90997" + x2="298.10999" + y2="276.98999" /> + <linearGradient + id="linearGradient5712"> + <stop + id="stop5714" + style="stop-color:#cccccc" + offset="0" /> + <stop + id="stop5716" + style="stop-color:#ffffff;stop-opacity:0" + offset=".12299" /> + <stop + id="stop5718" + style="stop-color:#999999;stop-opacity:.63813" + offset="1" /> + </linearGradient> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="0.35" + inkscape:cx="-64.606209" + inkscape:cy="537.51037" + inkscape:document-units="mm" + inkscape:current-layer="svg2354" + showgrid="false" + inkscape:window-width="1452" + inkscape:window-height="940" + inkscape:window-x="1645" + inkscape:window-y="72" + inkscape:window-maximized="0" /> + <metadata + id="metadata2351"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + transform="matrix(0.03023415,0,0,0.03023415,158.84668,129.93084)" + id="g29149"> + <rect + x="-1430.8" + y="-352.34" + width="2055.1001" + height="2055.1001" + ry="129.3" + rx="129.3" + style="fill:#000000" + id="rect3007" /> + <rect + x="-1384.5" + y="-305.98001" + width="1962.4" + height="1962.4" + ry="90.727997" + rx="90.727997" + style="fill:#333333" + id="rect3777" /> + <rect + x="-1358.2" + y="-279.72" + width="1909.9" + height="1909.9" + ry="70.525002" + rx="70.525002" + style="fill:#000000" + id="rect3779" /> + <rect + x="375.37" + y="802.65002" + width="97.857002" + height="45" + ry="22.5" + rx="22.5" + style="fill:#333333" + id="rect3788" /> + <path + inkscape:connector-curvature="0" + style="fill:#333333" + sodipodi:nodetypes="sssssssssss" + d="m -1106.1,-149.32 c -67.467,0 -121.78,54.312 -121.78,121.78 v 1405.5 c 0,67.467 54.312,121.78 121.78,121.78 h 680.32 c 29.662,0 47.115,-4.0297 64.849,-21.729 l 755.83,-754.34 c 23.851,-23.803 26.352,-40.896 26.352,-72.473 v -678.83 c 0,-67.467 -54.312,-121.78 -121.78,-121.78 z" + id="path3796" /> + <path + d="M -208.21,1279.8 230.36,851.23 h -444.29 z" + inkscape:connector-curvature="0" + style="fill:#000000" + id="path5147" /> + <path + d="m -41.063,1048.4 -48.571,-54.286 33.571,-33.571 54.286,54.286" + inkscape:connector-curvature="0" + style="fill:#e6e6e6" + id="path4263" /> + <path + d="m -131.78,1205.5 -37.143,-36.429 11.429,-12.857 30.714,6.4286 54.286,-54.286 c -6.7698,-14.828 -2.7537,-22.791 11.428,-24.286 -18.934,-68.674 49.856,-114.43 102.86,-90 l 60.714,-60 -12.143,-30 11.429,-10 41.428,35" + inkscape:connector-curvature="0" + style="fill:#cccccc" + sodipodi:nodetypes="ccccccccccc" + id="path4265" /> + <path + d="m -1090.6,-131.14 c -65.98,0 -119.09,53.114 -119.09,119.09 v 1374.5 c 0,65.98 53.114,119.09 119.09,119.09 h 665.31 c 29.008,0 39.174,-3.9241 56.5,-21.25 l 746.08,-745.9 c 23.302,-23.302 25.781,-31.589 25.781,-62.469 v -663.88 c 0,-65.98 -53.114,-119.09 -119.09,-119.09 h -1374.5 z M 6.1,869.06 h 189.31 l -387.34,382.16 v -178.94 c 0,-107.21 90.807,-203.22 198.03,-203.22 z" + inkscape:connector-curvature="0" + style="fill:#e1e1d1" + id="rect3781" /> + <path + inkscape:connector-curvature="0" + transform="matrix(1.037,0,0,1.037,-262.68,-1806.5)" + style="opacity:0.85773998;fill:#000000;filter:url(#filter5708)" + d="m -823.78,1579.8 c -65.979,0 -119.09,53.114 -119.09,119.09 v 1374.5 c 0,51.168 31.947,94.61 77.062,111.53 -1.8213,-8.3056 -2.7812,-16.944 -2.7812,-25.813 v -1374.5 c 0,-65.979 53.114,-119.09 119.09,-119.09 h 1374.5 c 14.812,0 28.972,2.6957 42.031,7.5938 -11.729,-53.488 -59.201,-93.312 -116.31,-93.312 h -1374.5 z" + id="path5854" /> + <path + d="m -897.19,202.71 -1.1875,-5.5312 -30.281,-141.12 h 13.687 l 27.813,126.53 33.875,-126.53 h 13.531 l -36.906,141.47 -1.4063,5.1875 h -5.375 -8.0625 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + sodipodi:nodetypes="cccccccccccc" + id="path4143" /> + <path + inkscape:connector-curvature="0" + inkscape:transform-center-y="1.2277805" + inkscape:transform-center-x="1026.1266" + d="m -1081.2,1066.7 a 3.5004,3.5004 0 0 0 1.0743,6.8659 l 119.98,-0.1356 a 3.5004,3.5004 0 1 0 -0.016,-6.9996 l -119.98,0.1356 a 3.5004,3.5004 0 0 0 -1.0582,0.1337 z" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path3927" /> + <path + sodipodi:nodetypes="csccsccccssccscccs" + inkscape:connector-curvature="0" + inkscape:transform-center-y="-84.5624" + inkscape:transform-center-x="999.99804" + d="m -1076.7,973.88 c -1.7172,0.1873 -3.152,1.8167 -3.1203,3.5439 0.032,1.7271 1.5251,3.3029 3.248,3.4271 l 127.18,10.755 c 1.8326,0.1672 3.6502,-1.3563 3.8058,-3.1899 0.1556,-1.8336 -1.3794,-3.6416 -3.2139,-3.7856 l -127.18,-10.755 c -0.2391,-0.023 -0.4806,-0.022 -0.7194,0 z m 160,13.54 c -1.7213,-0.1455 -3.152,1.8167 -3.1203,3.5439 0.032,1.7271 1.5251,3.3029 3.248,3.4271 l 4.4928,0.3709 c 1.8325,0.1671 3.6502,-1.3564 3.8057,-3.1899 0.1556,-1.8336 -1.3794,-3.6416 -3.2139,-3.7856 l -4.4927,-0.3709 c -0.2391,-0.023 -0.4806,-0.022 -0.7194,0 z" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path3959" /> + <path + d="m -516.79,412.2 c -15.018,0 -27.219,12.201 -27.219,27.219 v 40.406 c 0,15.018 12.201,27.25 27.219,27.25 15.018,0 27.25,-12.232 27.25,-27.25 v -40.406 c 0,-15.018 -12.232,-27.219 -27.25,-27.219 z m 0,8 c 10.725,0 19.25,8.4942 19.25,19.219 v 40.406 c 0,10.725 -8.5254,19.25 -19.25,19.25 -10.724,0 -19.219,-8.5254 -19.219,-19.25 v -40.406 c 0,-10.725 8.4942,-19.219 19.219,-19.219 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="rect4112" /> + <path + d="m -444.57,412.2 c -15.018,0 -27.219,12.201 -27.219,27.219 v 40.406 c 0,15.018 12.201,27.25 27.219,27.25 15.018,0 27.25,-12.232 27.25,-27.25 v -40.406 c 0,-15.018 -12.232,-27.219 -27.25,-27.219 z m 0,8 c 10.724,0 19.25,8.4942 19.25,19.219 v 40.406 c 0,10.725 -8.5255,19.25 -19.25,19.25 -10.725,0 -19.219,-8.5254 -19.219,-19.25 v -40.406 c 0,-10.725 8.4942,-19.219 19.219,-19.219 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="rect4114" /> + <path + d="m -689.77,649.6 c -15.018,0 -27.25,12.201 -27.25,27.219 v 40.406 c 0,15.018 12.232,27.25 27.25,27.25 15.018,0 27.219,-12.232 27.219,-27.25 v -40.406 c 0,-15.018 -12.201,-27.219 -27.219,-27.219 z m 0,8 c 10.725,0 19.219,8.4942 19.219,19.219 v 40.406 c 0,10.725 -8.4942,19.25 -19.219,19.25 -10.724,0 -19.25,-8.5254 -19.25,-19.25 v -40.406 c 0,-10.725 8.5255,-19.219 19.25,-19.219 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="rect4116" /> + <path + d="m -617.55,649.6 c -15.018,0 -27.25,12.201 -27.25,27.219 v 40.406 c 0,15.018 12.232,27.25 27.25,27.25 15.018,0 27.219,-12.232 27.219,-27.25 v -40.406 c 0,-15.018 -12.201,-27.219 -27.219,-27.219 z m 0,8 c 10.724,0 19.219,8.4942 19.219,19.219 v 40.406 c 0,10.725 -8.4942,19.25 -19.219,19.25 -10.7248,0 -19.25,-8.5254 -19.25,-19.25 v -40.406 c 0,-10.725 8.5254,-19.219 19.25,-19.219 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="rect4118" /> + <path + d="m -768.21,649.57 c -14.558,0 -26.594,11.436 -26.594,25.656 a 4.0004,4.0004 0 1 0 8,0 c 0,-9.7079 8.1783,-17.656 18.594,-17.656 10.415,0 18.625,7.9483 18.625,17.656 0,3.4188 -0.3012,6.2393 -1.9687,9.125 -1.6676,2.8857 -4.8983,6.1281 -11.656,9.5625 -15.36,7.8058 -30.328,23.228 -32.812,46.125 a 4.0004,4.0004 0 0 0 3.9688,4.4375 h 45.969 a 4.0004,4.0004 0 1 0 0,-8 h -41.219 c 3.4595,-17.376 15.261,-29.122 27.688,-35.438 7.6555,-3.8905 12.332,-8.1255 14.969,-12.688 2.6363,-4.5619 3.0625,-9.1977 3.0625,-13.125 0,-14.22 -12.067,-25.656 -26.625,-25.656 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4122" /> + <path + d="m -8.1876,197.04 c -15.018,0 -27.219,12.201 -27.219,27.219 v 40.406 c 0,15.018 12.201,27.25 27.219,27.25 15.018,0 27.25,-12.232 27.25,-27.25 v -40.406 c 0,-15.018 -12.232,-27.219 -27.25,-27.219 z m 0,8 c 10.725,0 19.25,8.4942 19.25,19.219 v 40.406 c 0,10.725 -8.5254,19.25 -19.25,19.25 -10.724,0 -19.219,-8.5254 -19.219,-19.25 v -40.406 c 0,-10.725 8.4942,-19.219 19.219,-19.219 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="rect4130" /> + <path + d="m -102.13,197.01 a 4.0004,4.0004 0 0 0 -4,4 v 37.25 a 4.0004,4.0004 0 0 0 7.375,2.125 c 2.9991,-4.7533 11.204,-8.0625 18.344,-8.0625 10.688,0 19.25,8.648 19.25,19.625 v 12.344 c 0,10.977 -8.5616,19.625 -19.25,19.625 -7.2063,0 -15.115,-4.3265 -18.219,-9.875 a 4.0081,4.0081 0 1 0 -7,3.9063 c 4.8761,8.7154 15.069,13.969 25.219,13.969 15.054,0 27.25,-12.426 27.25,-27.625 v -12.344 c 0,-15.2 -12.196,-27.625 -27.25,-27.625 -5.9927,0 -12.456,1.4611 -17.719,4.6875 v -24 h 35.406 a 4.0004,4.0004 0 1 0 0,-8 h -39.406 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4132" /> + <path + d="m -984.92,1208.6 a 2.5002,2.5002 0 0 0 -1.8125,0.8437 l -7.8125,8.9063 a 2.5018,2.5018 0 1 0 3.75,3.3125 l 3.4375,-3.9063 v 39.781 a 2.5002,2.5002 0 1 0 5,0 v -46.438 a 2.5002,2.5002 0 0 0 -2.5625,-2.5 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4159" /> + <path + d="m -963.1,1208.6 a 2.5002,2.5002 0 0 0 -2.25,2.5 v 19.906 a 2.5002,2.5002 0 0 0 4.625,1.3125 c 1.5017,-2.3801 5.7817,-4.125 9.5,-4.125 5.5171,0 9.9062,4.4472 9.9062,10.125 v 6.5938 c 0,5.6778 -4.3891,10.125 -9.9062,10.125 -3.7197,0 -7.858,-2.2704 -9.4375,-5.0938 a 2.5041,2.5041 0 1 0 -4.375,2.4375 c 2.6869,4.8027 8.253,7.6563 13.812,7.6563 8.2458,0 14.906,-6.8081 14.906,-15.125 v -6.5938 c 0,-8.3168 -6.6604,-15.125 -14.906,-15.125 -3.0809,0 -6.3424,0.7823 -9.125,2.3438 v -11.938 h 18.562 a 2.5002,2.5002 0 1 0 0,-5 h -21.062 a 2.5002,2.5002 0 0 0 -0.25,0 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4161" /> + <path + d="m -972.35,1253.6 c -2.2316,0 -4.0625,1.8309 -4.0625,4.0625 0,1.973 1.4112,3.5833 3.2812,3.9375 -0.352,1.6422 -0.8243,3.5675 -1.625,6.4062 3.379,-3.3496 5.078,-6.1447 6.0625,-8.6875 0.013,-0.033 0.05,-0.061 0.062,-0.094 v -0.031 c 0.1971,-0.4759 0.3125,-0.984 0.3125,-1.5312 0,-2.2316 -1.7996,-4.0625 -4.0312,-4.0625 z" + inkscape:connector-curvature="0" + style="fill:#000000" + id="path4165" /> + <path + d="m -1077.3,1219.9 c -5.4507,0.026 -10.966,1.9221 -16,6.6563 a 2.5092,2.5092 0 1 0 3.4375,3.6562 c 5.6657,-5.3285 10.954,-6.1333 16.938,-4.875 5.9835,1.2583 12.504,4.8899 19.125,8.7188 6.6209,3.8289 13.346,7.8504 20.312,9.5312 6.9668,1.6809 14.393,0.7108 20.875,-5.2812 a 2.51,2.51 0 1 0 -3.4062,-3.6875 c -5.3695,4.9636 -10.436,5.5429 -16.312,4.125 -5.8769,-1.4179 -12.328,-5.1595 -18.969,-9 -6.6411,-3.8406 -13.471,-7.7833 -20.594,-9.2813 -1.7808,-0.3745 -3.5894,-0.5713 -5.4063,-0.5625 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4170" /> + <path + d="m -852.33,1185.2 c -1.653,0 -3.0458,1.0383 -3.5937,2.5 l -34.656,12.281 v -9.2812 a 2.5002,2.5002 0 0 0 -2.5312,-2.5313 2.5002,2.5002 0 0 0 -2.4688,2.5313 v 11.062 l -11.219,3.9687 a 2.5002,2.5002 0 0 0 0,4.7188 l 11.219,3.9375 v 5.1562 l -11.219,3.9688 a 2.5002,2.5002 0 0 0 0,4.7187 l 11.219,3.9688 v 5.125 l -11.219,3.9687 a 2.5002,2.5002 0 0 0 0,4.7188 l 50.875,18.031 c 0.5479,1.4617 1.9407,2.5313 3.5937,2.5313 2.1292,0 3.8438,-1.7459 3.8438,-3.875 0,-2.1292 -1.7146,-3.8438 -3.8438,-3.8438 -0.698,0 -1.3415,0.2068 -1.9062,0.5313 l -36.344,-12.906 a 2.5002,2.5002 0 0 0 0,-0.1875 v -5.4062 l 10.562,-3.75 a 2.5002,2.5002 0 0 0 0,-4.7188 l -10.562,-3.75 v -5.625 l 10.562,-3.75 a 2.5002,2.5002 0 0 0 0,-4.6875 l -10.562,-3.75 v -5.5937 l 36.344,-12.875 c 0.5647,0.3244 1.2082,0.5312 1.9062,0.5312 2.1292,0 3.8438,-1.7458 3.8438,-3.875 0,-2.1291 -1.7146,-3.8437 -3.8438,-3.8437 z m -43.25,21.844 v 2.0625 l -2.9062,-1.0312 z m 5,9.0938 2.2813,0.8125 -2.2813,0.8125 z m -5,8.6875 v 2.0625 l -2.9062,-1.0313 z m 5,9.1562 2.25,0.7813 -2.25,0.7812 z m -5,8.6563 v 2.0625 l -2.9062,-1.0313 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4172" /> + <path + d="m -788.35,1184.2 a 2.5002,2.5002 0 0 0 -1.7841,1.1002 l -14.719,21.974 -25.423,7.2255 a 2.5002,2.5002 0 0 0 -1.2786,3.9547 l 16.354,20.784 -0.9515,26.434 a 2.5002,2.5002 0 0 0 3.36,2.4085 l 24.799,-9.0988 24.828,9.069 a 2.5002,2.5002 0 0 0 3.3601,-2.4382 l -1.011,-26.404 16.295,-20.814 a 2.5002,2.5002 0 0 0 -1.2786,-3.9547 l -25.423,-7.2255 -14.748,-21.914 a 2.5002,2.5002 0 0 0 -2.3788,-1.1002 z m 0.2973,6.9877 13.202,19.595 a 2.5002,2.5002 0 0 0 1.3976,1.011 l 22.717,6.4524 -14.57,18.584 a 2.5002,2.5002 0 0 0 -0.5353,1.6354 l 0.8921,23.609 -22.182,-8.0879 a 2.5002,2.5002 0 0 0 -1.7246,0 l -22.182,8.1473 0.8623,-23.639 a 2.5002,2.5002 0 0 0 -0.5352,-1.6354 l -14.57,-18.554 22.688,-6.4821 a 2.5002,2.5002 0 0 0 1.3975,-1.011 l 13.143,-19.625 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4195" /> + <path + d="m -788.4,1216 c -4.8517,0 -8.8125,3.9608 -8.8125,8.8125 a 2.1387,2.1387 0 1 0 4.25,0 c 0,-2.5403 2.0222,-4.5312 4.5625,-4.5312 2.5403,0 4.5625,1.9909 4.5625,4.5312 0,0.6956 -0.176,1.0804 -0.9062,1.9688 -0.7302,0.8884 -1.9841,2.0898 -3.4063,3.8125 l -9.3437,11.312 a 2.1387,2.1387 0 0 0 1.6562,3.5 h 15.406 a 2.14065,2.14065 0 0 0 0,-4.2813 h -10.875 l 6.4375,-7.8125 c 1.2474,-1.511 2.4036,-2.5926 3.4062,-3.8125 1.0026,-1.2198 1.9063,-2.8108 1.9063,-4.6875 0,-4.8517 -3.992,-8.8125 -8.8438,-8.8125 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4201" /> + <path + d="m -719.32,1204.4 a 2.5002,2.5002 0 0 0 -2.25,2.5 v 39.656 a 2.5002,2.5002 0 0 0 2.75,2.5 h 0.031 8.5625 c 7.6375,0 13.844,-6.2375 13.844,-13.875 0,-7.6376 -6.2062,-13.844 -13.844,-13.844 h -6.3438 v -11.938 h 14.156 a 2.5002,2.5002 0 1 0 0,-5 h -16.656 a 2.5002,2.5002 0 0 0 -0.25,0 z m 2.75,21.938 h 6.3437 c 4.954,0 8.8438,3.8897 8.8438,8.8438 0,4.954 -3.8898,8.875 -8.8438,8.875 h -6.3437 v -17.719 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4204" /> + <path + d="m -667.07,1189.1 a 2.1387,2.1387 0 0 0 -2.125,2.1875 v 68.688 a 2.1406,2.1406 0 0 0 4.2812,0 v -68.688 A 2.1387,2.1387 0 0 0 -667.07,1189.1 Z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4213" /> + <path + d="m -696.1,1257.9 a 2.503123,2.503123 0 1 0 0.25,5 h 57.594 a 2.5002,2.5002 0 1 0 0,-5 h -57.594 a 2.5002,2.5002 0 0 0 -0.25,0 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4215" /> + <path + d="m -997.61,1301.5 a 2.7908,2.7908 0 0 0 -2.5192,2.7905 v 33.331 a 2.7908,2.7908 0 1 0 5.5809,0 v -30.54 h 10.387 a 2.7908,2.7908 0 1 0 0,-5.581 h -13.177 a 2.7908,2.7908 0 0 0 -0.2713,0 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4217" /> + <path + d="m -967.11,1301.5 c -7.3104,0 -13.294,5.9832 -13.294,13.294 v 12.363 c 0,7.3104 5.9832,13.255 13.294,13.255 7.3104,0 13.294,-5.9445 13.294,-13.255 v -12.363 c 0,-7.3104 -5.9832,-13.294 -13.294,-13.294 z m 0,5.581 c 4.3151,0 7.7126,3.3975 7.7126,7.7126 v 12.363 c 0,4.3151 -3.3975,7.6739 -7.7126,7.6739 -4.315,0 -7.7126,-3.3588 -7.7126,-7.6739 v -12.363 c 0,-4.3151 3.3976,-7.7126 7.7126,-7.7126 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="rect4219" /> + <path + d="m -939.56,1301.5 c -7.3103,0 -13.294,5.9832 -13.294,13.294 v 12.363 c 0,7.3104 5.9833,13.255 13.294,13.255 6.1555,0 11.384,-4.1964 12.867,-9.9218 a 2.7908,2.7908 0 1 0 -5.3872,-1.3952 c -0.8578,3.3113 -3.8467,5.736 -7.4801,5.736 -4.315,0 -7.7126,-3.3588 -7.7126,-7.6739 v -12.363 c 0,-4.3151 3.3976,-7.7126 7.7126,-7.7126 3.63,0 6.5804,2.4293 7.4414,5.736 a 2.8012164,2.8012164 0 1 0 5.4259,-1.3953 c -1.4886,-5.7173 -6.7175,-9.9217 -12.867,-9.9217 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="rect4221" /> + <path + d="m -913.39,1301.5 a 2.7908,2.7908 0 0 0 -2.4804,2.8293 v 33.331 a 2.7908,2.7908 0 1 0 5.581,0 v -33.331 A 2.7908,2.7908 0 0 0 -913.39,1301.5 Z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4224" /> + <path + d="m -921.92,1301.5 a 2.7938,2.7938 0 1 0 0.2713,5.581 h 17.131 a 2.7908,2.7908 0 1 0 0,-5.581 h -17.131 a 2.7908,2.7908 0 0 0 -0.2713,0 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4226" /> + <path + d="m -871.11,1301.5 c -5.4866,0 -9.9993,4.5127 -9.9993,9.9993 0,5.4866 4.5127,9.9993 9.9993,9.9993 5.4865,0 9.9992,-4.5127 9.9992,-9.9993 0,-5.4866 -4.5127,-9.9993 -9.9992,-9.9993 z m 0,5.581 c 2.4704,0 4.4183,1.9479 4.4183,4.4183 0,2.4704 -1.9479,4.4183 -4.4183,4.4183 -2.4704,0 -4.4183,-1.9479 -4.4183,-4.4183 0,-2.4704 1.9479,-4.4183 4.4183,-4.4183 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4232" /> + <path + d="m -871.11,1315.8 c -6.7839,0 -12.335,5.5509 -12.335,12.335 0,6.7839 5.5509,12.335 12.335,12.335 6.7839,0 12.335,-5.5509 12.335,-12.335 0,-6.7839 -5.5509,-12.335 -12.335,-12.335 z m 0,5.5506 c 3.7677,0 6.7841,3.0165 6.7841,6.7842 0,3.7677 -3.0164,6.7841 -6.7841,6.7841 -3.7677,0 -6.7842,-3.0164 -6.7842,-6.7841 0,-3.7677 3.0165,-6.7842 6.7842,-6.7842 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4234" /> + <path + d="m -853.24,1301.5 a 2.7948015,2.7948015 0 1 0 0.31,5.581 h 9.8055 c -4.1407,8.1507 -7.5055,18.252 -10.348,29.882 a 2.7918179,2.7918179 0 0 0 5.4259,1.3178 c 3.274,-13.394 7.1815,-24.728 11.898,-32.556 a 2.7908,2.7908 0 0 0 -2.403,-4.2245 h -14.379 a 2.7908,2.7908 0 0 0 -0.31,0 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4236" /> + <path + d="m -817.47,1301.5 a 2.7908,2.7908 0 0 0 -2.1704,1.1239 l -5.8135,7.7514 a 2.7908,2.7908 0 1 0 4.457,3.3331 l 0.8139,-1.0852 v 24.998 a 2.7908,2.7908 0 1 0 5.581,0 v -33.331 a 2.7908,2.7908 0 0 0 -2.868,-2.7905 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4240" /> + <path + d="m -797.9,1301.5 a 2.7908,2.7908 0 0 0 -2.1316,1.1239 l -5.8136,7.7514 a 2.7908,2.7908 0 1 0 4.4571,3.3331 l 0.7751,-1.0464 v 24.959 a 2.7908,2.7908 0 1 0 5.581,0 v -33.331 a 2.7908,2.7908 0 0 0 -2.868,-2.7905 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4250" /> + <path + d="m -726.59,1301.5 c -7.3104,0 -13.294,5.9832 -13.294,13.294 v 12.363 c 0,7.3104 5.9832,13.255 13.294,13.255 7.3104,0 13.294,-5.9445 13.294,-13.255 v -12.363 c 0,-7.3104 -5.9832,-13.294 -13.294,-13.294 z m 0,5.581 c 4.3151,0 7.7127,3.3975 7.7127,7.7126 v 12.363 c 0,4.3151 -3.3976,7.6739 -7.7127,7.6739 -4.315,0 -7.7126,-3.3588 -7.7126,-7.6739 v -12.363 c 0,-4.3151 3.3976,-7.7126 7.7126,-7.7126 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="rect4252" /> + <path + d="m -753.51,1315.8 c -6.7839,0 -12.335,5.5509 -12.335,12.335 0,6.7839 5.5509,12.335 12.335,12.335 6.7839,0 12.335,-5.5509 12.335,-12.335 0,-6.7839 -5.5509,-12.335 -12.335,-12.335 z m 0,5.5506 c 3.7677,0 6.7841,3.0165 6.7841,6.7842 0,3.7677 -3.0164,6.7841 -6.7841,6.7841 -3.7677,0 -6.7842,-3.0164 -6.7842,-6.7841 0,-3.7677 3.0165,-6.7842 6.7842,-6.7842 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4254" /> + <path + d="m -753.52,1301.5 c -6.7839,0 -12.325,5.5408 -12.325,12.325 v 14.262 a 2.7908,2.7908 0 1 0 5.581,0 v -14.262 c 0,-3.7677 2.976,-6.7437 6.7437,-6.7437 2.7232,0 5.1777,1.6007 6.2399,4.1082 a 2.7965,2.7965 0 1 0 5.1546,-2.1704 c -1.9302,-4.5568 -6.4457,-7.5188 -11.394,-7.5188 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4258" /> + <path + d="m -787.63,1317.3 a 2.7938,2.7938 0 1 0 0.2713,5.581 h 14.418 a 2.7908,2.7908 0 1 0 0,-5.581 h -14.418 a 2.7908,2.7908 0 0 0 -0.2713,0 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4261" /> + <path + d="m 144.24,272.53 c -6.7856,0 -12.69,3.8407 -15.594,9.5 a 2.5002,2.5002 0 1 0 4.4375,2.2812 c 2.0712,-4.0371 6.2544,-6.7812 11.156,-6.7812 6.9827,0 12.531,5.5486 12.531,12.531 v 21.344 c 0,6.9826 -5.5486,12.531 -12.531,12.531 -4.4773,0 -8.3427,-2.2743 -10.562,-5.75 a 2.5010041,2.5010041 0 1 0 -4.2187,2.6875 c 3.1089,4.8679 8.5832,8.0625 14.781,8.0625 9.6662,0 17.531,-7.8651 17.531,-17.531 v -21.344 c 0,-9.6662 -7.8651,-17.531 -17.531,-17.531 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="rect4271" /> + <path + d="m 221.24,272.53 c -9.6661,0 -17.5,7.865 -17.5,17.531 v 21.344 c 0,9.6661 7.8339,17.531 17.5,17.531 9.6662,0 17.531,-7.8651 17.531,-17.531 v -21.344 c 0,-9.6662 -7.8651,-17.531 -17.531,-17.531 z m 0,5 c 6.9827,0 12.531,5.5485 12.531,12.531 v 21.344 c 0,6.9826 -5.5486,12.531 -12.531,12.531 -6.9826,0 -12.5,-5.5486 -12.5,-12.531 v -21.344 c 0,-6.9827 5.5174,-12.531 12.5,-12.531 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="rect4273" /> + <path + d="m 169.86,272.53 a 2.503123,2.503123 0 1 0 0.25,5 h 18.156 l -12.375,17.5 a 2.5002,2.5002 0 0 0 2.3437,3.9375 c 5.7215,-0.6862 9.0208,0.5421 11.188,2.4375 2.1668,1.8954 3.3312,4.7379 3.7813,7.7187 0.4713,3.1214 -0.2842,6.6267 -1.9063,9.4063 -1.622,2.7795 -4.0115,4.7449 -6.7187,5.25 -4.475,0.8347 -10.174,-1.6848 -12.25,-5.8438 a 2.5016331,2.5016331 0 1 0 -4.4688,2.25 c 3.2375,6.4873 10.824,9.7687 17.625,8.5 4.4334,-0.827 7.9333,-3.8692 10.125,-7.625 2.1918,-3.7558 3.1946,-8.2945 2.5313,-12.688 -0.5669,-3.7543 -2.0648,-7.7957 -5.4063,-10.719 -2.4107,-2.1089 -5.7373,-3.4771 -9.9062,-3.7813 l 12.312,-17.406 a 2.5002,2.5002 0 0 0 -2.0625,-3.9375 h -22.969 a 2.5002,2.5002 0 0 0 -0.25,0 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4275" /> + <path + d="m 145.11,298.25 a 2.503123,2.503123 0 1 0 0.25,5 h 13.125 a 2.5002,2.5002 0 1 0 0,-5 H 145.36 a 2.5002,2.5002 0 0 0 -0.25,0 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4281" /> + <path + d="m 147.41,654.11 a 3.5004,3.5004 0 0 0 -3,1.9063 l -22,41.875 -75.406,87.469 a 3.5014,3.5014 0 1 0 5.3125,4.5625 l 75.688,-87.844 a 3.5004,3.5004 0 0 0 0.4687,-0.6563 l 22.125,-42.156 a 3.5004,3.5004 0 0 0 -3.1875,-5.1563 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#cc9168" + id="path4285" /> + <path + d="m 49.41,773.83 c -7.7494,0 -14.125,6.3443 -14.125,14.094 0,7.7494 6.3756,14.125 14.125,14.125 7.7494,0 14.094,-6.3756 14.094,-14.125 a 3.5004,3.5004 0 1 0 -7,0 c 0,3.9663 -3.1274,7.125 -7.0938,7.125 -3.9663,0 -7.125,-3.1587 -7.125,-7.125 0,-3.9663 3.1587,-7.0937 7.125,-7.0937 h 0.2813 a 3.5035,3.5035 0 1 0 0.3125,-7 c -0.1998,-0.01 -0.3938,0 -0.5938,0 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#ffffff" + id="path4287" /> + <circle + r="54.285713" + cy="642.65503" + cx="194.64856" + style="fill:#b3b3b3" + id="path4283" /> + <circle + r="42.669113" + cy="642.64874" + cx="194.65746" + style="fill:#808080;stroke-width:0.78601003" + id="path4294" /> + <path + d="m 188.35,600.96 c -20.3,3.0393 -35.875,20.541 -35.875,41.688 0,21.147 15.575,38.679 35.875,41.719 v -83.406 z m 12.625,0.031 v 83.344 c 20.284,-3.0534 35.844,-20.552 35.844,-41.688 0,-21.135 -15.56,-38.603 -35.844,-41.656 z" + inkscape:connector-curvature="0" + style="fill:#cccccc" + id="path4289" /> + <path + d="m -268.5,1124 c -1.0098,0.01 -2.0071,0.4765 -2.6563,1.25 l -75.719,87.844 c -0.1719,0.2111 -0.3191,0.4424 -0.4375,0.6875 l -34.12,26.143 c -0.8509,1.628 -0.1437,3.8835 1.4843,4.7343 1.6281,0.8509 3.8836,0.1437 4.7344,-1.4843 l 33.902,-25.768 75.469,-87.594 c 0.8866,-1.0076 1.1136,-2.5465 0.5558,-3.7672 -0.5578,-1.2207 -1.87,-2.0562 -3.212,-2.0453 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#cc9168" + sodipodi:nodetypes="cccccscccsc" + id="path4296" /> + <circle + r="54.285713" + cy="-1272.595" + cx="413.50156" + transform="scale(-1)" + style="fill:#c5c5bf" + id="path4300-2" /> + <circle + r="42.669113" + cy="-1272.5112" + cx="413.50345" + transform="scale(-1)" + style="fill:#808080;stroke-width:0.78601003" + id="path4302" /> + <path + inkscape:connector-curvature="0" + style="fill:#cccccc" + d="m -407.2,1314.3 c 20.3,-3.0394 35.875,-20.541 35.875,-41.688 0,-21.147 -15.575,-38.679 -35.875,-41.719 v 83.406 z m -12.625,-0.031 v -83.344 c -20.284,3.0534 -35.844,20.552 -35.844,41.688 0,21.135 15.56,38.603 35.844,41.656 z" + id="path4304" /> + </g> + <g + inkscape:label="HMI:Meter@/PUMP0/SLOTH" + transform="matrix(0.57180538,0,0,0.57180538,88.118425,163.79208)" + id="g19348"> + <path + inkscape:label="range" + sodipodi:open="true" + d="M 69.660373,-2.4694091 A 54.660004,54.024006 0 0 1 124.19821,-56.449318" + sodipodi:end="4.7101543" + sodipodi:start="3.1424064" + sodipodi:ry="54.024006" + sodipodi:rx="54.660004" + sodipodi:cy="-2.4254472" + sodipodi:cx="124.32036" + sodipodi:type="arc" + id="path19332" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.38814712;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <path + inkscape:label="needle" + sodipodi:nodetypes="cc" + inkscape:connector-curvature="0" + id="path19334" + d="M 123.16695,-3.4226979 70.419817,-6.3833915" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.92543143;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:29.63333321;stroke-opacity:1;marker-start:url(#marker20566-2);marker-end:url(#marker23223)" /> + </g> + <g + transform="matrix(0.03023415,0,0,0.03023415,158.84668,129.93084)" + id="g24628"> + <path + d="m 111.68,388.94 2.4663,1.2855 71.607,37.323 2.4386,1.2711 2.4387,-1.2711 71.607,-37.323 2.4663,-1.2855 -2.4386,-1.271 -71.607,-37.323 -2.4664,-1.2855 -2.4663,1.2855 -71.607,37.323 z m 9.81,0 66.702,-34.766 66.73,34.78 -66.702,34.766 -66.73,-34.781 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="rect4358" /> + <path + d="m 174.86,371.46 -2.2812,1.375 -11.406,6.9687 -0.7187,0.4375 v 0.8438 4.4687 h 3 v -3.625 l 8.4062,-5.125 v 9.5313 l -3.5937,3.8125 -0.9375,1.0312 0.9375,1.0313 3.5937,3.8125 v 9.5312 l -8.4062,-5.125 v -3.625 h -3 v 4.4688 0.8437 l 0.7187,0.4375 11.406,6.9688 2.2812,1.375 v -2.6563 -12.812 -0.5937 l -0.4062,-0.4375 -3.0313,-3.2188 3.0313,-3.25 0.4062,-0.4375 v -0.5937 -12.781 -2.6562 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4362" /> + <path + d="m 181.18,365.18 v 48.594 h 3 V 365.18 Z m 11.062,0 v 48.594 h 3 V 365.18 Z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4366" /> + <path + d="m 192.36,377.09 -11.062,24.469 2.7188,1.2188 11.094,-24.469 -2.75,-1.2187 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4369" /> + <path + d="m 200.8,368.12 v 2.625 37.5 h 3 v -34.906 l 8,4.5937 v 22.969 h 3 v -23.812 -0.875 l -0.75,-0.4375 -11,-6.3438 -2.25,-1.3125 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4371" /> + <path + d="m 141.52,456.11 c -4.2082,0 -7.5312,3.6567 -7.5312,8 a 1.5002,1.5002 0 1 0 3,0 c 0,-2.8368 2.0679,-5 4.5312,-5 2.4633,0 4.5313,2.1632 4.5313,5 0,1.0172 -0.081,1.842 -0.5,2.6562 -0.419,0.8143 -1.2183,1.7196 -2.9688,2.7188 -4.2189,2.4083 -8.2687,7.139 -8.9375,14.062 a 1.5002,1.5002 0 0 0 1.5,1.625 h 12.281 a 1.5002,1.5002 0 1 0 0,-3 H 137.02 c 1.0026,-4.93 3.9357,-8.3089 7.0625,-10.094 2.1,-1.1987 3.4254,-2.517 4.1563,-3.9375 0.7308,-1.4205 0.8125,-2.8442 0.8125,-4.0312 0,-4.3433 -3.3231,-8 -7.5313,-8 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4373" /> + <path + d="m 191.63,456.12 a 1.5002,1.5002 0 0 0 -1.0625,0.625 l -12.656,18.5 a 1.5002,1.5002 0 0 0 1.2188,2.3438 h 11.188 v 6.0625 a 1.5002,1.5002 0 1 0 3,0 v -6.0625 h 0.5312 a 1.5002,1.5002 0 1 0 0,-3 h -0.5312 v -16.969 a 1.5002,1.5002 0 0 0 -1.6875,-1.5 z m -1.3125,6.3125 v 12.156 h -8.3125 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4157-8" /> + <path + d="m 260.25,456.14 a 1.5002,1.5002 0 0 0 -1.1875,1.5 v 11.156 a 1.5002,1.5002 0 0 0 2.75,0.8125 c 0.8305,-1.2895 3.2878,-2.2812 5.4062,-2.2812 3.1378,0 5.5938,2.446 5.5938,5.5625 v 3.7187 c 0,3.1165 -2.456,5.5625 -5.5938,5.5625 -2.1156,0 -4.4947,-1.271 -5.375,-2.8125 a 1.5002,1.5002 0 1 0 -2.5937,1.5 c 1.5623,2.7359 4.7718,4.3125 7.9687,4.3125 4.7418,0 8.5938,-3.8296 8.5938,-8.5625 v -3.7187 c 0,-4.7328 -3.852,-8.5625 -8.5938,-8.5625 -1.7311,0 -3.5751,0.4087 -5.1562,1.25 v -6.4375 h 10.562 a 1.5002,1.5002 0 1 0 0,-3 h -12.062 a 1.5002,1.5002 0 0 0 -0.3125,0 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4397" /> + <path + d="m 139.49,518.96 a 1.5002,1.5002 0 0 0 -1.1875,0.625 l -4.4687,6.0625 a 1.5002,1.5002 0 1 0 2.4062,1.7812 l 1.7813,-2.4062 v 21.5 a 1.5002,1.5002 0 1 0 3,0 v -26.062 a 1.5002,1.5002 0 0 0 -1.5313,-1.5 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4250-1" /> + <path + d="m 177.16,530.1 c -4.9217,0 -8.9328,4.0208 -8.9328,8.9543 0,4.9336 4.0111,8.9544 8.9328,8.9544 4.9217,0 8.9329,-4.0208 8.9329,-8.9544 0,-4.9335 -4.0112,-8.9543 -8.9329,-8.9543 z m 0,3.0116 c 3.3023,0 5.9286,2.6325 5.9286,5.9427 0,3.3103 -2.6263,5.983 -5.9286,5.983 -3.3023,0 -5.9285,-2.6727 -5.9285,-5.983 0,-3.3102 2.6262,-5.9427 5.9285,-5.9427 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4254-5" /> + <path + d="m 177.15,518.96 c -4.9246,0 -8.9375,4.0381 -8.9375,8.9687 v 11.125 a 1.5002,1.5002 0 1 0 3,0 v -11.125 c 0,-3.3131 2.6381,-5.9687 5.9375,-5.9687 2.3902,0 4.5663,1.4467 5.5,3.6562 a 1.5002,1.5002 0 1 0 2.75,-1.1875 c -1.3986,-3.3097 -4.6606,-5.4687 -8.25,-5.4687 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4258-9" /> + <path + d="m 154.3,536.89 c 4.9217,0 8.9328,-4.0208 8.9328,-8.9543 0,-4.9335 -4.0111,-8.9543 -8.9328,-8.9543 -4.9217,0 -8.9329,4.0208 -8.9329,8.9543 0,4.9335 4.0112,8.9543 8.9329,8.9543 z m 0,-3.0115 c -3.3024,0 -5.9286,-2.6326 -5.9286,-5.9428 0,-3.3103 2.6262,-5.9829 5.9286,-5.9829 3.3023,0 5.9285,2.6726 5.9285,5.9829 0,3.3102 -2.6262,5.9428 -5.9285,5.9428 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4446" /> + <path + d="m 161.74,526.4 a 1.5002,1.5002 0 0 0 -1.5,1.5312 v 11.125 c 0,3.3132 -2.6381,5.9688 -5.9375,5.9688 -2.3902,0 -4.535,-1.4155 -5.4687,-3.625 a 1.5060236,1.5060236 0 1 0 -2.7813,1.1562 c 1.3986,3.3097 4.6606,5.4688 8.25,5.4688 4.9246,0 8.9375,-4.0382 8.9375,-8.9688 v -11.125 a 1.5002,1.5002 0 0 0 -1.5,-1.5312 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4448" /> + <path + d="m 225.02,523.02 a 1.5002,1.5002 0 0 0 -1.3438,1.5 v 18.562 a 1.5002,1.5002 0 1 0 3,0 V 526.02 h 7.7813 a 1.5002,1.5002 0 1 0 0,-3 h -9.2813 a 1.5002,1.5002 0 0 0 -0.1562,0 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4458" /> + <path + d="m -268.26,1141.4 c 7.7494,0 14.125,-6.3444 14.125,-14.094 0,-7.7494 -6.3756,-14.125 -14.125,-14.125 -7.7494,0 -14.094,6.3756 -14.094,14.125 a 3.5004,3.5004 0 1 0 7,0 c 0,-3.9663 3.1275,-7.125 7.0938,-7.125 3.9663,0 7.125,3.1587 7.125,7.125 0,3.9664 -3.1587,7.0938 -7.125,7.0938 h -0.2813 a 3.5035,3.5035 0 1 0 -0.3125,7 c 0.1999,0.01 0.3938,0 0.5938,0 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#ffffff" + id="path4298" /> + <rect + x="178.94" + y="1014.8" + width="294.29001" + height="45" + ry="22.5" + rx="22.5" + style="fill:#333333" + id="rect3790" /> + <path + d="m 183.75,1122.6 c -65.126,0 -119.22,47.238 -129.91,109.31 h -70.969 c -12.465,0 -22.5,10.035 -22.5,22.5 0,12.465 10.035,22.5 22.5,22.5 H 53.84 c 10.674,62.09 64.77,109.34 129.91,109.34 65.138,0 119.23,-47.252 129.91,-109.34 h 137.06 c 12.465,0 22.5,-10.035 22.5,-22.5 0,-12.465 -10.035,-22.5 -22.5,-22.5 H 313.66 c -10.69,-62.1 -64.81,-109.3 -129.91,-109.3 z" + inkscape:connector-curvature="0" + style="fill:#333333" + id="rect3792" /> + <path + sodipodi:start="0" + sodipodi:end="6.2776887" + sodipodi:cx="450.52805" + sodipodi:cy="401.31888" + transform="matrix(0.67433,0,0,0.67433,-120.05,983.82)" + sodipodi:open="true" + d="M 582.35295,401.31888 A 131.82491,131.82491 0 0 1 450.70919,533.14366 131.82491,131.82491 0 0 1 318.70364,401.68117 131.82491,131.82491 0 0 1 449.9846,269.49509 131.82491,131.82491 0 0 1 582.35096,400.59429" + sodipodi:type="arc" + style="fill:#000000" + sodipodi:ry="131.82491" + sodipodi:rx="131.82491" + id="path3802" /> + <path + d="m 183.75,1175.6 c -43.516,0 -78.781,35.266 -78.781,78.781 0,7.6898 1.1023,15.13 3.1563,22.156 l 145.66,-58.188 c -13.09,-25.386 -39.524,-42.75 -70.031,-42.75 z m 75.625,56.656 -145.69,58.188 c 13.086,25.38 39.541,42.75 70.062,42.75 43.516,0 78.781,-35.297 78.781,-78.812 v -0.4062 c -0.041,-7.535 -1.1424,-14.828 -3.1562,-21.719 z" + inkscape:connector-curvature="0" + style="fill:#333333" + id="path3804" /> + <rect + x="-236.78" + y="1431.9" + width="710" + height="45" + ry="22.5" + rx="22.5" + style="fill:#333333" + id="rect3794" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 64.543,197.04 c -15.018,0 -27.219,12.201 -27.219,27.219 v 40.406 c 0,15.018 12.2,27.25 27.219,27.25 15.018,0 27.25,-12.232 27.25,-27.25 v -40.406 c 0,-15.018 -12.232,-27.219 -27.25,-27.219 z m 0,8 c 10.725,0 19.25,8.4942 19.25,19.219 v 40.406 c 0,10.725 -8.5254,19.25 -19.25,19.25 -10.724,0 -19.219,-8.5254 -19.219,-19.25 v -40.406 c 0,-10.725 8.4942,-19.219 19.219,-19.219 z" + id="path5724" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m -608.11,412.19 a 4.2093,4.2093 0 1 0 0.4204,8.408 h 30.531 l -20.81,29.428 a 4.2044,4.2044 0 0 0 3.9412,6.6213 c 9.6213,-1.1538 15.169,0.9116 18.813,4.0989 3.6435,3.1873 5.6017,7.9672 6.3585,12.98 0.7925,5.2489 -0.4779,11.143 -3.2056,15.818 -2.7276,4.6741 -6.7457,7.9791 -11.298,8.8283 -7.525,1.4038 -17.109,-2.8331 -20.6,-9.8268 a 4.2067,4.2067 0 0 0 -7.5146,3.7836 c 5.4441,10.909 18.201,16.427 29.638,14.294 7.4551,-1.3908 13.34,-6.5064 17.026,-12.822 3.6857,-6.3157 5.3719,-13.948 4.2565,-21.335 -0.9532,-6.3133 -3.4721,-13.109 -9.0911,-18.025 -4.0538,-3.5462 -9.6478,-5.8469 -16.658,-6.3585 l 20.705,-29.27 a 4.2044,4.2044 0 0 0 -3.4683,-6.6213 h -38.624 a 4.2044,4.2044 0 0 0 -0.4204,0 z" + id="path5726" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m -304.56,229 c -15.021,0 -27.222,12.201 -27.222,27.222 v 40.446 c 0,15.021 12.201,27.222 27.222,27.222 15.021,0 27.277,-12.201 27.277,-27.222 V 256.222 C -277.283,241.201 -289.54,229 -304.56,229 Z m 0,7.9675 c 10.744,0 19.31,8.5101 19.31,19.255 v 40.446 c 0,10.744 -8.5654,19.255 -19.31,19.255 -10.744,0 -19.255,-8.5101 -19.255,-19.255 v -40.446 c 0,-10.744 8.5101,-19.255 19.255,-19.255 z" + id="path5728" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m -361.49,229.03 a 3.9804,3.9804 0 0 0 -2.8192,1.8242 l -39.192,61.69 a 3.9804,3.9804 0 0 0 3.3719,6.0806 h 35.157 v 21.227 a 3.9804,3.9804 0 1 0 7.96,0 v -21.227 h 2.377 a 3.9804,3.9804 0 1 0 0,-7.96 h -2.377 v -57.655 a 3.9804,3.9804 0 0 0 -4.4775,-3.98 z m -3.4825,17.634 v 44.001 h -27.916 z" + id="path5730" /> + <path + d="m -228.85,229 c -15.021,0 -27.222,12.201 -27.222,27.222 v 40.446 c 0,15.021 12.201,27.222 27.222,27.222 15.021,0 27.277,-12.201 27.277,-27.222 V 256.222 C -201.573,241.201 -213.83,229 -228.85,229 Z m 0,7.9675 c 10.744,0 19.31,8.5101 19.31,19.255 v 40.446 c 0,10.744 -8.5655,19.255 -19.31,19.255 -10.7445,0 -19.255,-8.5101 -19.255,-19.255 v -40.446 c 0,-10.744 8.5101,-19.255 19.255,-19.255 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path5732" /> + <path + d="m 191.83,520.42 h 14.362 l -11.391,26.091" + inkscape:connector-curvature="0" + style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:round;stroke-linejoin:round" + id="path5734" /> + <path + inkscape:connector-curvature="0" + style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:round;stroke-linejoin:round" + d="m 234.26,457.58 h 14.362 l -11.391,26.09" + id="path5736" /> + <path + d="m 214.66,456.08 c -4.7833,0 -8.6562,3.9041 -8.6562,8.6875 v 11.719 c 0,4.7834 3.8729,8.6875 8.6562,8.6875 4.7834,0 8.6875,-3.9041 8.6875,-8.6875 v -11.719 c 0,-4.7834 -3.9041,-8.6875 -8.6875,-8.6875 z m 0,3 c 3.1733,0 5.6875,2.5142 5.6875,5.6875 v 11.719 c 0,3.1733 -2.5142,5.6875 -5.6875,5.6875 -3.1732,0 -5.6562,-2.5142 -5.6562,-5.6875 v -11.719 c 0,-3.1733 2.483,-5.6875 5.6562,-5.6875 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="rect5738" /> + <path + d="m 165.16,456.08 c -4.7833,0 -8.6562,3.9041 -8.6562,8.6875 v 11.719 c 0,4.7834 3.8729,8.6875 8.6562,8.6875 4.7834,0 8.6875,-3.9041 8.6875,-8.6875 v -11.719 c 0,-4.7834 -3.9041,-8.6875 -8.6875,-8.6875 z m 0,3 c 3.1733,0 5.6875,2.5142 5.6875,5.6875 v 11.719 c 0,3.1733 -2.5142,5.6875 -5.6875,5.6875 -3.1732,0 -5.6562,-2.5142 -5.6562,-5.6875 v -11.719 c 0,-3.1733 2.483,-5.6875 5.6562,-5.6875 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="rect5740" /> + <path + d="m -1171.1,945.11 a 2.6676,2.6676 0 0 0 -2.1117,1.1113 l -7.9464,10.78 a 2.6676,2.6676 0 1 0 4.2788,3.1675 l 3.1675,-4.2789 v 38.232 a 2.6676,2.6676 0 1 0 5.3347,0 v -46.345 a 2.6676,2.6676 0 0 0 -2.7229,-2.6673 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4250-1-3" /> + <path + d="m -1144.4,945.12 c -8.5059,0 -15.448,6.8868 -15.448,15.393 v 20.894 c 0,8.5059 6.9424,15.393 15.448,15.393 8.5059,0 15.448,-6.8868 15.448,-15.393 v -20.894 c 0,-8.5059 -6.9424,-15.393 -15.448,-15.393 z m 0,5.3346 c 5.6428,0 10.114,4.4153 10.114,10.058 v 20.894 c 0,5.6428 -4.4708,10.058 -10.114,10.058 -5.6428,0 -10.114,-4.4153 -10.114,-10.058 v -20.894 c 0,-5.6428 4.4708,-10.058 10.114,-10.058 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="rect5738-5" /> + <path + d="m -1107.5,944.76 c -8.5059,0 -15.448,6.8868 -15.448,15.393 v 20.894 c 0,8.5059 6.9424,15.393 15.448,15.393 8.5059,0 15.448,-6.8868 15.448,-15.393 v -20.894 c 0,-8.506 -6.9424,-15.393 -15.448,-15.393 z m 0,5.3347 c 5.6428,0 10.114,4.4153 10.114,10.058 v 20.894 c 0,5.6427 -4.4708,10.058 -10.114,10.058 -5.6428,0 -10.114,-4.4153 -10.114,-10.058 v -20.894 c 0,-5.6428 4.4708,-10.058 10.114,-10.058 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="rect5763" /> + <path + inkscape:connector-curvature="0" + inkscape:transform-center-y="-426.79377" + inkscape:transform-center-x="933.15822" + d="m -981.29,613.51 a 3.5004,3.5004 0 0 0 -1.8867,6.6884 l 109.11,49.911 a 3.5004,3.5004 0 1 0 2.9043,-6.3686 l -109.11,-49.911 A 3.5004,3.5004 0 0 0 -981.29,613.51 Z" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path5787" /> + <path + inkscape:connector-curvature="0" + inkscape:transform-center-y="-773.89442" + inkscape:transform-center-x="673.81332" + d="m -705.38,246.62 a 3.5004,3.5004 0 0 0 -4.4791,5.3134 l 78.781,90.494 a 3.5004,3.5004 0 1 0 5.2739,-4.6022 l -78.781,-90.494 A 3.5004,3.5004 0 0 0 -705.38,246.62 Z" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path5789" /> + <path + inkscape:connector-curvature="0" + inkscape:transform-center-y="-976.42875" + inkscape:transform-center-x="315.47402" + d="m -325.06,33.219 a 3.5004,3.5004 0 0 0 -6.2068,3.1256 l 36.88,114.17 a 3.5004,3.5004 0 1 0 6.6582,-2.1593 l -36.88,-114.18 a 3.5004,3.5004 0 0 0 -0.4514,-0.9664 z" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path5791" /> + <path + inkscape:connector-curvature="0" + inkscape:transform-center-y="-1026.1273" + inkscape:transform-center-x="-0.023585956" + d="m 9.3597,-18.399 a 3.5004,3.5004 0 0 0 -6.8671,1.0659 l -0.011,119.98 a 3.5004,3.5004 0 1 0 6.9995,-0.01 l 0.011,-119.98 a 3.5004,3.5004 0 0 0 -0.1324,-1.0584 z" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path5793" /> + <path + inkscape:connector-curvature="0" + inkscape:transform-center-y="-165.18705" + inkscape:transform-center-x="1042.4061" + d="m -1068.4,895.12 a 1.888,3.5004 9.0712 0 0 -0.5103,6.8713 l 63.927,10.069 a 1.888,3.5004 9.0712 1 0 1.0946,-6.9134 l -63.927,-10.069 a 1.888,3.5004 9.0712 0 0 -0.5847,0.042 z" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path5795" /> + <path + inkscape:connector-curvature="0" + inkscape:transform-center-y="-249.64231" + inkscape:transform-center-x="1025.4638" + d="m -1050.7,808.09 a 1.888,3.5004 13.749 0 0 -1.0689,6.8068 l 62.893,15.249 a 1.888,3.5004 13.749 1 0 1.6548,-6.8011 l -62.893,-15.249 a 1.888,3.5004 13.749 0 0 -0.5862,-0.01 z" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path5797" /> + <path + inkscape:connector-curvature="0" + inkscape:transform-center-y="-325.18917" + inkscape:transform-center-x="1004.0664" + d="m -1028.4,730.25 a 1.888,3.5004 18.012 0 0 -1.5721,6.7085 l 61.585,19.882 a 1.888,3.5004 18.012 1 0 2.1559,-6.6593 l -61.585,-19.882 a 1.888,3.5004 18.012 0 0 -0.5842,-0.049 z" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path5799" /> + <path + inkscape:connector-curvature="0" + inkscape:transform-center-y="-388.82606" + inkscape:transform-center-x="981.17869" + d="m -1004.6,664.7 a 1.888,3.5004 21.684 0 0 -1.9984,6.5941 l 60.185,23.786 a 1.888,3.5004 21.684 1 0 2.5779,-6.5076 l -60.185,-23.786 a 1.888,3.5004 21.684 0 0 -0.5798,-0.087 z" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path5801" /> + <path + inkscape:connector-curvature="0" + inkscape:transform-center-y="-531.33261" + inkscape:transform-center-x="911.91157" + d="m -932.71,517.97 a 1.888,3.5004 30.294 0 0 -2.9631,6.2206 l 55.946,32.528 a 1.888,3.5004 30.294 1 0 3.5231,-6.0483 l -55.946,-32.528 a 1.888,3.5004 30.294 0 0 -0.5603,-0.1725 z" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path5803" /> + <path + inkscape:connector-curvature="0" + inkscape:transform-center-y="-616.96881" + inkscape:transform-center-x="856.29817" + d="m -875.09,429.84 a 1.888,3.5004 35.84 0 0 -3.5504,5.9051 l 52.541,37.782 a 1.888,3.5004 35.84 1 0 4.0911,-5.6795 l -52.541,-37.782 a 1.888,3.5004 35.84 0 0 -0.5409,-0.2259 z" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path5805" /> + <path + inkscape:connector-curvature="0" + inkscape:transform-center-y="-694.89709" + inkscape:transform-center-x="794.36465" + d="m -810.98,349.68 a 1.888,3.5004 41.246 0 0 -4.0909,5.5444 l 48.748,42.564 a 1.888,3.5004 41.246 1 0 4.608,-5.2689 l -48.748,-42.564 a 1.888,3.5004 41.246 0 0 -0.5173,-0.2758 z" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path5807" /> + <path + inkscape:connector-curvature="0" + inkscape:transform-center-y="-746.16601" + inkscape:transform-center-x="746.41375" + d="m -761.37,296.96 a 1.888,3.5004 45.057 0 0 -4.4504,5.2601 l 45.811,45.71 a 1.888,3.5004 45.057 1 0 4.948,-4.9509 l -45.811,-45.71 a 1.888,3.5004 45.057 0 0 -0.4978,-0.3096 z" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path5809" /> + <path + inkscape:connector-curvature="0" + inkscape:transform-center-y="-846.16619" + inkscape:transform-center-x="630.79324" + d="m -641.83,194.21 a 1.888,3.5004 53.363 0 0 -5.1636,4.5621 l 38.727,51.849 a 1.888,3.5004 53.363 1 0 5.6113,-4.1842 l -38.727,-51.849 a 1.888,3.5004 53.363 0 0 -0.4478,-0.3782 z" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path5811" /> + <path + inkscape:connector-curvature="0" + inkscape:transform-center-y="-902.21965" + inkscape:transform-center-x="547.62857" + d="m -555.89,136.67 a 1.888,3.5004 58.81 0 0 -5.5733,4.0513 l 33.631,55.29 a 1.888,3.5004 58.81 1 0 5.9832,-3.6326 l -33.631,-55.29 a 1.888,3.5004 58.81 0 0 -0.4099,-0.4191 z" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path5813" /> + <path + inkscape:connector-curvature="0" + inkscape:transform-center-y="-946.46289" + inkscape:transform-center-x="467.01752" + d="m -472.63,91.3 a 1.888,3.5004 63.803 0 0 -5.9048,3.5509 l 28.69,58.008 a 1.888,3.5004 63.803 1 0 6.2766,-3.098 l -28.69,-58.007 a 1.888,3.5004 63.803 0 0 -0.3719,-0.4531 z" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path5815" /> + <path + inkscape:connector-curvature="0" + inkscape:transform-center-y="-976.67475" + inkscape:transform-center-x="400.00472" + d="m -403.43,60.358 a 1.888,3.5004 67.795 0 0 -6.1376,3.1313 l 24.583,59.864 a 1.888,3.5004 67.795 1 0 6.4771,-2.6536 l -24.583,-59.864 a 1.888,3.5004 67.795 0 0 -0.3394,-0.4779 z" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path5817" /> + <path + inkscape:connector-curvature="0" + inkscape:transform-center-y="-1027.0199" + inkscape:transform-center-x="243.16165" + d="m -241.53,8.9388 a 1.888,3.5004 76.746 0 0 -6.5501,2.138 l 14.969,62.96 a 1.888,3.5004 76.746 1 0 6.811,-1.6135 l -14.97,-62.961 a 1.888,3.5004 76.746 0 0 -0.2609,-0.5249 z" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path5819" /> + <path + inkscape:connector-curvature="0" + inkscape:transform-center-y="-1040.3554" + inkscape:transform-center-x="177.64633" + d="m -173.93,-4.6054 a 1.888,3.5004 80.377 0 0 -6.6723,1.719 l 10.952,63.782 a 1.888,3.5004 80.377 1 0 6.8996,-1.179 l -10.952,-63.782 a 1.888,3.5004 80.377 0 0 -0.2272,-0.5404 z" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path5821" /> + <path + inkscape:connector-curvature="0" + inkscape:transform-center-y="-1049.0131" + inkscape:transform-center-x="116.05553" + d="m -110.39,-13.338 a 1.888,3.5004 83.754 0 0 -6.762,1.323 l 7.1761,64.316 a 1.888,3.5004 83.754 1 0 6.9571,-0.7705 l -7.1762,-64.316 a 1.888,3.5004 83.754 0 0 -0.1949,-0.5529 z" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path5823" /> + <path + inkscape:connector-curvature="0" + inkscape:transform-center-y="-1053.7903" + inkscape:transform-center-x="58.509766" + d="m -51.038,-18.083 a 1.888,3.5004 86.889 0 0 -6.8243,0.9512 l 3.6479,64.612 a 1.888,3.5004 86.889 1 0 6.9888,-0.3889 l -3.6479,-64.612 a 1.888,3.5004 86.889 0 0 -0.1645,-0.5627 z" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path5825" /> + <path + d="m -1090.6,-131.14 c -65.98,0 -119.09,53.114 -119.09,119.09 v 1374.5 c 0,65.979 53.114,119.09 119.09,119.09 h 665.31 c 29.008,0 39.174,-3.9241 56.5,-21.25 l 746.08,-745.9 c 23.302,-23.302 25.781,-31.589 25.781,-62.469 v -663.88 c 0,-65.979 -53.114,-119.09 -119.09,-119.09 z" + inkscape:connector-curvature="0" + style="fill:url(#linearGradient10503)" + sodipodi:nodetypes="sssssssssss" + id="path6078" /> + </g> +</svg> diff -r 2b00f90c6888 -r d5b2369a103f svghmi/widgets_common.ysl2 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svghmi/widgets_common.ysl2 Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,413 @@ +// widgets_common.ysl2 + +in xsl decl labels(*ptr, name="defs_by_labels") alias call-template { + with "hmi_element", "$hmi_element"; + with "labels"{text *ptr}; + content; +}; + +decl optional_labels(*ptr) alias - { + /* TODO add some per label xslt variable to check if exist */ + labels(*ptr){ + with "mandatory","'no'"; + content; + } +}; + +decl activable_labels(*ptr) alias - { + optional_labels(*ptr) { + with "subelements","'active inactive'"; + content; + } +}; + +template "svg:*", mode="hmi_widgets" { + const "widget", "func:widget(@id)"; + const "eltid","@id"; + const "args" foreach "$widget/arg" > "«func:escape_quotes(@value)»"`if "position()!=last()" > ,` + const "indexes" foreach "$widget/path" { + choose { + when "not(@index)" { + choose { + when "not(@type)" { + warning > Widget «$widget/@type» id="«$eltid»" : No match for path "«@value»" in HMI tree + > undefined + } + when "@type = 'PAGE_LOCAL'" + > "«@value»" + when "@type = 'HMI_LOCAL'" + > hmi_local_index("«@value»") + otherwise + error > Internal error while processing widget's non indexed HMI tree path : unknown type + } + } + otherwise { + > «@index» + } + } + if "position()!=last()" > , + } + + const "minmaxes" foreach "$widget/path" { + choose { + when "@min and @max" + > [«@min»,«@max»] + otherwise + > undefined + } + if "position()!=last()" > , + } + + | "«@id»": new «$widget/@type»Widget ("«@id»",[«$args»],[«$indexes»],[«$minmaxes»],{ + apply "$widget", mode="widget_defs" with "hmi_element","."; + | })`if "position()!=last()" > ,` +} + +emit "preamble:local-variable-indexes" { + || + + let hmi_locals = {}; + var last_remote_index = hmitree_types.length - 1; + var next_available_index = hmitree_types.length; + let cookies = new Map(document.cookie.split("; ").map(s=>s.split("="))); + + const local_defaults = { + || + foreach "$parsed_widgets/widget[starts-with(@type,'VarInit')]"{ + if "count(path) != 1" error > VarInit «@id» must have only one variable given. + if "path/@type != 'PAGE_LOCAL' and path/@type != 'HMI_LOCAL'" error > VarInit «@id» only applies to HMI variable. + > "«path/@value»": + choose { + when "@type = 'VarInitPersistent'" > cookies.has("«path/@value»")?cookies.get("«path/@value»"):«arg[1]/@value» + otherwise > «arg[1]/@value» + } + > \n + if "position()!=last()" > , + } + || + }; + + const persistent_locals = new Set([ + || + foreach "$parsed_widgets/widget[@type='VarInitPersistent']"{ + | "«path/@value»"`if "position()!=last()" > ,` + } + || + ]); + var persistent_indexes = new Map(); + var cache = hmitree_types.map(_ignored => undefined); + var updates = new Map(); + + function page_local_index(varname, pagename){ + let pagevars = hmi_locals[pagename]; + let new_index; + if(pagevars == undefined){ + new_index = next_available_index++; + hmi_locals[pagename] = {[varname]:new_index} + } else { + let result = pagevars[varname]; + if(result != undefined) { + return result; + } + + new_index = next_available_index++; + pagevars[varname] = new_index; + } + let defaultval = local_defaults[varname]; + if(defaultval != undefined) { + cache[new_index] = defaultval; + updates.set(new_index, defaultval); + if(persistent_locals.has(varname)) + persistent_indexes.set(new_index, varname); + } + return new_index; + } + + function hmi_local_index(varname){ + return page_local_index(varname, "HMI_LOCAL"); + } + || +} + +emit "preamble:widget-base-class" { + || + var pending_widget_animates = []; + + class Widget { + offset = 0; + frequency = 10; /* FIXME arbitrary default max freq. Obtain from config ? */ + unsubscribable = false; + pending_animate = false; + + constructor(elt_id,args,indexes,minmaxes,members){ + this.element_id = elt_id; + this.element = id(elt_id); + this.args = args; + this.indexes = indexes; + this.minmaxes = minmaxes; + Object.keys(members).forEach(prop => this[prop]=members[prop]); + this.lastapply = indexes.map(() => undefined); + this.inhibit = indexes.map(() => undefined); + this.pending = indexes.map(() => undefined); + this.bound_unhinibit = this.unhinibit.bind(this); + } + + unsub(){ + /* remove subsribers */ + if(!this.unsubscribable) + for(let i = 0; i < this.indexes.length; i++) { + /* flush updates pending because of inhibition */ + let inhibition = this.inhibit[i]; + if(inhibition != undefined){ + clearTimeout(inhibition); + this.lastapply[i] = undefined; + this.unhinibit(i); + } + let index = this.indexes[i]; + if(this.relativeness[i]) + index += this.offset; + subscribers(index).delete(this); + } + this.offset = 0; + this.relativeness = undefined; + } + + sub(new_offset=0, relativeness, container_id){ + this.offset = new_offset; + this.relativeness = relativeness; + this.container_id = container_id ; + /* add this's subsribers */ + if(!this.unsubscribable) + for(let i = 0; i < this.indexes.length; i++) { + let index = this.get_variable_index(i); + if(index == undefined) continue; + subscribers(index).add(this); + } + need_cache_apply.push(this); + } + + apply_cache() { + if(!this.unsubscribable) for(let index in this.indexes){ + /* dispatch current cache in newly opened page widgets */ + let realindex = this.get_variable_index(index); + if(realindex == undefined) continue; + let cached_val = cache[realindex]; + if(cached_val != undefined) + this._dispatch(cached_val, cached_val, index); + } + } + + get_variable_index(varnum) { + let index = this.indexes[varnum]; + if(typeof(index) == "string"){ + index = page_local_index(index, this.container_id); + } else { + if(this.relativeness[varnum]){ + index += this.offset; + } + } + return index; + } + + overshot(new_val, max) { + } + + undershot(new_val, min) { + } + + clip_min_max(index, new_val) { + let minmax = this.minmaxes[index]; + if(minmax !== undefined && typeof new_val == "number") { + let [min,max] = minmax; + if(new_val < min){ + this.undershot(new_val, min); + return min; + } + if(new_val > max){ + this.overshot(new_val, max); + return max; + } + } + return new_val; + } + + change_hmi_value(index, opstr) { + let realindex = this.get_variable_index(index); + if(realindex == undefined) return undefined; + let old_val = cache[realindex]; + let new_val = eval_operation_string(old_val, opstr); + new_val = this.clip_min_max(index, new_val); + return apply_hmi_value(realindex, new_val); + } + + _apply_hmi_value(index, new_val) { + let realindex = this.get_variable_index(index); + if(realindex == undefined) return undefined; + new_val = this.clip_min_max(index, new_val); + return apply_hmi_value(realindex, new_val); + } + + unhinibit(index){ + this.inhibit[index] = undefined; + let new_val = this.pending[index]; + this.pending[index] = undefined; + return this.apply_hmi_value(index, new_val); + } + + apply_hmi_value(index, new_val) { + if(this.inhibit[index] == undefined){ + let now = Date.now(); + let min_interval = 1000/this.frequency; + let lastapply = this.lastapply[index]; + if(lastapply == undefined || now > lastapply + min_interval){ + this.lastapply[index] = now; + return this._apply_hmi_value(index, new_val); + } + else { + let elapsed = now - lastapply; + this.pending[index] = new_val; + this.inhibit[index] = setTimeout(this.bound_unhinibit, min_interval - elapsed, index); + } + } + else { + this.pending[index] = new_val; + return new_val; + } + } + + new_hmi_value(index, value, oldval) { + // TODO avoid searching, store index at sub() + for(let i = 0; i < this.indexes.length; i++) { + let refindex = this.get_variable_index(i); + if(refindex == undefined) continue; + + if(index == refindex) { + this._dispatch(value, oldval, i); + break; + } + } + } + + _dispatch(value, oldval, varnum) { + let dispatch = this.dispatch; + if(dispatch != undefined){ + try { + dispatch.call(this, value, oldval, varnum); + } catch(err) { + console.log(err); + } + } + } + + _animate(){ + this.animate(); + this.pending_animate = false; + } + + request_animate(){ + if(!this.pending_animate){ + pending_widget_animates.push(this); + this.pending_animate = true; + requestHMIAnimation(); + } + + } + + activate_activable(eltsub) { + eltsub.inactive.style.display = "none"; + eltsub.active.style.display = ""; + } + + inactivate_activable(eltsub) { + eltsub.active.style.display = "none"; + eltsub.inactive.style.display = ""; + } + } + || +} + +const "excluded_types", "str:split('Page VarInit VarInitPersistent')"; + +// Key to filter unique types +key "TypesKey", "widget", "@type"; + +emit "declarations:hmi-classes" { + const "used_widget_types", """$parsed_widgets/widget[ + generate-id() = generate-id(key('TypesKey', @type)) and + not(@type = $excluded_types)]"""; + apply "$used_widget_types", mode="widget_class"; +} + +template "widget", mode="widget_class" +|| +class «@type»Widget extends Widget{ + /* empty class, as «@type» widget didn't provide any */ +} +|| + +const "included_ids","$parsed_widgets/widget[not(@type = $excluded_types) and not(@id = $discardable_elements/@id)]/@id"; +const "hmi_widgets","$hmi_elements[@id = $included_ids]"; +const "result_widgets","$result_svg_ns//*[@id = $hmi_widgets/@id]"; + +emit "declarations:hmi-elements" { + | var hmi_widgets = { + apply "$hmi_widgets", mode="hmi_widgets"; + | } +} + +function "defs_by_labels" { + param "labels","''"; + param "mandatory","'yes'"; + param "subelements","/.."; + param "hmi_element"; + const "widget_type","@type"; + foreach "str:split($labels)" { + const "name","."; + const "elt","$result_widgets[@id = $hmi_element/@id]//*[@inkscape:label=$name][1]"; + choose { + when "not($elt/@id)" { + if "$mandatory='yes'" { + error > «$widget_type» widget must have a «$name» element + } + // otherwise produce nothing + } + otherwise { + | «$name»_elt: id("«$elt/@id»"), + if "$subelements" { + | «$name»_sub: { + foreach "str:split($subelements)" { + const "subname","."; + const "subelt","$elt/*[@inkscape:label=$subname][1]"; + choose { + when "not($subelt/@id)" { + if "$mandatory='yes'" { + error > «$widget_type» widget must have a «$name»/«$subname» element + } + | /* missing «$name»/«$subname» element */ + } + otherwise { + | "«$subname»": id("«$subelt/@id»")`if "position()!=last()" > ,` + } + } + } + | }, + } + } + } + } +} + +def "func:escape_quotes" { + param "txt"; + // have to use a python string to enter escaped quote + // const "frstln", "string-length($frst)"; + choose { + when !"contains($txt,'\"')"! { + result !"concat(substring-before($txt,'\"'),'\\\"',func:escape_quotes(substring-after($txt,'\"')))"!; + } + otherwise { + result "$txt"; + } + } +} + diff -r 2b00f90c6888 -r d5b2369a103f targets/Linux/plc_Linux_main.c --- a/targets/Linux/plc_Linux_main.c Fri Apr 09 09:45:28 2021 +0200 +++ b/targets/Linux/plc_Linux_main.c Fri Apr 09 09:47:06 2021 +0200 @@ -235,3 +235,18 @@ { pthread_mutex_lock(&python_mutex); } + +static pthread_cond_t svghmi_send_WakeCond = PTHREAD_COND_INITIALIZER; +static pthread_mutex_t svghmi_send_WakeCondLock = PTHREAD_MUTEX_INITIALIZER; + +void SVGHMI_SuspendFromPythonThread(void) +{ + pthread_mutex_lock(&svghmi_send_WakeCondLock); + pthread_cond_wait(&svghmi_send_WakeCond, &svghmi_send_WakeCondLock); + pthread_mutex_unlock(&svghmi_send_WakeCondLock); +} + +void SVGHMI_WakeupFromRTThread(void) +{ + pthread_cond_signal(&svghmi_send_WakeCond); +} diff -r 2b00f90c6888 -r d5b2369a103f targets/Xenomai/plc_Xenomai_main.c --- a/targets/Xenomai/plc_Xenomai_main.c Fri Apr 09 09:45:28 2021 +0200 +++ b/targets/Xenomai/plc_Xenomai_main.c Fri Apr 09 09:47:06 2021 +0200 @@ -26,6 +26,8 @@ #define PLC_STATE_WAITDEBUG_PIPE_CREATED 64 #define PLC_STATE_WAITPYTHON_FILE_OPENED 128 #define PLC_STATE_WAITPYTHON_PIPE_CREATED 256 +#define PLC_STATE_SVGHMI_FILE_OPENED 512 +#define PLC_STATE_SVGHMI_PIPE_CREATED 1024 #define WAITDEBUG_PIPE_DEVICE "/dev/rtp0" #define WAITDEBUG_PIPE_MINOR 0 @@ -35,6 +37,8 @@ #define WAITPYTHON_PIPE_MINOR 2 #define PYTHON_PIPE_DEVICE "/dev/rtp3" #define PYTHON_PIPE_MINOR 3 +#define SVGHMI_PIPE_DEVICE "/dev/rtp4" +#define SVGHMI_PIPE_MINOR 4 #define PIPE_SIZE 1 // rt-pipes commands @@ -68,10 +72,12 @@ RT_PIPE WaitPython_pipe; RT_PIPE Debug_pipe; RT_PIPE Python_pipe; +RT_PIPE svghmi_pipe; int WaitDebug_pipe_fd; int WaitPython_pipe_fd; int Debug_pipe_fd; int Python_pipe_fd; +int svghmi_pipe_fd; int PLC_shutdown = 0; @@ -114,6 +120,16 @@ PLC_state &= ~PLC_STATE_TASK_CREATED; } + if (PLC_state & PLC_STATE_SVGHMI_PIPE_CREATED) { + rt_pipe_delete(&svghmi_pipe); + PLC_state &= ~PLC_STATE_SVGHMI_PIPE_CREATED; + } + + if (PLC_state & PLC_STATE_SVGHMI_FILE_OPENED) { + close(svghmi_pipe_fd); + PLC_state &= ~PLC_STATE_SVGHMI_FILE_OPENED; + } + if (PLC_state & PLC_STATE_WAITDEBUG_PIPE_CREATED) { rt_pipe_delete(&WaitDebug_pipe); PLC_state &= ~PLC_STATE_WAITDEBUG_PIPE_CREATED; @@ -240,6 +256,16 @@ _startPLCLog(FO WAITPYTHON_PIPE_DEVICE); PLC_state |= PLC_STATE_WAITPYTHON_FILE_OPENED; + /* create svghmi_pipe */ + if(rt_pipe_create(&svghmi_pipe, "svghmi_pipe", SVGHMI_PIPE_MINOR, PIPE_SIZE) < 0) + _startPLCLog(FO "svghmi_pipe real-time end"); + PLC_state |= PLC_STATE_SVGHMI_PIPE_CREATED; + + /* open svghmi_pipe*/ + if((svghmi_pipe_fd = open(SVGHMI_PIPE_DEVICE, O_RDWR)) == -1) + _startPLCLog(FO SVGHMI_PIPE_DEVICE); + PLC_state |= PLC_STATE_SVGHMI_FILE_OPENED; + /*** create PLC task ***/ if(rt_task_create(&PLC_task, "PLC_task", 0, 50, T_JOINABLE)) _startPLCLog("Failed creating PLC task"); @@ -395,6 +421,18 @@ } /* as plc does not wait for lock. */ } +void SVGHMI_SuspendFromPythonThread(void) +{ + char cmd = 1; /*whatever*/ + read(svghmi_pipe_fd, &cmd, sizeof(cmd)); +} + +void SVGHMI_WakeupFromRTThread(void) +{ + char cmd; + rt_pipe_write(&svghmi_pipe, &cmd, sizeof(cmd), P_NORMAL); +} + #ifndef HAVE_RETAIN int CheckRetainBuffer(void) { diff -r 2b00f90c6888 -r d5b2369a103f tests/svghmi/beremiz.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/svghmi/beremiz.xml Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,5 @@ +<?xml version='1.0' encoding='utf-8'?> +<BeremizRoot xmlns:xsd="http://www.w3.org/2001/XMLSchema" URI_location="PYRO://127.0.0.1:61284"> + <TargetType/> + <Libraries Enable_SVGHMI_Library="true"/> +</BeremizRoot> diff -r 2b00f90c6888 -r d5b2369a103f tests/svghmi/plc.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/svghmi/plc.xml Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,922 @@ +<?xml version='1.0' encoding='utf-8'?> +<project xmlns:ns1="http://www.plcopen.org/xml/tc6_0201" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.plcopen.org/xml/tc6_0201"> + <fileHeader companyName="Unknown" productName="Unnamed" productVersion="1" creationDateTime="2019-08-06T14:23:42"/> + <contentHeader name="Unnamed" modificationDateTime="2020-12-01T09:52:25"> + <coordinateInfo> + <fbd> + <scaling x="5" y="5"/> + </fbd> + <ld> + <scaling x="0" y="0"/> + </ld> + <sfc> + <scaling x="0" y="0"/> + </sfc> + </coordinateInfo> + </contentHeader> + <types> + <dataTypes/> + <pous> + <pou name="MainStuff" pouType="program"> + <interface> + <localVars> + <variable name="TargetPressure"> + <type> + <derived name="HMI_INT"/> + </type> + </variable> + <variable name="selection"> + <type> + <derived name="HMI_INT"/> + </type> + </variable> + <variable name="Pump0"> + <type> + <derived name="PumpControl"/> + </type> + </variable> + <variable name="Pump1"> + <type> + <derived name="PumpControl"/> + </type> + </variable> + <variable name="Pump2"> + <type> + <derived name="PumpControl"/> + </type> + </variable> + <variable name="Pump3"> + <type> + <derived name="PumpControl"/> + </type> + </variable> + <variable name="Pump4"> + <type> + <derived name="PumpControl"/> + </type> + </variable> + <variable name="Pump5"> + <type> + <derived name="PumpControl"/> + </type> + </variable> + <variable name="Pump6"> + <type> + <derived name="PumpControl"/> + </type> + </variable> + <variable name="Pump7"> + <type> + <derived name="PumpControl"/> + </type> + </variable> + </localVars> + </interface> + <body> + <FBD> + <block localId="4" typeName="PumpControl" instanceName="Pump0" executionOrderId="0" height="40" width="127"> + <position x="595" y="50"/> + <inputVariables> + <variable formalParameter="TargetPressure"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="5"> + <position x="595" y="80"/> + <position x="570" y="80"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables/> + </block> + <inVariable localId="5" executionOrderId="0" height="30" width="125" negated="false"> + <position x="445" y="65"/> + <connectionPointOut> + <relPosition x="125" y="15"/> + </connectionPointOut> + <expression>TargetPressure</expression> + </inVariable> + <block localId="1" typeName="PumpControl" instanceName="Pump1" executionOrderId="0" height="40" width="127"> + <position x="595" y="180"/> + <inputVariables> + <variable formalParameter="TargetPressure"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="5"> + <position x="595" y="210"/> + <position x="582" y="210"/> + <position x="582" y="80"/> + <position x="570" y="80"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables/> + </block> + <block localId="2" typeName="PumpControl" instanceName="Pump2" executionOrderId="0" height="40" width="127"> + <position x="595" y="110"/> + <inputVariables> + <variable formalParameter="TargetPressure"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="5"> + <position x="595" y="140"/> + <position x="582" y="140"/> + <position x="582" y="80"/> + <position x="570" y="80"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables/> + </block> + <block localId="3" typeName="PumpControl" instanceName="Pump3" executionOrderId="0" height="40" width="127"> + <position x="595" y="245"/> + <inputVariables> + <variable formalParameter="TargetPressure"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="5"> + <position x="595" y="275"/> + <position x="582" y="275"/> + <position x="582" y="80"/> + <position x="570" y="80"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables/> + </block> + <block localId="6" typeName="PumpControl" instanceName="Pump4" executionOrderId="0" height="40" width="127"> + <position x="595" y="315"/> + <inputVariables> + <variable formalParameter="TargetPressure"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="5"> + <position x="595" y="345"/> + <position x="582" y="345"/> + <position x="582" y="80"/> + <position x="570" y="80"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables/> + </block> + <block localId="7" typeName="PumpControl" instanceName="Pump5" executionOrderId="0" height="40" width="127"> + <position x="595" y="395"/> + <inputVariables> + <variable formalParameter="TargetPressure"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="5"> + <position x="595" y="425"/> + <position x="582" y="425"/> + <position x="582" y="80"/> + <position x="570" y="80"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables/> + </block> + <block localId="8" typeName="PumpControl" instanceName="Pump6" executionOrderId="0" height="40" width="127"> + <position x="595" y="475"/> + <inputVariables> + <variable formalParameter="TargetPressure"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="5"> + <position x="595" y="505"/> + <position x="582" y="505"/> + <position x="582" y="80"/> + <position x="570" y="80"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables/> + </block> + <block localId="9" typeName="PumpControl" instanceName="Pump7" executionOrderId="0" height="40" width="127"> + <position x="595" y="545"/> + <inputVariables> + <variable formalParameter="TargetPressure"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="5"> + <position x="595" y="575"/> + <position x="582" y="575"/> + <position x="582" y="80"/> + <position x="570" y="80"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables/> + </block> + </FBD> + </body> + </pou> + <pou name="PumpControl" pouType="functionBlock"> + <interface> + <localVars> + <variable name="Pump"> + <type> + <derived name="HMI_NODE"/> + </type> + </variable> + <variable name="Pressure"> + <type> + <derived name="HMI_INT"/> + </type> + </variable> + </localVars> + <inputVars> + <variable name="TargetPressure"> + <type> + <INT/> + </type> + </variable> + </inputVars> + <localVars> + <variable name="Sloth"> + <type> + <derived name="HMI_INT"/> + </type> + </variable> + <variable name="boolout"> + <type> + <derived name="HMI_BOOL"/> + </type> + </variable> + <variable name="boolin"> + <type> + <derived name="HMI_BOOL"/> + </type> + <initialValue> + <simpleValue value="True"/> + </initialValue> + </variable> + <variable name="strout"> + <type> + <derived name="HMI_STRING"/> + </type> + </variable> + <variable name="strin"> + <type> + <derived name="HMI_STRING"/> + </type> + <initialValue> + <simpleValue value="blup"/> + </initialValue> + </variable> + <variable name="floating"> + <type> + <derived name="HMI_REAL"/> + </type> + </variable> + </localVars> + </interface> + <body> + <FBD> + <inVariable localId="5" executionOrderId="0" height="30" width="125" negated="false"> + <position x="150" y="100"/> + <connectionPointOut> + <relPosition x="125" y="15"/> + </connectionPointOut> + <expression>TargetPressure</expression> + </inVariable> + <inOutVariable localId="4" executionOrderId="0" height="30" width="60" negatedOut="false" negatedIn="false"> + <position x="510" y="80"/> + <connectionPointIn> + <relPosition x="0" y="15"/> + <connection refLocalId="6" formalParameter="OUT"> + <position x="510" y="95"/> + <position x="470" y="95"/> + </connection> + </connectionPointIn> + <connectionPointOut> + <relPosition x="60" y="15"/> + </connectionPointOut> + <expression>Sloth</expression> + </inOutVariable> + <block localId="6" typeName="ADD" executionOrderId="0" height="60" width="65"> + <position x="405" y="65"/> + <inputVariables> + <variable formalParameter="IN1"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="4"> + <position x="405" y="95"/> + <position x="385" y="95"/> + <position x="385" y="50"/> + <position x="580" y="50"/> + <position x="580" y="95"/> + <position x="570" y="95"/> + </connection> + </connectionPointIn> + </variable> + <variable formalParameter="IN2"> + <connectionPointIn> + <relPosition x="0" y="50"/> + <connection refLocalId="7" formalParameter="OUT"> + <position x="405" y="115"/> + <position x="360" y="115"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables> + <variable formalParameter="OUT"> + <connectionPointOut> + <relPosition x="65" y="30"/> + </connectionPointOut> + </variable> + </outputVariables> + </block> + <inVariable localId="1" executionOrderId="0" height="30" width="75" negated="false"> + <position x="150" y="135"/> + <connectionPointOut> + <relPosition x="75" y="15"/> + </connectionPointOut> + <expression>Pressure</expression> + </inVariable> + <block localId="7" typeName="SUB" executionOrderId="0" height="60" width="65"> + <position x="295" y="85"/> + <inputVariables> + <variable formalParameter="IN1"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="5"> + <position x="295" y="115"/> + <position x="275" y="115"/> + </connection> + </connectionPointIn> + </variable> + <variable formalParameter="IN2"> + <connectionPointIn> + <relPosition x="0" y="50"/> + <connection refLocalId="1"> + <position x="295" y="135"/> + <position x="285" y="135"/> + <position x="285" y="150"/> + <position x="225" y="150"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables> + <variable formalParameter="OUT"> + <connectionPointOut> + <relPosition x="65" y="30"/> + </connectionPointOut> + </variable> + </outputVariables> + </block> + <inVariable localId="2" executionOrderId="0" height="30" width="60" negated="false"> + <position x="240" y="190"/> + <connectionPointOut> + <relPosition x="60" y="15"/> + </connectionPointOut> + <expression>Sloth</expression> + </inVariable> + <outVariable localId="3" executionOrderId="0" height="30" width="75" negated="false"> + <position x="435" y="205"/> + <connectionPointIn> + <relPosition x="0" y="15"/> + <connection refLocalId="8" formalParameter="OUT"> + <position x="435" y="220"/> + <position x="410" y="220"/> + </connection> + </connectionPointIn> + <expression>Pressure</expression> + </outVariable> + <block localId="8" typeName="DIV" executionOrderId="0" height="60" width="65"> + <position x="345" y="190"/> + <inputVariables> + <variable formalParameter="IN1"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="2"> + <position x="345" y="220"/> + <position x="335" y="220"/> + <position x="335" y="205"/> + <position x="300" y="205"/> + </connection> + </connectionPointIn> + </variable> + <variable formalParameter="IN2"> + <connectionPointIn> + <relPosition x="0" y="50"/> + <connection refLocalId="9"> + <position x="345" y="240"/> + <position x="300" y="240"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables> + <variable formalParameter="OUT"> + <connectionPointOut> + <relPosition x="65" y="30"/> + </connectionPointOut> + </variable> + </outputVariables> + </block> + <inVariable localId="9" executionOrderId="0" height="30" width="60" negated="false"> + <position x="240" y="225"/> + <connectionPointOut> + <relPosition x="60" y="15"/> + </connectionPointOut> + <expression>100</expression> + </inVariable> + <block localId="10" typeName="CONCAT" executionOrderId="0" height="60" width="65"> + <position x="360" y="345"/> + <inputVariables> + <variable formalParameter="IN1"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="13" formalParameter="OUT"> + <position x="360" y="375"/> + <position x="330" y="375"/> + <position x="330" y="332"/> + <position x="440" y="332"/> + <position x="440" y="300"/> + <position x="430" y="300"/> + </connection> + </connectionPointIn> + </variable> + <variable formalParameter="IN2"> + <connectionPointIn> + <relPosition x="0" y="50"/> + <connection refLocalId="14"> + <position x="360" y="395"/> + <position x="322" y="395"/> + <position x="322" y="400"/> + <position x="285" y="400"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables> + <variable formalParameter="OUT"> + <connectionPointOut> + <relPosition x="65" y="30"/> + </connectionPointOut> + </variable> + </outputVariables> + </block> + <outVariable localId="11" executionOrderId="0" height="30" width="58" negated="false"> + <position x="495" y="355"/> + <connectionPointIn> + <relPosition x="0" y="15"/> + <connection refLocalId="10" formalParameter="OUT"> + <position x="495" y="370"/> + <position x="450" y="370"/> + <position x="450" y="375"/> + <position x="425" y="375"/> + </connection> + </connectionPointIn> + <expression>strout</expression> + </outVariable> + <inVariable localId="12" executionOrderId="0" height="30" width="125" negated="false"> + <position x="145" y="285"/> + <connectionPointOut> + <relPosition x="125" y="15"/> + </connectionPointOut> + <expression>TargetPressure</expression> + </inVariable> + <block localId="13" typeName="INT_TO_STRING" executionOrderId="0" height="40" width="115"> + <position x="315" y="270"/> + <inputVariables> + <variable formalParameter="IN"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="12"> + <position x="315" y="300"/> + <position x="270" y="300"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables> + <variable formalParameter="OUT"> + <connectionPointOut> + <relPosition x="115" y="30"/> + </connectionPointOut> + </variable> + </outputVariables> + </block> + <inVariable localId="14" executionOrderId="0" height="30" width="50" negated="false"> + <position x="235" y="385"/> + <connectionPointOut> + <relPosition x="50" y="15"/> + </connectionPointOut> + <expression>strin</expression> + </inVariable> + <inVariable localId="15" executionOrderId="0" height="30" width="60" negated="false"> + <position x="690" y="210"/> + <connectionPointOut> + <relPosition x="60" y="15"/> + </connectionPointOut> + <expression>boolin</expression> + </inVariable> + <outVariable localId="16" executionOrderId="0" height="30" width="70" negated="false"> + <position x="915" y="240"/> + <connectionPointIn> + <relPosition x="0" y="15"/> + <connection refLocalId="17" formalParameter="OUT"> + <position x="915" y="255"/> + <position x="880" y="255"/> + </connection> + </connectionPointIn> + <expression>boolout</expression> + </outVariable> + <block localId="17" typeName="AND" executionOrderId="0" height="60" width="65"> + <position x="815" y="225"/> + <inputVariables> + <variable formalParameter="IN1"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="15"> + <position x="815" y="255"/> + <position x="762" y="255"/> + <position x="762" y="225"/> + <position x="750" y="225"/> + </connection> + </connectionPointIn> + </variable> + <variable formalParameter="IN2"> + <connectionPointIn> + <relPosition x="0" y="50"/> + <connection refLocalId="21" formalParameter="OUT"> + <position x="815" y="275"/> + <position x="750" y="275"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables> + <variable formalParameter="OUT"> + <connectionPointOut> + <relPosition x="65" y="30"/> + </connectionPointOut> + </variable> + </outputVariables> + </block> + <inVariable localId="18" executionOrderId="0" height="30" width="75" negated="false"> + <position x="455" y="260"/> + <connectionPointOut> + <relPosition x="75" y="15"/> + </connectionPointOut> + <expression>Pressure</expression> + </inVariable> + <block localId="19" typeName="MOD" executionOrderId="0" height="60" width="65"> + <position x="585" y="245"/> + <inputVariables> + <variable formalParameter="IN1"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="18"> + <position x="585" y="275"/> + <position x="530" y="275"/> + </connection> + </connectionPointIn> + </variable> + <variable formalParameter="IN2"> + <connectionPointIn> + <relPosition x="0" y="50"/> + <connection refLocalId="20"> + <position x="585" y="295"/> + <position x="555" y="295"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables> + <variable formalParameter="OUT"> + <connectionPointOut> + <relPosition x="65" y="30"/> + </connectionPointOut> + </variable> + </outputVariables> + </block> + <inVariable localId="20" executionOrderId="0" height="30" width="20" negated="false"> + <position x="535" y="280"/> + <connectionPointOut> + <relPosition x="20" y="15"/> + </connectionPointOut> + <expression>2</expression> + </inVariable> + <block localId="21" typeName="EQ" executionOrderId="0" height="60" width="65"> + <position x="685" y="245"/> + <inputVariables> + <variable formalParameter="IN1"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="19" formalParameter="OUT"> + <position x="685" y="275"/> + <position x="650" y="275"/> + </connection> + </connectionPointIn> + </variable> + <variable formalParameter="IN2"> + <connectionPointIn> + <relPosition x="0" y="50"/> + <connection refLocalId="22"> + <position x="685" y="295"/> + <position x="670" y="295"/> + <position x="670" y="330"/> + <position x="650" y="330"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables> + <variable formalParameter="OUT"> + <connectionPointOut> + <relPosition x="65" y="30"/> + </connectionPointOut> + </variable> + </outputVariables> + </block> + <inVariable localId="22" executionOrderId="0" height="30" width="20" negated="false"> + <position x="630" y="315"/> + <connectionPointOut> + <relPosition x="20" y="15"/> + </connectionPointOut> + <expression>0</expression> + </inVariable> + <outVariable localId="23" executionOrderId="0" height="25" width="75" negated="false"> + <position x="935" y="120"/> + <connectionPointIn> + <relPosition x="0" y="10"/> + <connection refLocalId="25" formalParameter="OUT"> + <position x="935" y="130"/> + <position x="922" y="130"/> + <position x="922" y="110"/> + <position x="910" y="110"/> + </connection> + </connectionPointIn> + <expression>floating</expression> + </outVariable> + <inVariable localId="24" executionOrderId="0" height="30" width="60" negated="false"> + <position x="615" y="65"/> + <connectionPointOut> + <relPosition x="60" y="15"/> + </connectionPointOut> + <expression>Sloth</expression> + </inVariable> + <block localId="25" typeName="DIV" executionOrderId="0" height="60" width="65"> + <position x="845" y="80"/> + <inputVariables> + <variable formalParameter="IN1"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="27" formalParameter="OUT"> + <position x="845" y="110"/> + <position x="822" y="110"/> + <position x="822" y="80"/> + <position x="800" y="80"/> + </connection> + </connectionPointIn> + </variable> + <variable formalParameter="IN2"> + <connectionPointIn> + <relPosition x="0" y="50"/> + <connection refLocalId="26"> + <position x="845" y="130"/> + <position x="810" y="130"/> + <position x="810" y="135"/> + <position x="800" y="135"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables> + <variable formalParameter="OUT"> + <connectionPointOut> + <relPosition x="65" y="30"/> + </connectionPointOut> + </variable> + </outputVariables> + </block> + <inVariable localId="26" executionOrderId="0" height="30" width="90" negated="false"> + <position x="710" y="120"/> + <connectionPointOut> + <relPosition x="90" y="15"/> + </connectionPointOut> + <expression>REAL#100.0</expression> + </inVariable> + <block localId="27" typeName="INT_TO_REAL" executionOrderId="0" height="40" width="100"> + <position x="700" y="50"/> + <inputVariables> + <variable formalParameter="IN"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="24"> + <position x="700" y="80"/> + <position x="675" y="80"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables> + <variable formalParameter="OUT"> + <connectionPointOut> + <relPosition x="100" y="30"/> + </connectionPointOut> + </variable> + </outputVariables> + </block> + <block localId="28" typeName="EQ" executionOrderId="0" height="60" width="65"> + <position x="410" y="430"/> + <inputVariables> + <variable formalParameter="IN1"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="36"> + <position x="418" y="460"/> + <position x="401" y="460"/> + <position x="401" y="435"/> + <position x="380" y="435"/> + </connection> + </connectionPointIn> + </variable> + <variable formalParameter="IN2"> + <connectionPointIn> + <relPosition x="0" y="50"/> + <connection refLocalId="29"> + <position x="410" y="480"/> + <position x="367" y="480"/> + <position x="367" y="475"/> + <position x="325" y="475"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables> + <variable formalParameter="OUT"> + <connectionPointOut> + <relPosition x="65" y="30"/> + </connectionPointOut> + </variable> + </outputVariables> + </block> + <inVariable localId="29" executionOrderId="0" height="30" width="20" negated="false"> + <position x="305" y="460"/> + <connectionPointOut> + <relPosition x="20" y="15"/> + </connectionPointOut> + <expression>0</expression> + </inVariable> + <inVariable localId="32" executionOrderId="0" height="30" width="20" negated="false"> + <position x="765" y="505"/> + <connectionPointOut> + <relPosition x="20" y="15"/> + </connectionPointOut> + <expression>0</expression> + </inVariable> + <outVariable localId="31" executionOrderId="0" height="30" width="75" negated="false"> + <position x="925" y="460"/> + <connectionPointIn> + <relPosition x="0" y="15"/> + <connection refLocalId="33" formalParameter="OUT"> + <position x="925" y="475"/> + <position x="890" y="475"/> + </connection> + </connectionPointIn> + <expression>Sloth</expression> + </outVariable> + <block localId="33" typeName="MUX" executionOrderId="0" height="80" width="65"> + <position x="825" y="445"/> + <inputVariables> + <variable formalParameter="K"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="34" formalParameter="OUT"> + <position x="825" y="475"/> + <position x="685" y="475"/> + <position x="685" y="465"/> + <position x="675" y="465"/> + </connection> + </connectionPointIn> + </variable> + <variable formalParameter="IN0"> + <connectionPointIn> + <relPosition x="0" y="50"/> + <connection refLocalId="30"> + <position x="825" y="495"/> + <position x="800" y="495"/> + <position x="800" y="485"/> + <position x="790" y="485"/> + </connection> + </connectionPointIn> + </variable> + <variable formalParameter="IN1"> + <connectionPointIn> + <relPosition x="0" y="70"/> + <connection refLocalId="32"> + <position x="825" y="515"/> + <position x="795" y="515"/> + <position x="795" y="520"/> + <position x="785" y="520"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables> + <variable formalParameter="OUT"> + <connectionPointOut> + <relPosition x="65" y="30"/> + </connectionPointOut> + </variable> + </outputVariables> + </block> + <inVariable localId="30" executionOrderId="0" height="30" width="75" negated="false"> + <position x="715" y="470"/> + <connectionPointOut> + <relPosition x="75" y="15"/> + </connectionPointOut> + <expression>Sloth</expression> + </inVariable> + <block localId="34" typeName="BOOL_TO_SINT" executionOrderId="0" height="40" width="110"> + <position x="565" y="435"/> + <inputVariables> + <variable formalParameter="IN"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="28" formalParameter="OUT"> + <position x="565" y="465"/> + <position x="520" y="465"/> + <position x="520" y="460"/> + <position x="475" y="460"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables> + <variable formalParameter="OUT"> + <connectionPointOut> + <relPosition x="110" y="30"/> + </connectionPointOut> + </variable> + </outputVariables> + </block> + <connector name="Connection0" localId="35" height="25" width="125"> + <position x="400" y="140"/> + <connectionPointIn> + <relPosition x="0" y="10"/> + <connection refLocalId="7" formalParameter="OUT"> + <position x="400" y="150"/> + <position x="375" y="150"/> + <position x="375" y="115"/> + <position x="360" y="115"/> + </connection> + </connectionPointIn> + </connector> + <continuation name="Connection0" localId="36" height="25" width="125"> + <position x="255" y="425"/> + <connectionPointOut> + <relPosition x="125" y="10"/> + </connectionPointOut> + </continuation> + </FBD> + </body> + </pou> + </pous> + </types> + <instances> + <configurations> + <configuration name="config"> + <resource name="resource1"> + <task name="task0" priority="0" interval="T#20ms"> + <pouInstance name="instance0" typeName="MainStuff"/> + </task> + </resource> + </configuration> + </configurations> + </instances> +</project> diff -r 2b00f90c6888 -r d5b2369a103f tests/svghmi/py_ext_0@py_ext/baseconfnode.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/svghmi/py_ext_0@py_ext/baseconfnode.xml Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,2 @@ +<?xml version='1.0' encoding='utf-8'?> +<BaseParams xmlns:xsd="http://www.w3.org/2001/XMLSchema" IEC_Channel="1" Name="py_ext_0"/> diff -r 2b00f90c6888 -r d5b2369a103f tests/svghmi/py_ext_0@py_ext/pyfile.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/svghmi/py_ext_0@py_ext/pyfile.xml Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,99 @@ +<?xml version='1.0' encoding='utf-8'?> +<PyFile xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <variables> + <variable name="AlarmNotify" type="HMI_INT"/> + <variable name="SendAlarm" type="HMI_INT" onchange="TriggerAlarm"/> + <variable name="AlarmText" type="HMI_STRING" initial="'POS'"/> + <variable name="AlarmStatus" type="HMI_STRING" initial="'alarm'"/> + </variables> + <globals> + <xhtml:p><![CDATA[ +from twisted.web.resource import Resource +import json, time, random, collections + +Alarms = [] +AlarmIndex = {} +lastid = 0 + +def TriggerAlarm(changed_var_name): + global Alarms, lastid + new_entry = [time.time(), PLCGlobals.AlarmText, PLCGlobals.AlarmStatus, lastid] + Alarms.append(new_entry) + AlarmIndex[lastid] = new_entry + lastid = lastid + 1 + PLCGlobals.AlarmNotify = random.randint(0, 4294967296) + +class AlarmJsonResource(Resource): + def render_GET(self, request): + return '' + + def render_POST(self, request): + newstr = request.content.getvalue() + newdata = json.loads(newstr) + args = newdata[u'args'] + range_feedback = newdata[u'range'] + slider_position = newdata[u'position'] + visible = newdata[u'visible'] + extra = newdata[u'extra'] + options = newdata[u'options'] + + if len(options) == 1 : + action, = options + if action == "action_reset": + del Alarms[:] + AlarmIndex.clear() + elif len(options) == 2 : + action, alarmid = options + if action == "onClick[acknowledge]": + AlarmIndex[int(alarmid)][2] = "ack" + + answer = self.renderTable(range_feedback, slider_position, visible, extra) + janswer = json.dumps(answer) + return janswer + + def renderTable(self, old_range, old_position, visible, extra): + if len(extra) > 0 and extra[0] != "": + fAlarms = [alrm for alrm in Alarms if alrm[1].find(extra[0])!=-1] + else: + fAlarms = Alarms[:] + fAlarms.reverse() + new_range = len(fAlarms) + delta = new_range - visible + new_position = 0 if delta <= 0 else delta if old_position > delta else old_position + new_visible = new_range if delta <= 0 else visible + + visible_alarms = [] + for ts, text, status, alarmid in fAlarms[new_position:new_position + new_visible]: + visible_alarms.append({ + "time": time.ctime(ts), + "text": text, # TODO translate text + "status": status, + "alarmid": alarmid + }) + + return new_range, new_position, visible_alarms + + +]]></xhtml:p> + </globals> + <init> + <xhtml:p><![CDATA[ +]]></xhtml:p> + </init> + <cleanup> + <xhtml:p><![CDATA[ +]]></xhtml:p> + </cleanup> + <start> + <xhtml:p><![CDATA[ + +svghmi_root.putChild("alarms", AlarmJsonResource()) + + +]]></xhtml:p> + </start> + <stop> + <xhtml:p><![CDATA[ +]]></xhtml:p> + </stop> +</PyFile> diff -r 2b00f90c6888 -r d5b2369a103f tests/svghmi/svghmi_0@svghmi/baseconfnode.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/svghmi/svghmi_0@svghmi/baseconfnode.xml Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,2 @@ +<?xml version='1.0' encoding='utf-8'?> +<BaseParams xmlns:xsd="http://www.w3.org/2001/XMLSchema" IEC_Channel="0" Name="svghmi_0"/> diff -r 2b00f90c6888 -r d5b2369a103f tests/svghmi/svghmi_0@svghmi/confnode.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/svghmi/svghmi_0@svghmi/confnode.xml Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,2 @@ +<?xml version='1.0' encoding='utf-8'?> +<SVGHMI xmlns:xsd="http://www.w3.org/2001/XMLSchema" OnWatchdog="echo Watchdog for {name} !" OnStart="chromium http://127.0.0.1:{port}/{name}" OnStop="echo Closing {name}" WatchdogInitial="10" WatchdogInterval="5"/> diff -r 2b00f90c6888 -r d5b2369a103f tests/svghmi/svghmi_0@svghmi/svghmi.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/svghmi/svghmi_0@svghmi/svghmi.svg Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,7364 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:osb="http://www.openswatchbook.org/uri/2009/osb" + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)" + sodipodi:docname="svghmi.svg" + id="hmi0" + version="1.1" + viewBox="0 0 1280 720" + height="720" + width="1280"> + <metadata + id="metadata4542"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title /> + </cc:Work> + </rdf:RDF> + </metadata> + <defs + id="defs2"> + <linearGradient + id="linearGradient34303" + osb:paint="solid"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop34301" /> + </linearGradient> + <linearGradient + id="linearGradient20537" + osb:paint="solid"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop20535" /> + </linearGradient> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker1971" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Lend"> + <path + transform="matrix(-1.1,0,0,-1.1,-1.1,0)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:#ff3000;fill-opacity:1;fill-rule:evenodd;stroke:#ff3000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + id="path1969" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker1656" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Lend"> + <path + transform="matrix(-1.1,0,0,-1.1,-1.1,0)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:#ff3000;fill-opacity:1;fill-rule:evenodd;stroke:#ff3000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + id="path1654" + inkscape:connector-curvature="0" /> + </marker> + <linearGradient + inkscape:collect="always" + id="linearGradient962"> + <stop + style="stop-color:#ff3000;stop-opacity:1;" + offset="0" + id="stop958" /> + <stop + style="stop-color:#0022ff;stop-opacity:1" + offset="1" + id="stop960" /> + </linearGradient> + <marker + inkscape:stockid="Arrow2Lend" + orient="auto" + refY="0" + refX="0" + id="Arrow2Lend" + style="overflow:visible" + inkscape:isstock="true" + inkscape:collect="always"> + <path + inkscape:connector-curvature="0" + id="path895" + style="fill:#ff3000;fill-opacity:1;fill-rule:evenodd;stroke:#ff3000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="matrix(-1.1,0,0,-1.1,-1.1,0)" /> + </marker> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient962" + id="linearGradient964" + x1="113.38908" + y1="-62.210247" + x2="113.38908" + y2="4.0725975" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.5,0,0,0.5,73.144796,-1.4471993)" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:document-units="px" + inkscape:current-layer="hmi0" + showgrid="false" + units="px" + inkscape:zoom="1.1929688" + inkscape:cx="772.0138" + inkscape:cy="-68.272506" + inkscape:window-width="1600" + inkscape:window-height="836" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1" + showguides="true" + inkscape:guide-bbox="true" + inkscape:snap-global="true" + inkscape:snap-bbox="true" + inkscape:bbox-nodes="true" /> + <use + x="0" + y="0" + xlink:href="#g7994" + id="use7996" + transform="translate(1480,800)" + width="100%" + height="100%" + inkscape:label="HMI:Page:RelativePageTest@/PUMP0" /> + <rect + sodipodi:insensitive="true" + inkscape:label="HMI:Page:Conf" + y="780" + x="0" + height="720" + width="1280" + id="rect1016" + style="color:#000000;fill:#000000" /> + <g + id="g1082" + inkscape:label="HMI:Jump:Home" + transform="translate(-940,-558)"> + <g + id="g1152" + inkscape:label="button"> + <path + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="m 1217.4113,1410.4016 -22,24.5657 c -10.7925,12.0511 6.1317,35.5791 -13.5791,35.5791 h -174.2877 c -19.71078,0 -2.7866,-23.528 -13.57905,-35.5791 l -22,-24.5657 127.74845,-48.4334 z" + id="rect1022" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cssssccc" /> + </g> + <g + id="g1149" + inkscape:label="text"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="1090.7626" + y="1436.9814" + id="home_jmp" + inkscape:label="home_jmp"><tspan + sodipodi:role="line" + id="tspan1028" + x="1090.7626" + y="1436.9814" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px">Home</tspan></text> + </g> + </g> + <rect + style="color:#000000;fill:#4d4d4d" + id="page0" + width="1280" + height="720" + x="0" + y="0" + inkscape:label="HMI:Page:Home" /> + <g + id="g1077" + inkscape:label="HMI:Jump:Conf" + transform="matrix(0.57180538,0,0,0.57180538,-373.64055,248.51305)"> + <g + id="g1159" + inkscape:label="button"> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect1020" + width="245.44583" + height="95.723877" + x="971.96545" + y="594.82263" + ry="35.579063" + inkscape:label="button" /> + </g> + <g + id="g1156" + inkscape:label="text"> + <text + inkscape:label="setting_jmp" + id="setting_jmp" + y="656.98151" + x="1090.7626" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px" + y="656.98151" + x="1090.7626" + id="tspan1024" + sodipodi:role="line">Settings</tspan></text> + </g> + </g> + <g + id="g84" + inkscape:label="HMI:Input@/TARGETPRESSURE,0,100" + transform="matrix(0.35865594,0,0,0.35865594,22.072155,63.074421)"> + <text + inkscape:label="value" + id="text5151" + y="218.24219" + x="136.32812" + style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:1px" + y="218.24219" + x="136.32812" + id="tspan5149" + sodipodi:role="line">8888</tspan></text> + <path + transform="scale(1,-1)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path89" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="-216.2599" + sodipodi:r1="59.825443" + sodipodi:r2="29.912722" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z" + inkscape:transform-center-y="14.956363" + inkscape:label="-100" /> + <path + inkscape:label="-10" + inkscape:transform-center-y="7.4781812" + d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="14.956361" + sodipodi:r1="29.912722" + sodipodi:cy="-184.98808" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path88" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" + transform="scale(1,-1)" /> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect85" + width="407.7037" + height="128" + x="139.85185" + y="95.40741" + onclick="" + inkscape:label="edit" /> + <path + inkscape:label="+100" + inkscape:transform-center-y="-14.956361" + d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="29.912722" + sodipodi:r1="59.825443" + sodipodi:cy="105.17262" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path87" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" /> + <path + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path86" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="136.44444" + sodipodi:r1="29.912722" + sodipodi:r2="14.956361" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z" + inkscape:transform-center-y="-7.4781804" + inkscape:label="+10" /> + <path + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path91" + sodipodi:sides="4" + sodipodi:cx="80.740723" + sodipodi:cy="165.17262" + sodipodi:r1="57.015106" + sodipodi:r2="29.912722" + sodipodi:arg1="0.77793027" + sodipodi:arg2="1.5633284" + inkscape:flatsided="true" + inkscape:rounded="-0.65084865" + inkscape:randomized="0" + d="M 121.35644,205.1862 C 158.18649,167.80191 3.342862,168.95829 40.72715,205.78834 78.111437,242.61839 76.95506,87.774762 40.125008,125.15905 3.2949549,162.54334 158.13858,161.38696 120.7543,124.55691 83.370008,87.726855 84.526385,242.57048 121.35644,205.1862 Z" + inkscape:transform-center-y="-14.956361" + inkscape:label="=0" /> + </g> + <text + inkscape:label="HMI:Display@/PUMP0/PRESSURE" + id="text823" + y="141.34827" + x="293.33374" + style="font-style:normal;font-weight:normal;font-size:57.38494873px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.35865593px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="fill:#ffffff;fill-opacity:1;stroke-width:0.35865593px" + y="141.34827" + x="293.33374" + id="tspan821" + sodipodi:role="line">8888</tspan></text> + <g + id="g4523" + transform="matrix(2.1611542,0,0,2.1611542,142.76714,468.92423)" + inkscape:label="HMI:Meter@/PUMP0/SLOTH"> + <path + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#3ee800;stroke-width:26.45833397;stroke-miterlimit:4;stroke-dasharray:2.64583333, 2.64583333;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path4499" + sodipodi:type="arc" + sodipodi:cx="128.02208" + sodipodi:cy="2.2017097" + sodipodi:rx="64.411957" + sodipodi:ry="64.411957" + sodipodi:start="3.1415927" + sodipodi:end="4.712389" + d="M 63.610123,2.2017068 A 64.411957,64.411957 0 0 1 128.02208,-62.210247" + sodipodi:open="true" + inkscape:label="range" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#ff3000;stroke-width:2.96333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0, 32.59666667;stroke-dashoffset:29.63333321;stroke-opacity:1;marker-end:url(#Arrow2Lend)" + d="M 130.96206,4.0725977 79.111776,-41.363223" + id="path4501" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" + inkscape:label="needle" /> + <text + inkscape:label="min" + id="text4505" + y="4.9187088" + x="49.132977" + style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="text-align:end;text-anchor:end;fill:#ff6600;stroke-width:0.26458332px" + y="4.9187088" + x="49.132977" + id="tspan4503" + sodipodi:role="line">0</tspan></text> + <text + inkscape:label="max" + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="127.48073" + y="-78.144218" + id="text4509"><tspan + sodipodi:role="line" + id="tspan4507" + x="127.48073" + y="-78.144218" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px">10000</tspan></text> + <text + inkscape:label="value" + id="text4517" + y="-6.1937833" + x="113.53007" + style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + id="tspan4515" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px" + y="-6.1937833" + x="113.53007" + sodipodi:role="line">000</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:7.5467205px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="124.77896" + y="1.1408259" + id="text4521" + inkscape:label="unit"><tspan + sodipodi:role="line" + x="124.77896" + y="1.1408259" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px" + id="tspan4519">bar</tspan></text> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:14.34623718px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:0.35865593px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="114.11434" + y="90.742165" + id="text827" + inkscape:label="setpoint_label"><tspan + sodipodi:role="line" + id="tspan825" + x="114.11434" + y="90.742165" + style="stroke-width:0.35865593px">SetPoint</tspan></text> + <text + id="text831" + y="90.742165" + x="344.50876" + style="font-style:normal;font-weight:normal;font-size:14.34623718px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.35865593px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + inkscape:label="actual_label"><tspan + y="90.742165" + x="344.50876" + id="tspan829" + sodipodi:role="line" + style="stroke-width:0.35865593px">Actual</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:22.87221527px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.57180536px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="206.73413" + y="336.90073" + id="text4497" + inkscape:label="pressure_label"><tspan + sodipodi:role="line" + id="tspan4495" + x="206.73413" + y="336.90073" + style="fill:#ff6600;stroke-width:0.57180536px">Pressure</tspan></text> + <g + id="layer4" + inkscape:label="HMI:Lang:cn" + style="display:none" + inkscape:groupmode="layer"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:80px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:vertical-lr;text-anchor:middle;display:inline;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="83.669571" + y="136.78285" + id="text948-6" + inkscape:label="setpoint_label"><tspan + sodipodi:role="line" + id="tspan946-2" + x="136.78285" + y="83.669571" + style="stroke-width:1px">设定值</tspan></text> + <text + id="text952-9" + y="137.16286" + x="703.711" + style="font-style:normal;font-weight:normal;font-size:80px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;writing-mode:vertical-lr;display:inline;fill:#008000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + inkscape:label="actual_label"><tspan + y="703.711" + x="137.16286" + id="tspan950-1" + sodipodi:role="line" + style="text-align:center;writing-mode:vertical-lr;text-anchor:middle;stroke-width:1px">当å‰å€¼</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:80px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;writing-mode:vertical-lr;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="480.61847" + y="278.37503" + id="text956-2" + inkscape:label="pressure_label"><tspan + sodipodi:role="line" + id="tspan954-7" + x="278.37503" + y="480.61847" + style="writing-mode:vertical-lr;fill:#ff6600;stroke-width:0.99999994px">压力</tspan></text> + <text + inkscape:label="setting_jmp" + id="text1097" + y="656.98151" + x="1090.7626" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px" + y="656.98151" + x="1090.7626" + id="tspan1095" + sodipodi:role="line">设置</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="1090.7626" + y="1436.9814" + id="text1101" + inkscape:label="home_jmp"><tspan + sodipodi:role="line" + x="1090.7626" + y="1436.9814" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px" + id="tspan1107">家</tspan></text> + </g> + <g + id="layer2" + inkscape:label="HMI:Lang:fr" + style="display:none" + inkscape:groupmode="layer"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="340.9082" + y="77.142853" + id="text948" + inkscape:label="setpoint_label"><tspan + sodipodi:role="line" + id="tspan946" + x="340.9082" + y="77.142853">Valeur de consigne</tspan></text> + <text + id="text952" + y="77.142853" + x="960.9082" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#008000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + inkscape:label="actual_label"><tspan + y="77.142853" + x="960.9082" + id="tspan950" + sodipodi:role="line" + style="text-align:center;text-anchor:middle">Valeur courante</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="420.37848" + y="399.41504" + id="text956" + inkscape:label="pressure_label"><tspan + sodipodi:role="line" + id="tspan954" + x="420.37848" + y="399.41504" + style="fill:#ff6600;stroke-width:0.99999994px">Pression</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="1090.7626" + y="656.98151" + id="setting_jmp-0" + inkscape:label="setting_jmp"><tspan + sodipodi:role="line" + id="tspan1024-9" + x="1090.7626" + y="656.98151" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px">Settings</tspan></text> + <text + inkscape:label="home_jmp" + id="home_jmp-3" + y="1436.9814" + x="1090.7626" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px" + y="1436.9814" + x="1090.7626" + id="tspan1028-6" + sodipodi:role="line">Home</tspan></text> + </g> + <g + id="layer3" + inkscape:label="HMI:Lang:si" + style="display:inline" + inkscape:groupmode="layer"> + <text + id="text930" + y="77.142853" + x="338.67188" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + inkscape:label="setpoint_label"><tspan + y="77.142853" + x="338.67188" + id="tspan928" + sodipodi:role="line">nastavljena vrednost</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#008000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="959.38477" + y="77.142853" + id="text934" + inkscape:label="actual_label"><tspan + sodipodi:role="line" + id="tspan932" + x="959.38477" + y="77.142853">dejanska vrednost</tspan></text> + <text + id="text938" + y="399.41504" + x="420.37848" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + inkscape:label="pressure_label"><tspan + style="fill:#ff6600;stroke-width:0.99999994px" + y="399.41504" + x="420.37848" + id="tspan936" + sodipodi:role="line">pritisk</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="1090.7626" + y="656.98151" + id="setting_jmp-06" + inkscape:label="setting_jmp"><tspan + sodipodi:role="line" + id="tspan1024-2" + x="1090.7626" + y="656.98151" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px">Settings</tspan></text> + <text + inkscape:label="home_jmp" + id="home_jmp-6" + y="1436.9814" + x="1090.7626" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px" + y="1436.9814" + x="1090.7626" + id="tspan1028-1" + sodipodi:role="line">Home</tspan></text> + </g> + <g + inkscape:label="HMI:Meter@/PUMP0/SLOTH" + transform="matrix(7.5590552,0,0,7.5590552,-244.3956,1321.2434)" + id="g110"> + <path + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="M 113.38908,2.2017068 V -62.210247" + id="path90" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" + inkscape:label="range" /> + <path + inkscape:label="needle" + sodipodi:nodetypes="cc" + inkscape:connector-curvature="0" + id="path92" + d="M 113.38908,4.0725977 V -62.210247" + style="fill:none;fill-rule:evenodd;stroke:url(#linearGradient964);stroke-width:13.22916698;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:29.63333321;stroke-opacity:1" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.29166651px;line-height:125%;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="115.07632" + y="9.3424692" + id="text96" + inkscape:label="min"><tspan + sodipodi:role="line" + id="tspan94" + x="115.07632" + y="9.3424692" + style="text-align:end;text-anchor:end;fill:#ff6600;stroke-width:0.26458332px">0</tspan></text> + <text + id="text100" + y="-64.195457" + x="113.27539" + style="font-style:normal;font-weight:normal;font-size:5.29166651px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + inkscape:label="max"><tspan + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px" + y="-64.195457" + x="113.27539" + id="tspan98" + sodipodi:role="line">10000</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-20.624428" + y="-109.67243" + id="text104" + inkscape:label="value" + transform="rotate(90)"><tspan + sodipodi:role="line" + x="-20.624428" + y="-109.67243" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px" + id="tspan102">000</tspan></text> + <text + inkscape:label="unit" + id="text108" + y="-9.4425077" + x="140.65398" + style="font-style:normal;font-weight:normal;font-size:7.5467205px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + id="tspan106" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px" + y="-9.4425077" + x="140.65398" + sodipodi:role="line">€£$Â¥</tspan></text> + </g> + <g + inkscape:label="HMI:Input@/TARGETPRESSURE" + id="g991" + transform="matrix(0.5,0,0,0.5,230.11026,885.7162)" + style="stroke-width:2"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="136.32812" + y="218.24219" + id="text977" + inkscape:label="value"><tspan + sodipodi:role="line" + id="tspan975" + x="136.32812" + y="218.24219" + style="stroke-width:2px">8888</tspan></text> + <rect + inkscape:label="edit" + onclick="" + y="95.40741" + x="139.85185" + height="128" + width="407.7037" + id="rect983" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <g + id="g1086" + inkscape:label="=0" + transform="translate(-416.52022,170.47452)" + style="stroke-width:2"> + <path + inkscape:connector-curvature="0" + id="path989" + d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z" + inkscape:transform-center-y="-14.956361" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <text + id="text1048" + y="111.05016" + x="733.58197" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:1px" + y="111.05016" + x="733.58197" + id="tspan1046" + sodipodi:role="line">→0â†</tspan></text> + </g> + <g + id="g1091" + inkscape:label="-10" + transform="translate(-416.52022,170.47452)" + style="stroke-width:2"> + <path + inkscape:transform-center-x="14.956371" + inkscape:transform-center-y="-3.6154501e-05" + d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="14.956361" + sodipodi:r1="29.912722" + sodipodi:cy="-184.98808" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path981" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" + transform="matrix(0,-2.0000001,1.9999999,0,1034.195,1298.6541)" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="633.09552" + y="111.05016" + id="text1059"><tspan + sodipodi:role="line" + id="tspan1057" + x="633.09552" + y="111.05016" + style="stroke-width:1px">-10</tspan></text> + </g> + <g + id="g1096" + inkscape:label="-100" + transform="translate(-416.52022,170.47452)" + style="stroke-width:2"> + <path + inkscape:transform-center-x="14.956364" + transform="rotate(-90,746.45698,-44.543641)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path979" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="-216.2599" + sodipodi:r1="59.825443" + sodipodi:r2="29.912722" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z" + inkscape:transform-center-y="-5.9989963e-06" /> + <text + id="text1063" + y="111.05016" + x="537.25018" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:1px" + y="111.05016" + x="537.25018" + id="tspan1061" + sodipodi:role="line">-100</tspan></text> + </g> + <g + id="g1076" + inkscape:label="+100" + transform="translate(-416.52022,170.47452)" + style="stroke-width:2"> + <path + inkscape:transform-center-x="-14.956365" + transform="matrix(0,-1,-1,0,1043.9134,701.91334)" + inkscape:transform-center-y="-5.5023185e-06" + d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="29.912722" + sodipodi:r1="59.825443" + sodipodi:cy="105.17262" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path985" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" /> + <text + id="text1067" + y="111.05016" + x="925.82605" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:1px" + y="111.05016" + x="925.82605" + id="tspan1065" + sodipodi:role="line">+100</tspan></text> + </g> + <g + id="g1081" + inkscape:label="+10" + transform="translate(-416.52022,170.47452)" + style="stroke-width:2"> + <path + inkscape:transform-center-x="-14.956349" + transform="matrix(0,-2.0000001,-1.9999999,0,1122.1514,1298.6541)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path987" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="136.44444" + sodipodi:r1="29.912722" + sodipodi:r2="14.956361" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z" + inkscape:transform-center-y="-3.3040441e-05" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="842.71497" + y="111.05016" + id="text1071"><tspan + sodipodi:role="line" + id="tspan1069" + x="842.71497" + y="111.05016" + style="stroke-width:1px">+10</tspan></text> + </g> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#82ff77;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;" + x="736.32812" + y="1478.2422" + id="text995" + inkscape:label="HMI:Display@/PUMP0/PRESSURE"><tspan + sodipodi:role="line" + id="tspan993" + x="736.32812" + y="1478.2422" + style="fill:#82ff77;fill-opacity:1;stroke-width:1px;">8888</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:45.74443054px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.28590268px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="28.181862" + y="365.32291" + id="text134" + inkscape:label="HMI:Display@/PUMP0/STROUT"><tspan + sodipodi:role="line" + id="tspan132" + x="28.181862" + y="365.32291" + style="fill:#ffffff;fill-opacity:1;stroke-width:0.28590268px">8888</tspan></text> + <text + inkscape:label="HMI:Display@/PUMP0/BOOLOUT" + id="text138" + y="422.50345" + x="28.181862" + style="font-style:normal;font-weight:normal;font-size:45.74443054px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.28590268px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="fill:#ffffff;fill-opacity:1;stroke-width:0.28590268px" + y="422.50345" + x="28.181862" + id="tspan136" + sodipodi:role="line">8888</tspan></text> + <g + transform="matrix(0.28590269,0,0,0.28590269,0.70444171,226.1427)" + id="g208-1" + inkscape:label="HMI:Input@/PUMP0/STRIN" + style="stroke-width:2"> + <text + inkscape:label="value" + id="text164" + y="218.24219" + x="136.32812" + style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:2px" + y="218.24219" + x="136.32812" + id="tspan162" + sodipodi:role="line">8888</tspan></text> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect166" + width="407.7037" + height="128" + x="139.85185" + y="95.40741" + onclick="" + inkscape:label="edit" /> + <g + transform="translate(-416.52022,170.47452)" + inkscape:label="+"dhu"" + id="g174" + style="stroke-width:2"> + <path + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + inkscape:transform-center-y="-14.956361" + d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z" + id="path168" + inkscape:connector-curvature="0" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="733.58197" + y="111.05016" + id="text172"><tspan + sodipodi:role="line" + id="tspan170" + x="733.58197" + y="111.05016" + style="stroke-width:1px">dhu</tspan></text> + </g> + <g + transform="translate(-416.52022,170.47452)" + inkscape:label="="plop"" + id="g182" + style="stroke-width:2"> + <path + transform="matrix(0,-2.0000001,1.9999999,0,1034.195,1298.6541)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path176" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="-184.98808" + sodipodi:r1="29.912722" + sodipodi:r2="14.956361" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z" + inkscape:transform-center-y="-3.6154501e-05" + inkscape:transform-center-x="14.956371" /> + <text + id="text180" + y="111.05016" + x="633.09552" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:1px" + y="111.05016" + x="633.09552" + id="tspan178" + sodipodi:role="line">plop</tspan></text> + </g> + <g + transform="translate(-416.52022,170.47452)" + inkscape:label="="mhoo"" + id="g190" + style="stroke-width:2"> + <path + inkscape:transform-center-y="-5.9989963e-06" + d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="29.912722" + sodipodi:r1="59.825443" + sodipodi:cy="-216.2599" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path184" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" + transform="rotate(-90,746.45698,-44.543641)" + inkscape:transform-center-x="14.956364" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="537.25018" + y="111.05016" + id="text188"><tspan + sodipodi:role="line" + id="tspan186" + x="537.25018" + y="111.05016" + style="stroke-width:1px">mhoo</tspan></text> + </g> + <g + transform="translate(-416.52022,170.47452)" + inkscape:label="="yodl"" + id="g198" + style="stroke-width:2"> + <path + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path192" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="105.17262" + sodipodi:r1="59.825443" + sodipodi:r2="29.912722" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z" + inkscape:transform-center-y="-5.5023185e-06" + transform="matrix(0,-1,-1,0,1043.9134,701.91334)" + inkscape:transform-center-x="-14.956365" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="925.82605" + y="111.05016" + id="text196"><tspan + sodipodi:role="line" + id="tspan194" + x="925.82605" + y="111.05016" + style="stroke-width:1px">yodl</tspan></text> + </g> + <g + transform="translate(-416.52022,170.47452)" + inkscape:label="="mhe"" + id="g206-1" + style="stroke-width:2"> + <path + inkscape:transform-center-y="-3.3040441e-05" + d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="14.956361" + sodipodi:r1="29.912722" + sodipodi:cy="136.44444" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path200" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" + transform="matrix(0,-2.0000001,-1.9999999,0,1122.1514,1298.6541)" + inkscape:transform-center-x="-14.956349" /> + <text + id="text204" + y="111.05016" + x="842.71497" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:1px" + y="111.05016" + x="842.71497" + id="tspan202" + sodipodi:role="line">mhe</tspan></text> + </g> + </g> + <g + inkscape:label="HMI:Keypad:HMI_INT:HMI_REAL" + id="g2432" + style="fill-rule:evenodd;stroke-width:0.47631353" + transform="matrix(3.3549332,0,0,3.14525,-181.87457,2336.0198)"> + <path + sodipodi:nodetypes="ccccc" + inkscape:label="Background" + inkscape:connector-curvature="0" + id="path2136" + d="M 54.211099,1.2654702 H 435.73881 V 230.18209 H 54.211099 Z" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.6;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.16776976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <rect + ry="3.8152773" + rx="3.8152773" + y="15.77106" + x="64.024963" + height="30.150299" + width="361.89996" + id="rect2426" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#fffff5;fill-opacity:1;fill-rule:nonzero;stroke:#202326;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + inkscape:label="Field" /> + <text + id="text2430" + y="37.408375" + x="72.50132" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.0763855px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.47690967px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + inkscape:label="Value"><tspan + style="text-align:start;text-anchor:start;stroke-width:0.47690967px" + y="37.408375" + x="72.50132" + id="tspan2428" + sodipodi:role="line">number</tspan></text> + <g + style="fill-rule:evenodd;stroke-width:0.13585199" + inkscape:label="Enter" + id="g4947" + transform="matrix(1.6700128,0,0,1.6700128,-826.83854,-145.60855)"> + <path + style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.10074362;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path193" + d="m 750,175 c 0,-2 -1,-3 -3,-3 h -20 c -1,0 -3,1 -3,3 v 43 c 0,1 2,2 3,2 h 20 c 2,0 3,-1 3,-2 z" + inkscape:connector-curvature="0" /> + <path + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="m -1244.2949,1166.5938 v 15.791 h -38.6875 v -2.9981 l -6.9199,4 6.9199,4 v -2.998 h 40.6836 v -17.7949 z" + transform="matrix(0.28557246,0,0,0.28557246,1098.7155,-140.51013)" + id="path6545-4" + inkscape:connector-curvature="0" /> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.13585199" + inkscape:label="Keys" + id="g4993" + transform="matrix(1.6700128,0,0,1.6700128,-826.83854,-145.60855)"> + <g + style="stroke-width:0.13585199" + inkscape:label="7" + id="g4892"> + <path + inkscape:connector-curvature="0" + d="m 638,120 h 20 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z" + id="path163" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text331" + y="129.38269" + x="636.4165" + transform="scale(1.0007154,0.99928514)">7</text> + </g> + <g + style="stroke-width:0.13585199" + inkscape:label="4" + id="g4907"> + <path + inkscape:connector-curvature="0" + d="m 638,146 h 20 c 2,0 3,1 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + id="path169" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text335" + y="154.10822" + x="636.4165" + transform="scale(1.0007154,0.99928514)">4</text> + </g> + <g + style="stroke-width:0.13585199" + inkscape:label="1" + id="g4922"> + <path + inkscape:connector-curvature="0" + d="m 638,172 h 20 c 2,0 3,1 3,3 v 17 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -17 c 0,-2 2,-3 3,-3 z" + id="path175" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text339" + y="179.82285" + x="636.4165" + transform="scale(1.0007154,0.99928514)">1</text> + </g> + <g + style="stroke-width:0.13585199" + inkscape:label="8" + id="g4897"> + <path + inkscape:connector-curvature="0" + d="m 668,120 h 19 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -19 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z" + id="path165" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text347" + y="129.38269" + x="667.07562" + transform="scale(1.0007154,0.99928514)">8</text> + </g> + <g + style="stroke-width:0.13585199" + inkscape:label="5" + id="g4912"> + <path + inkscape:connector-curvature="0" + d="m 668,146 h 19 c 2,0 3,1 3,3 v 18 c 0,2 -1,3 -3,3 h -19 c -1,0 -3,-1 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + id="path171" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text351" + y="154.10822" + x="667.07562" + transform="scale(1.0007154,0.99928514)">5</text> + </g> + <g + style="stroke-width:0.13585199" + inkscape:label="2" + id="g4927"> + <path + inkscape:connector-curvature="0" + d="m 668,172 h 19 c 2,0 3,1 3,3 v 17 c 0,1 -1,3 -3,3 h -19 c -1,0 -3,-2 -3,-3 v -17 c 0,-2 2,-3 3,-3 z" + id="path177" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text355" + y="179.82285" + x="667.07562" + transform="scale(1.0007154,0.99928514)">2</text> + </g> + <g + style="stroke-width:0.13585199" + inkscape:label="9" + id="g4902"> + <path + inkscape:connector-curvature="0" + d="m 697,120 h 20 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z" + id="path167" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text363" + y="129.38269" + x="695.75708" + transform="scale(1.0007154,0.99928514)">9</text> + </g> + <g + style="stroke-width:0.13585199" + inkscape:label="6" + id="g4917"> + <path + inkscape:connector-curvature="0" + d="m 697,146 h 20 c 2,0 3,1 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + id="path173" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text367" + y="154.10822" + x="695.75708" + transform="scale(1.0007154,0.99928514)">6</text> + </g> + <g + style="stroke-width:0.13585199" + inkscape:label="3" + id="g4932"> + <path + inkscape:connector-curvature="0" + d="m 697,172 h 20 c 2,0 3,1 3,3 v 17 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -17 c 0,-2 2,-3 3,-3 z" + id="path179" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text371" + y="179.82285" + x="695.75708" + transform="scale(1.0007154,0.99928514)">3</text> + </g> + <g + style="stroke-width:0.13585199" + inkscape:label="0" + id="g4937"> + <path + inkscape:connector-curvature="0" + d="m 638,220 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 h 49 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 z" + id="path373" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text377" + y="205.53712" + x="636.4165" + transform="scale(1.0007154,0.99928514)">0</text> + </g> + </g> + <g + id="g3113" + inkscape:label="Esc" + transform="translate(-318.22576)"> + <path + style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path167-3" + d="m 387.26079,54.792986 h 33.40019 c 3.34,0 5.01006,3.34003 5.01006,5.010045 v 30.060225 c 0,3.340029 -1.67006,5.010032 -5.01006,5.010032 h -33.40019 c -1.67006,0 -5.01007,-1.670003 -5.01007,-5.010032 V 59.803031 c 0,-1.670015 3.34001,-5.010045 5.01007,-5.010045 z" + inkscape:connector-curvature="0" /> + <text + x="394.42801" + y="78.632088" + id="text469-4" + style="font-weight:normal;font-size:10.63882256px;font-family:Arial;fill:#ffffff;fill-rule:evenodd;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928511)">Esc</text> + </g> + <g + id="g3109" + inkscape:label="BackSpace" + transform="translate(0,-43.420332)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path173-1" + d="m 387.26079,98.213318 h 33.40019 c 3.34,0 5.01006,1.670013 5.01006,5.010032 v 30.06024 c 0,3.34002 -1.67006,5.01003 -5.01006,5.01003 h -33.40019 c -1.67006,0 -5.01007,-1.67001 -5.01007,-5.01003 v -30.06024 c 0,-3.340019 3.34001,-5.010032 5.01007,-5.010032 z" + inkscape:connector-curvature="0" /> + <path + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#2b2828;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="m -1278.9668,1041.3047 -6.9199,4 6.9199,4 v -3 h 33.416 v -1.9981 h -33.416 z" + transform="matrix(0.47690966,0,0,0.47690966,1008.0304,-380.26227)" + id="path11623-1-0-2" + inkscape:connector-curvature="0" /> + </g> + <g + id="g787" + inkscape:label="Sign" + style="fill-rule:evenodd;stroke-width:0.13585199" + transform="matrix(1.6700128,0,0,1.6700128,-678.20742,-102.18822)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path781" + d="m 638,120 h 20 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z" + inkscape:connector-curvature="0" /> + <text + x="642.1239" + y="135.09822" + id="text783" + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + transform="scale(1.0007154,0.99928514)">+/-</text> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.31375408px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.30784383px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="252.9579" + y="12.333653" + id="text509" + transform="scale(0.96824589,1.0327955)" + inkscape:label="Info"><tspan + sodipodi:role="line" + id="tspan507" + x="252.9579" + y="12.333653" + style="stroke-width:0.30784383px">information</tspan></text> + <g + transform="matrix(1.6700128,0,0,1.6700128,-826.83854,-145.60856)" + style="fill-rule:evenodd;stroke-width:0.13585199" + id="g4942" + inkscape:label="NumDot"> + <path + inkscape:connector-curvature="0" + d="m 697,197 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z" + id="path181" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:6.96602964px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text771" + y="204.54802" + x="696.7464" + transform="scale(1.0007154,0.99928514)">.</text> + </g> + </g> + <g + transform="matrix(3.3549332,0,0,3.14525,-181.87457,1556.0198)" + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4278" + inkscape:label="HMI:Keypad:HMI_STRING:HMI_LOCAL:PAGE_LOCAL"> + <path + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.6;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.16776976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="M 54.211084,1.2654702 H 435.7388 V 230.18209 H 54.211084 Z" + id="rect1006-3" + inkscape:connector-curvature="0" + inkscape:label="Background" + sodipodi:nodetypes="ccccc" /> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path185" + d="m 162,197 h -11 c -2,0 -3,1 -3,3 v 18 c 0,2 1,3 3,3 h 11 168 18 c 0,0 1,-1 1,-3 v -18 c 0,-2 -1,-3 -1,-3 h -18 z" + inkscape:connector-curvature="0" + inkscape:label="Space" /> + <g + id="g4380" + inkscape:label="Keys" + style="stroke-width:0.47631353" + transform="translate(0,-19.076386)"> + <g + id="g4283" + inkscape:label="q Q" + style="stroke-width:0.47631353" + transform="translate(0,-9.5381931)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path41" + d="m 95,121 h 19 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 H 95 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + inkscape:connector-curvature="0" /> + <text + x="99.378708" + y="138.28395" + id="text203" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928514)">Q</text> + </g> + <g + id="g4337" + inkscape:label="w W" + style="stroke-width:0.47631353" + transform="translate(0,-9.5381931)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path43" + d="m 124,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + inkscape:connector-curvature="0" /> + <text + x="127.0709" + y="138.28395" + id="text207" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928514)">W</text> + </g> + <g + id="g4332" + inkscape:label="e E" + style="stroke-width:0.47631353" + transform="translate(0,-9.5381931)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path45" + d="m 154,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + inkscape:connector-curvature="0" /> + <text + x="159.70854" + y="138.28395" + id="text211" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928514)">E</text> + </g> + <g + id="g4326" + inkscape:label="r R" + style="stroke-width:0.47631353" + transform="translate(0,-9.5381931)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path47" + d="m 184,121 h 19 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -19 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + inkscape:connector-curvature="0" /> + <text + x="188.39003" + y="138.28395" + id="text215" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928514)">R</text> + </g> + <g + id="g4321" + inkscape:label="t T" + style="stroke-width:0.47631353" + transform="translate(0,-9.5381931)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path49" + d="m 213,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z" + inkscape:connector-curvature="0" /> + <text + x="219.04961" + y="138.28395" + id="text219" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928514)">T</text> + </g> + <g + id="g4316" + inkscape:label="y Y" + style="stroke-width:0.47631353" + transform="translate(0,-9.5381931)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path51" + d="m 243,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z" + inkscape:connector-curvature="0" /> + <text + x="248.72017" + y="138.28395" + id="text223" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928514)">Y</text> + </g> + <g + id="g4311" + inkscape:label="u U" + style="stroke-width:0.47631353" + transform="translate(0,-9.5381931)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path53" + d="m 273,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z" + inkscape:connector-curvature="0" /> + <text + x="278.39075" + y="138.28395" + id="text227" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928514)">U</text> + </g> + <g + id="g4306" + inkscape:label="i I" + style="stroke-width:0.47631353" + transform="translate(0,-9.5381931)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path55" + d="m 302,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z" + inkscape:connector-curvature="0" /> + <text + x="311.02859" + y="138.28395" + id="text231" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928514)">I</text> + </g> + <g + id="g4301" + inkscape:label="o O" + style="stroke-width:0.47631353" + transform="translate(0,-9.5381931)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path57" + d="m 332,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z" + inkscape:connector-curvature="0" /> + <text + x="336.74319" + y="138.28395" + id="text235" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928514)">O</text> + </g> + <g + id="g4296" + inkscape:label="p P" + style="stroke-width:0.47631353" + transform="translate(0,-9.5381931)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path59" + d="m 362,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z" + inkscape:connector-curvature="0" /> + <text + x="367.40256" + y="138.28395" + id="text239" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928514)">P</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4511" + inkscape:label="a A"> + <path + inkscape:connector-curvature="0" + d="m 103,147 h 19 c 1,0 3,1 3,2 v 19 c 0,1 -2,2 -3,2 h -19 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z" + id="path65" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text243" + y="163.99854" + x="107.29005" + transform="scale(1.0007154,0.99928514)">A</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4516" + inkscape:label="s S"> + <path + inkscape:connector-curvature="0" + d="m 132,147 h 20 c 1,0 3,1 3,2 v 19 c 0,1 -2,2 -3,2 h -20 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z" + id="path67" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text247" + y="163.99854" + x="137.95012" + transform="scale(1.0007154,0.99928514)">S</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4521" + inkscape:label="d D"> + <path + inkscape:connector-curvature="0" + d="m 162,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z" + id="path69" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text251" + y="163.99854" + x="166.63159" + transform="scale(1.0007154,0.99928514)">D</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4526" + inkscape:label="f F"> + <path + inkscape:connector-curvature="0" + d="m 192,147 h 19 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -19 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z" + id="path71" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text255" + y="163.99854" + x="197.29166" + transform="scale(1.0007154,0.99928514)">F</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4531" + inkscape:label="g G"> + <path + inkscape:connector-curvature="0" + d="m 221,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z" + id="path73" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text259" + y="163.99854" + x="225.97284" + transform="scale(1.0007154,0.99928514)">G</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4536" + inkscape:label="h H"> + <path + inkscape:connector-curvature="0" + d="m 251,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z" + id="path75" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text263" + y="163.99854" + x="255.64342" + transform="scale(1.0007154,0.99928514)">H</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4541" + inkscape:label="j J"> + <path + inkscape:connector-curvature="0" + d="m 281,147 h 19 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -19 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z" + id="path77" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text267" + y="163.99854" + x="287.29208" + transform="scale(1.0007154,0.99928514)">J</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4546" + inkscape:label="k K"> + <path + inkscape:connector-curvature="0" + d="m 310,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z" + id="path79" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text271" + y="163.99854" + x="314.98465" + transform="scale(1.0007154,0.99928514)">K</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4551" + inkscape:label="l L"> + <path + inkscape:connector-curvature="0" + d="m 340,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z" + id="path81" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text275" + y="163.99854" + x="345.64444" + transform="scale(1.0007154,0.99928514)">L</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4586" + inkscape:label="z Z" + transform="translate(0,9.5381929)"> + <path + inkscape:connector-curvature="0" + d="m 113,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 z" + id="path87-3" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text279" + y="188.72411" + x="119.15855" + transform="scale(1.0007154,0.99928514)">Z</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4581" + inkscape:label="x X" + transform="translate(0,9.5381929)"> + <path + inkscape:connector-curvature="0" + d="m 143,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 z" + id="path89-6" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text283" + y="188.72411" + x="148.82933" + transform="scale(1.0007154,0.99928514)">X</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4576" + inkscape:label="c C" + transform="translate(0,9.5381929)"> + <path + inkscape:connector-curvature="0" + d="m 173,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 z" + id="path91-7" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text287" + y="188.72411" + x="178.50011" + transform="scale(1.0007154,0.99928514)">C</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4571" + inkscape:label="v V" + transform="translate(0,9.5381929)"> + <path + inkscape:connector-curvature="0" + d="m 202,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c 0,0 -1,-1 -1,-3 v -17 c 0,-1 1,-3 1,-3 z" + id="path195" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text291" + y="188.72411" + x="208.16988" + transform="scale(1.0007154,0.99928514)">V</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4566" + inkscape:label="b B" + transform="translate(0,9.5381929)"> + <path + inkscape:connector-curvature="0" + d="m 233,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z" + id="path93" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text295" + y="188.72411" + x="237.84096" + transform="scale(1.0007154,0.99928514)">B</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4561" + inkscape:label="n N" + transform="translate(0,9.5381929)"> + <path + inkscape:connector-curvature="0" + d="m 263,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z" + id="path95" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text299" + y="188.72411" + x="267.51193" + transform="scale(1.0007154,0.99928514)">N</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4556" + inkscape:label="m M" + transform="translate(0,9.5381929)"> + <path + inkscape:connector-curvature="0" + d="m 293,172 h 19 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -19 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z" + id="path97" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text303" + y="188.72411" + x="296.1933" + transform="scale(1.0007154,0.99928514)">M</text> + </g> + <g + id="g4818" + inkscape:label=". :" + style="stroke-width:0.47631353" + transform="translate(0,9.5381929)"> + <path + inkscape:connector-curvature="0" + d="m 352,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z" + id="path101" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + transform="scale(1.0007154,0.99928513)" + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826" + id="text719" + y="189.66107" + x="359.58276">.</text> + <text + x="359.58276" + y="181.64532" + id="text4834" + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928512)">:</text> + </g> + <g + id="g4813" + inkscape:label=", ;" + style="stroke-width:0.47631353" + transform="translate(0,9.5381929)"> + <path + inkscape:connector-curvature="0" + d="m 322,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z" + id="path99" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826" + id="text727" + y="181.64532" + x="330.00806" + transform="scale(1.0007154,0.99928512)">;</text> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826" + y="189.66107" + x="330.00806" + transform="scale(1.0007154,0.99928512)" + id="text4826">,</text> + </g> + <g + style="stroke-width:0.47631353" + inkscape:label="1" + id="g2845" + transform="translate(-13.353469,-45.783327)"> + <path + inkscape:connector-curvature="0" + d="m 95,121 h 19 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 H 95 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + id="path2839" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text2841" + y="138.28395" + x="101.07153" + transform="scale(1.0007154,0.99928513)">1</text> + </g> + <g + style="stroke-width:0.47631353" + inkscape:label="2" + id="g2853" + transform="translate(-13.353469,-45.783327)"> + <path + inkscape:connector-curvature="0" + d="m 124,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + id="path2847" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text2849" + y="138.28395" + x="130.18704" + transform="scale(1.0007154,0.99928513)">2</text> + </g> + <g + inkscape:label="3" + id="g2861" + style="stroke-width:0.47631353" + transform="translate(-13.353469,-45.783327)"> + <path + inkscape:connector-curvature="0" + d="m 154,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + id="path2855" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text2857" + y="138.28395" + x="159.70854" + transform="scale(1.0007154,0.99928514)">3</text> + </g> + <g + id="g2957" + inkscape:label="4" + transform="translate(0,-19.076386)"> + <path + inkscape:connector-curvature="0" + d="m 170.64653,94.293059 h 19 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -19 c -1,0 -3,-2 -3,-3 V 97.293059 c 0,-2 2,-3 3,-3 z" + id="path2865" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text2867" + y="111.55791" + x="176.39188" + transform="scale(1.0007154,0.99928514)">4</text> + </g> + <g + id="g2962" + inkscape:label="5" + transform="translate(0,-19.076386)"> + <path + inkscape:connector-curvature="0" + d="m 199.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z" + id="path2873" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text2875" + y="111.55791" + x="205.70567" + transform="scale(1.0007154,0.99928514)">5</text> + </g> + <g + id="g2967" + inkscape:label="6" + transform="translate(0,-19.076386)"> + <path + inkscape:connector-curvature="0" + d="m 229.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z" + id="path2881" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text2883" + y="111.55791" + x="236.15851" + transform="scale(1.0007154,0.99928514)">6</text> + </g> + <g + id="g2972" + inkscape:label="7" + transform="translate(0,-19.076386)"> + <path + inkscape:connector-curvature="0" + d="m 259.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z" + id="path2889" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text2891" + y="111.55791" + x="266.06564" + transform="scale(1.0007154,0.99928514)">7</text> + </g> + <g + id="g2977" + inkscape:label="8" + transform="translate(0,-19.076386)"> + <path + inkscape:connector-curvature="0" + d="m 288.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z" + id="path2897" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text2899" + y="111.55791" + x="295.08231" + transform="scale(1.0007154,0.99928514)">8</text> + </g> + <g + id="g2982" + inkscape:label="9 -" + transform="translate(0,-19.076386)"> + <path + inkscape:connector-curvature="0" + d="m 318.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z" + id="path2905" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text2907" + y="111.55791" + x="325.05408" + transform="scale(1.0007154,0.99928514)">9</text> + <text + transform="scale(1.0007154,0.99928511)" + x="335.72681" + y="102.42173" + id="text806" + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826">-</text> + </g> + <g + id="g2987" + inkscape:label="0 +" + transform="translate(0,-19.076386)"> + <path + inkscape:connector-curvature="0" + d="m 348.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z" + id="path2913" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text2915" + y="111.55791" + x="355.05984" + transform="scale(1.0007154,0.99928514)">0</text> + <text + transform="scale(1.0007154,0.99928511)" + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826" + id="text804" + y="102.42173" + x="365.30151">+</text> + </g> + </g> + <g + transform="translate(335.89988,-58.934803)" + id="g3544" + inkscape:label="Esc" + style="stroke-width:0.47631353"> + <path + style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path105" + d="m 47.948645,115.07509 h 39.076386 c 1,0 3,1 3,3 v 18 c 0,1 -2,3 -3,3 H 47.948645 c -2,0 -3,-2 -3,-3 v -18 c 0,-2 1,-3 3,-3 z" + inkscape:connector-curvature="0" + sodipodi:nodetypes="sssssssss" /> + <text + transform="scale(1.0007154,0.99928512)" + style="font-weight:normal;font-size:9.37966251px;font-family:Arial;fill:#ffffff;fill-rule:evenodd;stroke-width:0.36866826" + id="text469" + y="130.02028" + x="59.288635">Esc</text> + </g> + <g + inkscape:label="Enter" + id="g4291" + style="stroke-width:0.47631353" + transform="translate(0,-19.076386)"> + <path + sodipodi:nodetypes="sssssssss" + style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path3616" + d="m 368.68274,170 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 54.24217 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z" + inkscape:connector-curvature="0" /> + <path + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="m -260.23633,1080.8125 v 15.7949 h -38.68555 v -3 l -6.91992,4 6.91992,4 v -3.0019 h 40.6836 v -17.793 z" + transform="matrix(0.47690966,0,0,0.47690966,531.12074,-361.18588)" + id="path6545" + inkscape:connector-curvature="0" /> + </g> + <g + inkscape:label="BackSpace" + id="g4287" + style="fill-rule:evenodd;stroke-width:0.47631353" + transform="translate(2.3648311e-6,-28.614579)"> + <path + sodipodi:nodetypes="sssssssss" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path3624" + d="m 391.97749,144 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 30.94742 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z" + inkscape:connector-curvature="0" /> + <path + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#2b2828;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="m -268.72656,1011.1777 -6.91992,4 6.91992,4 v -3.0019 h 29.18945 v -1.9981 h -29.18945 z" + transform="matrix(0.47690966,0,0,0.47690966,531.12074,-351.64769)" + id="path11623-1-0" + inkscape:connector-curvature="0" /> + </g> + <g + id="g934" + inkscape:label="CapsLock"> + <g + inkscape:label="inactive" + id="g942" + style="display:inline;fill-rule:evenodd;stroke-width:0.47631353" + transform="translate(0,-19.076386)"> + <path + sodipodi:nodetypes="sssssssss" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path936" + d="m 67.025031,170 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 H 92 c 2,0 4,1 4,2 v 19 c 0,1 -2,2 -4,2 z" + inkscape:connector-curvature="0" /> + <text + x="69.789322" + y="156.71973" + id="text938-5" + style="font-weight:normal;font-size:8.66233635px;font-family:Arial;fill:#2b2828;stroke-width:0.36866823" + transform="scale(1.0007154,0.99928515)">Caps</text> + <text + x="69.789322" + y="166.5585" + id="text940" + style="font-weight:normal;font-size:8.66233635px;font-family:Arial;fill:#2b2828;stroke-width:0.36866823" + transform="scale(1.0007154,0.99928515)">Lock</text> + </g> + <g + transform="translate(0,-19.076386)" + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4429" + inkscape:label="active"> + <path + inkscape:connector-curvature="0" + d="m 67.025031,170 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 H 92 c 2,0 4,1 4,2 v 19 c 0,1 -2,2 -4,2 z" + id="path199" + style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + sodipodi:nodetypes="sssssssss" /> + <text + transform="scale(1.0007154,0.99928515)" + style="font-weight:normal;font-size:8.66233635px;font-family:Arial;fill:#ffffff;stroke-width:0.36866823" + id="text647" + y="156.71973" + x="69.789322">Caps</text> + <text + transform="scale(1.0007154,0.99928515)" + style="font-weight:normal;font-size:8.66233635px;font-family:Arial;fill:#ffffff;stroke-width:0.36866823" + id="text651" + y="166.5585" + x="69.789322">Lock</text> + </g> + </g> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#fffff5;fill-opacity:1;fill-rule:nonzero;stroke:#202326;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect2130" + width="361.89996" + height="30.150299" + x="64.024956" + y="15.771065" + rx="3.8152773" + ry="3.8152773" + inkscape:label="Field" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.0763855px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.47690967px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="72.50132" + y="38.296417" + id="text1309" + inkscape:label="Value"><tspan + sodipodi:role="line" + id="tspan1307" + x="72.50132" + y="38.296417" + style="text-align:start;text-anchor:start;stroke-width:0.47690967px">text</tspan></text> + <g + id="g437" + inkscape:label="Shift"> + <g + id="g421" + inkscape:label="inactive"> + <path + inkscape:connector-curvature="0" + d="m 379.96247,185.46181 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 42.96244 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z" + id="path910" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + sodipodi:nodetypes="sssssssss" /> + <text + style="font-weight:normal;font-size:8.92098808px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text912" + y="177.90059" + x="392.55679" + transform="scale(1.0007154,0.99928513)">Shift</text> + <path + sodipodi:nodetypes="sssssssss" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path856" + d="m 67.025031,185.46181 c -1,0 -3,-1 -3,-3 v -17 c 0,-1 2,-3 3,-3 H 104 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 z" + inkscape:connector-curvature="0" /> + <text + x="75.85218" + y="177.90059" + id="text858" + style="font-weight:normal;font-size:8.92098808px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928513)">Shift</text> + </g> + <g + id="g413" + inkscape:label="active"> + <path + sodipodi:nodetypes="sssssssss" + style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path551" + d="m 379.96247,185.46181 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 42.96244 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z" + inkscape:connector-curvature="0" /> + <text + transform="scale(1.0007154,0.99928513)" + x="392.55679" + y="177.90059" + id="text629" + style="font-weight:normal;font-size:8.92098808px;font-family:Arial;fill:#ffffff;stroke-width:0.36866826">Shift</text> + <path + inkscape:connector-curvature="0" + d="m 67.025031,185.46181 c -1,0 -3,-1 -3,-3 v -17 c 0,-1 2,-3 3,-3 H 104 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 z" + id="path879" + style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + sodipodi:nodetypes="sssssssss" /> + <text + transform="scale(1.0007154,0.99928513)" + style="font-weight:normal;font-size:8.92098808px;font-family:Arial;fill:#ffffff;fill-rule:evenodd;stroke-width:0.36866826" + id="text881" + y="177.90059" + x="75.85218">Shift</text> + </g> + </g> + <text + transform="scale(0.96824588,1.0327955)" + id="text471" + y="12.333657" + x="252.9579" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.31375408px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.30784383px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + inkscape:label="Info"><tspan + style="stroke-width:0.30784383px" + y="12.333657" + x="252.9579" + id="tspan469" + sodipodi:role="line">information</tspan></text> + </g> + <g + id="g14237" + inkscape:label="HMI:DropDown:1:2:3:4:5:6:7:8:9:10:11:12:13:14:15:16:17:18:19:20:21:22:23:24:25:26:27@/SELECTION" + transform="matrix(0.81491208,0,0,0.81491208,243.6641,-510.30491)" + style="stroke-width:0.35083869"> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#53676c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.75419343;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect14212" + width="391.99988" + height="130.9433" + x="864.00842" + y="923.98993" + rx="2.4558709" + ry="2.4558709" + inkscape:label="box" /> + <rect + inkscape:label="highlight" + ry="2.4558709" + rx="2.4558709" + y="943.10553" + x="864.00842" + height="92.71212" + width="391.99988" + id="rect5497" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.75419331;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <text + id="text14183" + y="1011.9975" + x="881.44226" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:80px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#d42aff;fill-opacity:1;stroke:none;stroke-width:0.35083869px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + inkscape:label="text"><tspan + style="text-align:start;text-anchor:start;fill:#d42aff;stroke-width:0.35083869px" + y="1011.9975" + x="881.44226" + sodipodi:role="line" + id="tspan421">sel_0</tspan></text> + <path + sodipodi:type="star" + style="opacity:1;vector-effect:none;fill:#a7a5a6;fill-opacity:1;stroke:none;stroke-width:0.12376806;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path424" + sodipodi:sides="3" + sodipodi:cx="1200.5" + sodipodi:cy="975" + sodipodi:r1="43.683521" + sodipodi:r2="21.841761" + sodipodi:arg1="1.5707963" + sodipodi:arg2="2.6179939" + inkscape:flatsided="false" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 1200.5,1018.6835 -18.9155,-32.76262 -18.9155,-32.76264 37.831,0 37.831,0 -18.9155,32.76264 z" + inkscape:transform-center-y="10.92088" + inkscape:label="button" /> + </g> + <g + id="g14274" + inkscape:label="HMI:List:HoodNames:ForEach:HOOD:NAME@/" /> + <g + inkscape:label="HMI:Input@/SELECTION" + id="g446" + transform="matrix(0.28590269,0,0,0.28590269,85.246911,560.98603)"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="216.32812" + y="218.24219" + id="text432" + inkscape:label="value"><tspan + sodipodi:role="line" + id="tspan430" + x="216.32812" + y="218.24219" + style="text-align:end;text-anchor:end;stroke-width:1px">8</tspan></text> + <path + transform="scale(1,-1)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path436" + sodipodi:sides="3" + sodipodi:cx="276.74072" + sodipodi:cy="-224.98808" + sodipodi:r1="29.912722" + sodipodi:r2="14.956361" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 302.6459,-210.03172 -51.81035,0 25.90517,-44.86908 z" + inkscape:transform-center-y="7.4781812" + inkscape:label="-1" /> + <rect + inkscape:label="edit" + onclick="" + y="95.40741" + x="-174.94055" + height="128" + width="407.7037" + id="rect438" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <path + inkscape:label="+1" + inkscape:transform-center-y="-7.4781804" + d="m 302.6459,111.4008 -51.81035,0 25.90517,-44.869079 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="14.956361" + sodipodi:r1="29.912722" + sodipodi:cy="96.444443" + sodipodi:cx="276.74072" + sodipodi:sides="3" + id="path442" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" /> + <path + inkscape:label="=0" + inkscape:transform-center-y="-10.828983" + d="m 306.14807,189.68763 -58.37872,0.43598 -0.43597,-58.37872 58.37871,-0.43597 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5633284" + sodipodi:arg1="0.77793027" + sodipodi:r2="21.657967" + sodipodi:r1="41.281136" + sodipodi:cy="160.71626" + sodipodi:cx="276.74072" + sodipodi:sides="4" + id="path444" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" + inkscape:transform-center-x="1.0089177e-06" /> + </g> + <g + transform="matrix(0.57180538,0,0,0.57180538,-522.96165,161.69266)" + id="g443" + inkscape:label="HMI:Button@/SELECTION" + style="stroke-width:1"> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect5492" + width="245.44583" + height="95.723877" + x="971.96545" + y="594.82263" + ry="23.930969" + inkscape:label="inactive" + rx="23.930969" /> + <rect + rx="23.930969" + inkscape:label="active" + ry="23.930969" + y="594.82263" + x="971.96545" + height="95.723877" + width="245.44583" + id="rect433" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#fdfdfd;fill-opacity:1;fill-rule:nonzero;stroke:#ffd0b2;stroke-width:28.60938263;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <g + style="stroke-width:1" + inkscape:label="text" + id="g952"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="1090.7626" + y="656.98151" + id="text950" + inkscape:label="setting_jmp"><tspan + sodipodi:role="line" + id="tspan948" + x="1090.7626" + y="656.98151" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px">up</tspan></text> + </g> + </g> + <g + id="g5053" + inkscape:label="HMI:Switch@/PUMP0/BOOLOUT" + transform="translate(43.983597,40.477445)"> + <g + id="g473" + style="fill:#ff0000;stroke:#ff00ff" + inkscape:label="true"> + <path + d="M 825.90067,963.24473 V 1105.042 L 960.08282,916.47893 V 809.26931 Z" + style="fill:#353564;fill-rule:evenodd;stroke:none;stroke-linejoin:round" + id="path3451" + inkscape:connector-curvature="0" /> + <path + d="m 825.90067,1105.042 90.50966,81.6485 121.15167,-225.30346 -77.47918,-44.90811 z" + style="fill:#afafde;fill-rule:evenodd;stroke:none;stroke-linejoin:round" + id="path3453" + inkscape:connector-curvature="0" /> + <path + d="m 960.08282,809.26931 77.47918,36.25625 v 115.86148 l -77.47918,-44.90811 z" + style="fill:#e9e9ff;fill-rule:evenodd;stroke:none;stroke-linejoin:round" + id="path3455" + inkscape:connector-curvature="0" /> + <path + d="M 825.90067,963.24473 916.41033,1029.3537 1037.562,845.52556 960.08282,809.26931 Z" + style="fill:#4d4d9f;fill-rule:evenodd;stroke:none;stroke-linejoin:round" + id="path3457" + inkscape:connector-curvature="0" /> + <path + d="m 916.41033,1029.3537 v 157.3368 L 1037.562,961.38704 V 845.52556 Z" + style="fill:#d7d7ff;fill-rule:evenodd;stroke:none;stroke-linejoin:round" + id="path3459" + inkscape:connector-curvature="0" /> + <path + d="m 825.90067,963.24473 90.50966,66.10897 v 157.3368 l -90.50966,-81.6485 z" + style="fill:#8686bf;fill-rule:evenodd;stroke:none;stroke-linejoin:round" + id="path3461" + inkscape:connector-curvature="0" /> + </g> + <g + id="g501" + style="fill:#ff0000;stroke:#ff00ff" + inkscape:label="false"> + <path + d="M 855.90069,905.24473 V 1047.042 L 978.3745,966.29311 V 859.0835 Z" + style="fill:#353564;fill-rule:evenodd;stroke:none;stroke-linejoin:round" + id="path3437" + inkscape:connector-curvature="0" /> + <path + d="m 855.90069,1047.042 90.50966,81.6485 108.49845,-108.7886 -76.5343,-53.60879 z" + style="fill:#afafde;fill-rule:evenodd;stroke:none;stroke-linejoin:round" + id="path3439" + inkscape:connector-curvature="0" /> + <path + d="m 978.3745,859.0835 76.5343,44.95689 v 115.86151 l -76.5343,-53.60879 z" + style="fill:#e9e9ff;fill-rule:evenodd;stroke:none;stroke-linejoin:round" + id="path3441" + inkscape:connector-curvature="0" /> + <path + d="m 855.90069,905.24473 90.50966,66.10901 108.49845,-67.31335 -76.5343,-44.95689 z" + style="fill:#4d389f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linejoin:round" + id="path3443" + inkscape:connector-curvature="0" /> + <path + d="M 946.41035,971.35374 V 1128.6905 L 1054.9088,1019.9019 V 904.04039 Z" + style="fill:#d78bff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linejoin:round" + id="path3445" + inkscape:connector-curvature="0" /> + <path + d="m 855.90069,905.24473 90.50966,66.10901 v 157.33676 l -90.50966,-81.6485 z" + style="fill:#8667bf;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linejoin:round" + id="path3447" + inkscape:connector-curvature="0" /> + <g + inkscape:label="HMI:Switch@/TARGETPRESSURE" + id="g991-3" + transform="matrix(0.5,0,0,0.5,699.09791,793.95217)" + style="stroke-width:2"> + <g + id="g1091-3" + inkscape:label="4" + transform="translate(-136.52022,250.47452)" + style="stroke-width:2"> + <path + inkscape:transform-center-x="14.956371" + inkscape:transform-center-y="-3.6154501e-05" + d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="14.956361" + sodipodi:r1="29.912722" + sodipodi:cy="-184.98808" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path981-1" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" + transform="matrix(0,-2.0000001,1.9999999,0,1034.195,1298.6541)" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="661.09552" + y="111.05016" + id="text1059-7"><tspan + sodipodi:role="line" + id="tspan1057-5" + x="661.09552" + y="111.05016" + style="stroke-width:1px">4</tspan></text> + </g> + <g + id="g1096-9" + inkscape:label="3" + transform="translate(-136.52022,250.47452)" + style="stroke-width:2"> + <path + inkscape:transform-center-x="14.956364" + transform="rotate(-90,746.45698,-44.543641)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path979-6" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="-216.2599" + sodipodi:r1="59.825443" + sodipodi:r2="29.912722" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z" + inkscape:transform-center-y="-5.9989963e-06" /> + <text + id="text1063-2" + y="111.05016" + x="565.25018" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:1px" + y="111.05016" + x="565.25018" + id="tspan1061-1" + sodipodi:role="line">3</tspan></text> + </g> + <g + id="g1076-7" + inkscape:label="2" + transform="translate(-416.52022,170.47452)" + style="stroke-width:2"> + <path + inkscape:transform-center-x="-14.956365" + transform="matrix(0,-1,-1,0,1043.9134,701.91334)" + inkscape:transform-center-y="-5.5023185e-06" + d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="29.912722" + sodipodi:r1="59.825443" + sodipodi:cy="105.17262" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path985-8" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" /> + <text + id="text1067-5" + y="111.05016" + x="925.82605" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:1px" + y="111.05016" + x="925.82605" + id="tspan1065-7" + sodipodi:role="line">2</tspan></text> + </g> + <g + id="g1081-4" + inkscape:label="1" + transform="translate(-416.52022,170.47452)" + style="stroke-width:2"> + <path + inkscape:transform-center-x="-14.956349" + transform="matrix(0,-2.0000001,-1.9999999,0,1122.1514,1298.6541)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path987-1" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="136.44444" + sodipodi:r1="29.912722" + sodipodi:r2="14.956361" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z" + inkscape:transform-center-y="-3.3040441e-05" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="842.71497" + y="111.05016" + id="text1071-8"><tspan + sodipodi:role="line" + id="tspan1069-5" + x="842.71497" + y="111.05016" + style="stroke-width:1px">1</tspan></text> + </g> + </g> + </g> + </g> + <g + transform="matrix(3.3549332,0,0,3.14525,-181.87457,3116.0198)" + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g1490" + inkscape:label="HMI:ModalOKDialog"> + <path + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.6;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.16776976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="M 54.211099,1.2654702 H 435.73881 V 230.18209 H 54.211099 Z" + id="path1386" + inkscape:connector-curvature="0" + inkscape:label="Background" + sodipodi:nodetypes="ccccc" /> + <rect + inkscape:label="Field" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#fffff5;fill-opacity:1;fill-rule:nonzero;stroke:#202326;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect1388" + width="314.68832" + height="68.369255" + x="87.630791" + y="56.041908" + rx="3.8152773" + ry="3.8152773" /> + <text + inkscape:label="Message" + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.0763855px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.47690967px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="243.24242" + y="94.637527" + id="text1392"><tspan + sodipodi:role="line" + id="tspan1390" + x="243.24242" + y="94.637527" + style="text-align:center;text-anchor:middle;stroke-width:0.47690967px">message</tspan></text> + <g + transform="translate(-158.98593,95.381925)" + inkscape:label="OK" + id="g1466"> + <path + inkscape:connector-curvature="0" + d="m 363.41531,54.792986 h 81.09115 c 3.34,0 5.01006,3.34003 5.01006,5.010045 v 30.060225 c 0,3.340029 -1.67006,5.010032 -5.01006,5.010032 h -81.09115 c -1.67006,0 -5.01007,-1.670003 -5.01007,-5.010032 V 59.803031 c 0,-1.670015 3.34001,-5.010045 5.01007,-5.010045 z" + id="path1462" + style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + sodipodi:nodetypes="sssssssss" /> + <text + transform="scale(1.0007154,0.99928511)" + style="font-weight:normal;font-size:10.63882256px;font-family:Arial;fill:#ffffff;fill-rule:evenodd;stroke-width:0.36866826" + id="text1464" + y="78.632088" + x="402.71881"> + <tspan + style="text-align:center;text-anchor:middle" + id="tspan5195">OK</tspan> + </text> + </g> + <text + inkscape:label="Info" + transform="scale(0.96824589,1.0327955)" + id="text1482" + y="12.333653" + x="252.9579" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.31375408px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.30784383px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:0.30784383px" + y="12.333653" + x="252.9579" + id="tspan1480" + sodipodi:role="line">information</tspan></text> + </g> + <g + inkscape:label="HMI:Meter@/PUMP0/SLOTH" + transform="matrix(3.7795276,0,0,3.7795276,1628.51,630.30393)" + id="g1338"> + <path + inkscape:label="range" + sodipodi:open="true" + d="M 63.610123,2.2017068 A 64.411957,64.411957 0 0 1 128.02208,-62.210247" + sodipodi:end="4.712389" + sodipodi:start="3.1415927" + sodipodi:ry="64.411957" + sodipodi:rx="64.411957" + sodipodi:cy="2.2017097" + sodipodi:cx="128.02208" + sodipodi:type="arc" + id="path1318" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#3ee800;stroke-width:26.45833397;stroke-miterlimit:4;stroke-dasharray:2.64583333, 2.64583333;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <path + inkscape:label="needle" + sodipodi:nodetypes="cc" + inkscape:connector-curvature="0" + id="path1320" + d="M 130.96206,4.0725977 79.111776,-41.363223" + style="fill:none;fill-rule:evenodd;stroke:#ff3000;stroke-width:2.96333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:29.63333321;stroke-opacity:1;marker-end:url(#marker1656)" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="49.132977" + y="4.9187088" + id="text1324" + inkscape:label="min"><tspan + sodipodi:role="line" + id="tspan1322" + x="49.132977" + y="4.9187088" + style="text-align:end;text-anchor:end;fill:#ff6600;stroke-width:0.26458332px">0</tspan></text> + <text + id="text1328" + y="-78.144218" + x="127.48073" + style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + inkscape:label="max"><tspan + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px" + y="-78.144218" + x="127.48073" + id="tspan1326" + sodipodi:role="line">10000</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="113.53007" + y="-6.1937833" + id="text1332" + inkscape:label="value"><tspan + sodipodi:role="line" + x="113.53007" + y="-6.1937833" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px" + id="tspan1330">000</tspan></text> + <text + inkscape:label="unit" + id="text1336" + y="1.1408259" + x="124.77896" + style="font-style:normal;font-weight:normal;font-size:7.5467205px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + id="tspan1334" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px" + y="1.1408259" + x="124.77896" + sodipodi:role="line">bar</tspan></text> + </g> + <g + inkscape:label="HMI:Switch@/PUMP0/BOOLOUT" + id="g1368" + transform="translate(1424.3019,-503.18786)"> + <g + id="g1352" + style="fill:#ff0000;stroke:#ff00ff" + inkscape:label="true"> + <path + d="M 825.90072,963.24473 V 1105.042 L 960.08286,916.47892 V 809.26931 Z" + style="fill:#353564;fill-rule:evenodd;stroke:none;stroke-linejoin:round" + id="path3479" + inkscape:connector-curvature="0" /> + <path + d="m 825.90072,1105.042 90.50967,81.6485 121.15161,-225.30347 -77.47914,-44.90811 z" + style="fill:#afafde;fill-rule:evenodd;stroke:none;stroke-linejoin:round" + id="path3481" + inkscape:connector-curvature="0" /> + <path + d="m 960.08286,809.26931 77.47914,36.25624 v 115.86148 l -77.47914,-44.90811 z" + style="fill:#e9e9ff;fill-rule:evenodd;stroke:none;stroke-linejoin:round" + id="path3483" + inkscape:connector-curvature="0" /> + <path + d="M 825.90072,963.24473 916.41039,1029.3537 1037.562,845.52555 960.08286,809.26931 Z" + style="fill:#4d4d9f;fill-rule:evenodd;stroke:none;stroke-linejoin:round" + id="path3485" + inkscape:connector-curvature="0" /> + <path + d="m 916.41039,1029.3537 v 157.3368 L 1037.562,961.38703 V 845.52555 Z" + style="fill:#d7d7ff;fill-rule:evenodd;stroke:none;stroke-linejoin:round" + id="path3487" + inkscape:connector-curvature="0" /> + <path + d="m 825.90072,963.24473 90.50967,66.10897 v 157.3368 l -90.50967,-81.6485 z" + style="fill:#8686bf;fill-rule:evenodd;stroke:none;stroke-linejoin:round" + id="path3489" + inkscape:connector-curvature="0" /> + </g> + <g + id="g1366" + style="fill:#ff0000;stroke:#ff00ff" + inkscape:label="false"> + <path + d="M 855.90072,905.24473 V 1047.042 L 978.37453,966.29311 V 859.08349 Z" + style="fill:#353564;fill-rule:evenodd;stroke:none;stroke-linejoin:round" + id="path3465" + inkscape:connector-curvature="0" /> + <path + d="m 855.90072,1047.042 90.50967,81.6485 108.49841,-108.7886 -76.53427,-53.60879 z" + style="fill:#afafde;fill-rule:evenodd;stroke:none;stroke-linejoin:round" + id="path3467" + inkscape:connector-curvature="0" /> + <path + d="m 978.37453,859.08349 76.53427,44.9569 v 115.86151 l -76.53427,-53.60879 z" + style="fill:#e9e9ff;fill-rule:evenodd;stroke:none;stroke-linejoin:round" + id="path3469" + inkscape:connector-curvature="0" /> + <path + d="m 855.90072,905.24473 90.50967,66.109 108.49841,-67.31334 -76.53427,-44.9569 z" + style="fill:#4d389f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linejoin:round" + id="path3471" + inkscape:connector-curvature="0" /> + <path + d="M 946.41039,971.35373 V 1128.6905 L 1054.9088,1019.9019 V 904.04039 Z" + style="fill:#d78bff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linejoin:round" + id="path3473" + inkscape:connector-curvature="0" /> + <path + d="m 855.90072,905.24473 90.50967,66.109 v 157.33677 l -90.50967,-81.6485 z" + style="fill:#8667bf;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linejoin:round" + id="path3475" + inkscape:connector-curvature="0" /> + </g> + </g> + <g + transform="matrix(0.63690435,0,0,0.63690435,1576.4961,80.355376)" + inkscape:label="HMI:Input@/PUMP0/PRESSURE" + id="g1394"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="136.32812" + y="218.24219" + id="text1380" + inkscape:label="value"><tspan + sodipodi:role="line" + id="tspan1378" + x="136.32812" + y="218.24219" + style="stroke-width:1px">8888</tspan></text> + <path + inkscape:label="-100" + inkscape:transform-center-y="14.956363" + d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="29.912722" + sodipodi:r1="59.825443" + sodipodi:cy="-216.2599" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path1382" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" + transform="scale(1,-1)" /> + <path + transform="scale(1,-1)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path1384" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="-184.98808" + sodipodi:r1="29.912722" + sodipodi:r2="14.956361" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z" + inkscape:transform-center-y="7.4781812" + inkscape:label="-10" /> + <rect + inkscape:label="edit" + onclick="" + y="95.40741" + x="139.85185" + height="128" + width="407.7037" + id="rect1386" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <path + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path1388" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="105.17262" + sodipodi:r1="59.825443" + sodipodi:r2="29.912722" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z" + inkscape:transform-center-y="-14.956361" + inkscape:label="+100" /> + <path + inkscape:label="+10" + inkscape:transform-center-y="-7.4781804" + d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="14.956361" + sodipodi:r1="29.912722" + sodipodi:cy="136.44444" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path1390" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" /> + <path + inkscape:label="=0" + inkscape:transform-center-y="-14.956361" + d="M 121.35644,205.1862 C 158.18649,167.80191 3.342862,168.95829 40.72715,205.78834 78.111437,242.61839 76.95506,87.774762 40.125008,125.15905 3.2949549,162.54334 158.13858,161.38696 120.7543,124.55691 83.370008,87.726855 84.526385,242.57048 121.35644,205.1862 Z" + inkscape:randomized="0" + inkscape:rounded="-0.65084865" + inkscape:flatsided="true" + sodipodi:arg2="1.5633284" + sodipodi:arg1="0.77793027" + sodipodi:r2="29.912722" + sodipodi:r1="57.015106" + sodipodi:cy="165.17262" + sodipodi:cx="80.740723" + sodipodi:sides="4" + id="path1392" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" /> + </g> + <g + style="stroke-width:2" + inkscape:label="HMI:Input@/PUMP0/STRIN" + id="g1442" + transform="matrix(0.5,0,0,0.5,1470.1103,205.71623)"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="136.32812" + y="218.24219" + id="text1398" + inkscape:label="value"><tspan + sodipodi:role="line" + id="tspan1396" + x="136.32812" + y="218.24219" + style="stroke-width:2px">8888</tspan></text> + <rect + inkscape:label="edit" + onclick="" + y="95.40741" + x="139.85185" + height="128" + width="407.7037" + id="rect1400" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <g + style="stroke-width:2" + id="g1408" + inkscape:label="+"dhu"" + transform="translate(-416.52022,170.47452)"> + <path + inkscape:connector-curvature="0" + id="path1402" + d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z" + inkscape:transform-center-y="-14.956361" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <text + id="text1406" + y="111.05016" + x="733.58197" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:1px" + y="111.05016" + x="733.58197" + id="tspan1404" + sodipodi:role="line">dhu</tspan></text> + </g> + <g + style="stroke-width:2" + id="g1416" + inkscape:label="="plop"" + transform="translate(-416.52022,170.47452)"> + <path + inkscape:transform-center-x="14.956371" + inkscape:transform-center-y="-3.6154501e-05" + d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="14.956361" + sodipodi:r1="29.912722" + sodipodi:cy="-184.98808" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path1410" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" + transform="matrix(0,-2.0000001,1.9999999,0,1034.195,1298.6541)" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="633.09552" + y="111.05016" + id="text1414"><tspan + sodipodi:role="line" + id="tspan1412" + x="633.09552" + y="111.05016" + style="stroke-width:1px">plop</tspan></text> + </g> + <g + style="stroke-width:2" + id="g1424" + inkscape:label="="mhoo"" + transform="translate(-416.52022,170.47452)"> + <path + inkscape:transform-center-x="14.956364" + transform="rotate(-90,746.45698,-44.543641)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path1418" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="-216.2599" + sodipodi:r1="59.825443" + sodipodi:r2="29.912722" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z" + inkscape:transform-center-y="-5.9989963e-06" /> + <text + id="text1422" + y="111.05016" + x="537.25018" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:1px" + y="111.05016" + x="537.25018" + id="tspan1420" + sodipodi:role="line">mhoo</tspan></text> + </g> + <g + style="stroke-width:2" + id="g1432" + inkscape:label="="yodl"" + transform="translate(-416.52022,170.47452)"> + <path + inkscape:transform-center-x="-14.956365" + transform="matrix(0,-1,-1,0,1043.9134,701.91334)" + inkscape:transform-center-y="-5.5023185e-06" + d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="29.912722" + sodipodi:r1="59.825443" + sodipodi:cy="105.17262" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path1426" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" /> + <text + id="text1430" + y="111.05016" + x="925.82605" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:1px" + y="111.05016" + x="925.82605" + id="tspan1428" + sodipodi:role="line">yodl</tspan></text> + </g> + <g + style="stroke-width:2" + id="g1440" + inkscape:label="="mhe"" + transform="translate(-416.52022,170.47452)"> + <path + inkscape:transform-center-x="-14.956349" + transform="matrix(0,-2.0000001,-1.9999999,0,1122.1514,1298.6541)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path1434" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="136.44444" + sodipodi:r1="29.912722" + sodipodi:r2="14.956361" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z" + inkscape:transform-center-y="-3.3040441e-05" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="842.71497" + y="111.05016" + id="text1438"><tspan + sodipodi:role="line" + id="tspan1436" + x="842.71497" + y="111.05016" + style="stroke-width:1px">mhe</tspan></text> + </g> + </g> + <text + inkscape:label="HMI:Display@/PUMP0/STROUT" + id="text1446" + y="469.12109" + x="1578.1641" + style="font-style:normal;font-weight:normal;font-size:80px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="fill:#ffffff;fill-opacity:1;stroke-width:0.5px" + y="469.12109" + x="1578.1641" + id="tspan1444" + sodipodi:role="line">8888</tspan></text> + <g + transform="matrix(0.57180538,0,0,0.57180538,-153.64055,248.51305)" + inkscape:label="HMI:Jump:RelativePageTest@/PUMP0" + id="g1458"> + <g + inkscape:label="button" + id="g1450"> + <rect + inkscape:label="button" + ry="35.579063" + y="594.82263" + x="971.96545" + height="95.723877" + width="245.44583" + id="rect1448" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + </g> + <g + inkscape:label="text" + id="g1456"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="1090.7626" + y="656.98151" + id="text1454" + inkscape:label="setting_jmp"><tspan + sodipodi:role="line" + x="1090.7626" + y="656.98151" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px" + id="tspan1460">Pump 0</tspan></text> + </g> + </g> + <g + id="g1475" + inkscape:label="HMI:Jump:RelativePageTest@/PUMP1" + transform="matrix(0.57180538,0,0,0.57180538,6.35945,248.51305)"> + <g + id="g1467" + inkscape:label="button"> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect1464" + width="245.44583" + height="95.723877" + x="971.96545" + y="594.82263" + ry="35.579063" + inkscape:label="button" /> + </g> + <g + id="g1473" + inkscape:label="text"> + <text + inkscape:label="setting_jmp" + id="text1471" + y="656.98151" + x="1090.7626" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + id="tspan1469" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px" + y="656.98151" + x="1090.7626" + sodipodi:role="line">Pump 1</tspan><tspan + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px" + y="706.98151" + x="1090.7626" + sodipodi:role="line" + id="tspan1477" /></text> + </g> + </g> + <g + transform="matrix(0.57180538,0,0,0.57180538,166.35945,248.51305)" + inkscape:label="HMI:Jump:RelativePageTest@/PUMP2" + id="g1491"> + <g + inkscape:label="button" + id="g1481"> + <rect + inkscape:label="button" + ry="35.579063" + y="594.82263" + x="971.96545" + height="95.723877" + width="245.44583" + id="rect1479" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + </g> + <g + inkscape:label="text" + id="g1489"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="1090.7626" + y="656.98151" + id="text1487" + inkscape:label="setting_jmp"><tspan + sodipodi:role="line" + x="1090.7626" + y="656.98151" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px" + id="tspan1493">Pump 2</tspan><tspan + id="tspan1485" + sodipodi:role="line" + x="1090.7626" + y="706.98151" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px" /></text> + </g> + </g> + <g + id="g1509" + inkscape:label="HMI:Jump:RelativePageTest@/PUMP3" + transform="matrix(0.57180538,0,0,0.57180538,326.35945,248.51305)"> + <g + id="g1499" + inkscape:label="button"> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect1497" + width="245.44583" + height="95.723877" + x="971.96545" + y="594.82263" + ry="35.579063" + inkscape:label="button" /> + </g> + <g + id="g1507" + inkscape:label="text"> + <text + inkscape:label="setting_jmp" + id="text1505" + y="656.98151" + x="1090.7626" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px" + y="656.98151" + x="1090.7626" + sodipodi:role="line" + id="tspan1511">Pump 3</tspan><tspan + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px" + y="706.98151" + x="1090.7626" + sodipodi:role="line" + id="tspan1503" /></text> + </g> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:55.09014511px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.34431386px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="403.8551" + y="700.05371" + id="text1517" + inkscape:label="HMI:Display@/PUMP0/STROUT"><tspan + sodipodi:role="line" + id="tspan1515" + x="403.8551" + y="700.05371" + style="fill:#ffffff;fill-opacity:1;stroke-width:0.34431386px">8888</tspan></text> + <text + inkscape:label="HMI:Display@/PUMP1/STROUT" + id="text1521" + y="700.05371" + x="563.8551" + style="font-style:normal;font-weight:normal;font-size:55.09014511px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.34431386px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="fill:#ffffff;fill-opacity:1;stroke-width:0.34431386px" + y="700.05371" + x="563.8551" + id="tspan1519" + sodipodi:role="line">8888</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:55.09014511px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.34431386px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="723.8551" + y="700.05371" + id="text1525" + inkscape:label="HMI:Display@/PUMP2/STROUT"><tspan + sodipodi:role="line" + id="tspan1523" + x="723.8551" + y="700.05371" + style="fill:#ffffff;fill-opacity:1;stroke-width:0.34431386px">8888</tspan></text> + <text + inkscape:label="HMI:Display@/PUMP3/STROUT" + id="text1529" + y="700.05371" + x="883.8551" + style="font-style:normal;font-weight:normal;font-size:55.09014511px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.34431386px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="fill:#ffffff;fill-opacity:1;stroke-width:0.34431386px" + y="700.05371" + x="883.8551" + id="tspan1527" + sodipodi:role="line">8888</tspan></text> + <g + id="g6077" + inkscape:label="HMI:ForEach:PUMP@/"> + <g + id="g6130" + inkscape:label="PUMP:1"> + <g + transform="matrix(0.57180538,0,0,0.57180538,1024.0513,-317.49049)" + inkscape:label="HMI:Jump:RelativePageTest@/PUMP0" + id="g1458-8"> + <g + inkscape:label="button" + id="g1450-4"> + <rect + inkscape:label="button" + ry="35.579063" + y="594.82263" + x="971.96545" + height="95.723877" + width="245.44583" + id="rect1448-8" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + </g> + <g + inkscape:label="text" + id="g1456-1"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="1038.2972" + y="635.99542" + id="text1454-0" + inkscape:label="setting_jmp"><tspan + sodipodi:role="line" + x="1038.2972" + y="635.99542" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px" + id="tspan1460-3">Pump</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:39.32668304px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.24579209px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="992.45087" + y="674.76117" + id="text1517-8" + inkscape:label="HMI:Display@/PUMP0/STROUT"><tspan + sodipodi:role="line" + id="tspan1515-5" + x="992.45087" + y="674.76117" + style="fill:#000000;fill-opacity:1;stroke-width:0.24579209px">8888</tspan></text> + </g> + </g> + </g> + <g + id="g6122" + inkscape:label="PUMP:2"> + <g + id="g1475-0" + inkscape:label="HMI:Jump:RelativePageTest@/PUMP1" + transform="matrix(0.57180538,0,0,0.57180538,1184.0513,-317.49049)"> + <g + id="g1467-4" + inkscape:label="button"> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect1464-4" + width="245.44583" + height="95.723877" + x="971.96545" + y="594.82263" + ry="35.579063" + inkscape:label="button" /> + </g> + <g + id="g1473-4" + inkscape:label="text"> + <text + inkscape:label="setting_jmp" + id="text1471-4" + y="635.99542" + x="1038.2972" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px" + y="635.99542" + x="1038.2972" + sodipodi:role="line" + id="tspan1477-6">Pump</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:39.32668304px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.24579208px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="992.8111" + y="674.76117" + id="text1517-8-5" + inkscape:label="HMI:Display@/PUMP1/STROUT"><tspan + sodipodi:role="line" + id="tspan1515-5-3" + x="992.8111" + y="674.76117" + style="fill:#000000;fill-opacity:1;stroke-width:0.24579208px">8888</tspan></text> + </g> + </g> + </g> + <g + id="g6113" + inkscape:label="PUMP:3"> + <g + transform="matrix(0.57180538,0,0,0.57180538,1344.0513,-317.49049)" + inkscape:label="HMI:Jump:RelativePageTest@/PUMP2" + id="g1491-3"> + <g + inkscape:label="button" + id="g1481-1"> + <rect + inkscape:label="button" + ry="35.579063" + y="594.82263" + x="971.96545" + height="95.723877" + width="245.44583" + id="rect1479-7" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + </g> + <g + inkscape:label="text" + id="g1489-5"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="1038.2972" + y="635.99542" + id="text1487-9" + inkscape:label="setting_jmp"><tspan + id="tspan1485-2" + sodipodi:role="line" + x="1038.2972" + y="635.99542" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px">Pump</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:39.32668304px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.24579208px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="993.17108" + y="674.76117" + id="text1517-8-8" + inkscape:label="HMI:Display@/PUMP2/STROUT"><tspan + sodipodi:role="line" + id="tspan1515-5-8" + x="993.17108" + y="674.76117" + style="fill:#000000;fill-opacity:1;stroke-width:0.24579208px">8888</tspan></text> + </g> + </g> + </g> + <g + id="g6104" + inkscape:label="PUMP:4"> + <g + id="g1509-1" + inkscape:label="HMI:Jump:RelativePageTest@/PUMP3" + transform="matrix(0.57180538,0,0,0.57180538,1504.0513,-317.49049)"> + <g + id="g1499-7" + inkscape:label="button"> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect1497-8" + width="245.44583" + height="95.723877" + x="971.96545" + y="594.82263" + ry="35.579063" + inkscape:label="button" /> + </g> + <g + id="g1507-5" + inkscape:label="text"> + <text + inkscape:label="setting_jmp" + id="text1505-7" + y="635.99542" + x="1038.2972" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px" + y="635.99542" + x="1038.2972" + sodipodi:role="line" + id="tspan1511-4">Pump</tspan><tspan + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px" + y="685.99542" + x="1038.2972" + sodipodi:role="line" + id="tspan1503-1" /></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:39.32668304px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.24579208px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="993.53101" + y="674.76117" + id="text1517-8-3" + inkscape:label="HMI:Display@/PUMP3/STROUT"><tspan + sodipodi:role="line" + id="tspan1515-5-1" + x="993.53101" + y="674.76117" + style="fill:#000000;fill-opacity:1;stroke-width:0.24579208px">8888</tspan></text> + </g> + </g> + </g> + <g + inkscape:label="PUMP:+1" + id="g6241" + transform="matrix(0.57180538,0,0,0.57180538,1461.2541,-321.48847)"> + <rect + style="fill:#000000;fill-opacity:1;stroke:#ff0000;stroke-width:1.74884677" + id="rect6235" + width="89.036743" + height="79.143768" + x="1326.8333" + y="612.41589" + rx="22.385239" + ry="20.986162" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:42.81540298px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.0703851" + x="1340.5292" + y="663.73657" + id="text6239"><tspan + sodipodi:role="line" + id="tspan6237" + x="1340.5292" + y="663.73657" + style="fill:#ffffff;stroke-width:1.0703851">+1</tspan></text> + </g> + <g + transform="matrix(0.57180538,0,0,0.57180538,752.02604,-322.19558)" + id="g6209" + inkscape:label="PUMP:-1"> + <rect + ry="20.986162" + rx="22.385239" + y="612.41589" + x="1326.8333" + height="79.143768" + width="89.036743" + id="rect6200" + style="fill:#000000;fill-opacity:1;stroke:#ff0000;stroke-width:1.74884677" /> + <text + id="text6204" + y="663.73657" + x="1340.5292" + style="font-style:normal;font-weight:normal;font-size:42.81540298px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.0703851" + xml:space="preserve"><tspan + style="fill:#ffffff;stroke-width:1.0703851" + y="663.73657" + x="1340.5292" + id="tspan6202" + sodipodi:role="line">-1</tspan></text> + </g> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:59.01374435px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#82ff77;fill-opacity:1;stroke:none;stroke-width:0.3688359px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="689.9715" + y="539.24927" + id="text995-6" + inkscape:label="HMI:Display:Ploc %d (%d) grmbl !@/PUMP0/PRESSURE@/PUMP0/SLOTH"><tspan + sodipodi:role="line" + id="tspan993-3" + x="689.9715" + y="539.24927" + style="text-align:center;text-anchor:middle;fill:#82ff77;fill-opacity:1;stroke-width:0.3688359px">8888</tspan></text> + <text + id="text831-1" + y="477.76758" + x="581.62634" + style="font-style:normal;font-weight:normal;font-size:25.4761734px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.63690436px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + inkscape:label="actual_label"><tspan + y="477.76758" + x="581.62634" + id="tspan829-7" + sodipodi:role="line" + style="stroke-width:0.63690436px">Multiple variables</tspan></text> + <text + inkscape:label="HMI:Display@paff" + id="text1457" + y="68.844757" + x="750.28473" + style="font-style:normal;font-weight:normal;font-size:22.87221527px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.28590268px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="fill:#ffffff;fill-opacity:1;stroke-width:0.28590268px" + y="68.844757" + x="750.28473" + id="tspan1455" + sodipodi:role="line">8888</tspan></text> + <g + style="stroke-width:4" + inkscape:label="HMI:Input@paff" + id="g1505" + transform="matrix(0.14295135,0,0,0.14295135,589.21833,37.615184)"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:4px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="136.32812" + y="218.24219" + id="text1461" + inkscape:label="value"><tspan + sodipodi:role="line" + id="tspan1459" + x="136.32812" + y="218.24219" + style="stroke-width:4px">8888</tspan></text> + <rect + inkscape:label="edit" + onclick="" + y="95.40741" + x="139.85185" + height="128" + width="407.7037" + id="rect1463" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <g + style="stroke-width:4" + id="g1471" + inkscape:label="+"dhu"" + transform="translate(-416.52022,170.47452)"> + <path + inkscape:connector-curvature="0" + id="path1465" + d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z" + inkscape:transform-center-y="-14.956361" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <text + id="text1469" + y="111.05016" + x="733.58197" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:2px" + y="111.05016" + x="733.58197" + id="tspan1467" + sodipodi:role="line">dhu</tspan></text> + </g> + <g + style="stroke-width:4" + id="g1479" + inkscape:label="="plop"" + transform="translate(-416.52022,170.47452)"> + <path + inkscape:transform-center-x="14.956371" + inkscape:transform-center-y="-3.6154501e-05" + d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="14.956361" + sodipodi:r1="29.912722" + sodipodi:cy="-184.98808" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path1473" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" + transform="matrix(0,-2.0000001,1.9999999,0,1034.195,1298.6541)" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="633.09552" + y="111.05016" + id="text1477"><tspan + sodipodi:role="line" + id="tspan1475" + x="633.09552" + y="111.05016" + style="stroke-width:2px">plop</tspan></text> + </g> + <g + style="stroke-width:4" + id="g1487" + inkscape:label="="mhoo"" + transform="translate(-416.52022,170.47452)"> + <path + inkscape:transform-center-x="14.956364" + transform="rotate(-90,746.45698,-44.543641)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path1481" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="-216.2599" + sodipodi:r1="59.825443" + sodipodi:r2="29.912722" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z" + inkscape:transform-center-y="-5.9989963e-06" /> + <text + id="text1485" + y="111.05016" + x="537.25018" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:2px" + y="111.05016" + x="537.25018" + id="tspan1483" + sodipodi:role="line">mhoo</tspan></text> + </g> + <g + style="stroke-width:4" + id="g1495" + inkscape:label="="yodl"" + transform="translate(-416.52022,170.47452)"> + <path + inkscape:transform-center-x="-14.956365" + transform="matrix(0,-1,-1,0,1043.9134,701.91334)" + inkscape:transform-center-y="-5.5023185e-06" + d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="29.912722" + sodipodi:r1="59.825443" + sodipodi:cy="105.17262" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path1489" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" /> + <text + id="text1493" + y="111.05016" + x="925.82605" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:2px" + y="111.05016" + x="925.82605" + id="tspan1491" + sodipodi:role="line">yodl</tspan></text> + </g> + <g + style="stroke-width:4" + id="g1503" + inkscape:label="="mhe"" + transform="translate(-416.52022,170.47452)"> + <path + inkscape:transform-center-x="-14.956349" + transform="matrix(0,-2.0000001,-1.9999999,0,1122.1514,1298.6541)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path1497" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="136.44444" + sodipodi:r1="29.912722" + sodipodi:r2="14.956361" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z" + inkscape:transform-center-y="-3.3040441e-05" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="842.71497" + y="111.05016" + id="text1501"><tspan + sodipodi:role="line" + id="tspan1499" + x="842.71497" + y="111.05016" + style="stroke-width:2px">mhe</tspan></text> + </g> + </g> + <text + inkscape:label="actual_label" + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:12.7380867px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.63690436px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="509.67926" + y="43.42762" + id="text1527"><tspan + style="stroke-width:0.63690436px" + sodipodi:role="line" + id="tspan1525" + x="509.67926" + y="43.42762">HMI_LOCAL variables</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:22.87221527px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.28590268px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="750.28473" + y="128.84476" + id="text1557" + inkscape:label="HMI:Display@.piff"><tspan + sodipodi:role="line" + id="tspan1555" + x="750.28473" + y="128.84476" + style="fill:#ffffff;fill-opacity:1;stroke-width:0.28590268px">8888</tspan></text> + <g + transform="matrix(0.14295135,0,0,0.14295135,589.21833,97.61518)" + id="g1605" + inkscape:label="HMI:Input@.piff" + style="stroke-width:4"> + <text + inkscape:label="value" + id="text1561" + y="218.24219" + x="136.32812" + style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:4px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:4px" + y="218.24219" + x="136.32812" + id="tspan1559" + sodipodi:role="line">8888</tspan></text> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect1563" + width="407.7037" + height="128" + x="139.85185" + y="95.40741" + onclick="" + inkscape:label="edit" /> + <g + transform="translate(-416.52022,170.47452)" + inkscape:label="+"dhu"" + id="g1571" + style="stroke-width:4"> + <path + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + inkscape:transform-center-y="-14.956361" + d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z" + id="path1565" + inkscape:connector-curvature="0" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="733.58197" + y="111.05016" + id="text1569"><tspan + sodipodi:role="line" + id="tspan1567" + x="733.58197" + y="111.05016" + style="stroke-width:2px">dhu</tspan></text> + </g> + <g + transform="translate(-416.52022,170.47452)" + inkscape:label="="plop"" + id="g1579" + style="stroke-width:4"> + <path + transform="matrix(0,-2.0000001,1.9999999,0,1034.195,1298.6541)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path1573" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="-184.98808" + sodipodi:r1="29.912722" + sodipodi:r2="14.956361" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z" + inkscape:transform-center-y="-3.6154501e-05" + inkscape:transform-center-x="14.956371" /> + <text + id="text1577" + y="111.05016" + x="633.09552" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:2px" + y="111.05016" + x="633.09552" + id="tspan1575" + sodipodi:role="line">plop</tspan></text> + </g> + <g + transform="translate(-416.52022,170.47452)" + inkscape:label="="mhoo"" + id="g1587" + style="stroke-width:4"> + <path + inkscape:transform-center-y="-5.9989963e-06" + d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="29.912722" + sodipodi:r1="59.825443" + sodipodi:cy="-216.2599" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path1581" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" + transform="rotate(-90,746.45698,-44.543641)" + inkscape:transform-center-x="14.956364" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="537.25018" + y="111.05016" + id="text1585"><tspan + sodipodi:role="line" + id="tspan1583" + x="537.25018" + y="111.05016" + style="stroke-width:2px">mhoo</tspan></text> + </g> + <g + transform="translate(-416.52022,170.47452)" + inkscape:label="="yodl"" + id="g1595" + style="stroke-width:4"> + <path + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path1589" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="105.17262" + sodipodi:r1="59.825443" + sodipodi:r2="29.912722" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z" + inkscape:transform-center-y="-5.5023185e-06" + transform="matrix(0,-1,-1,0,1043.9134,701.91334)" + inkscape:transform-center-x="-14.956365" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="925.82605" + y="111.05016" + id="text1593"><tspan + sodipodi:role="line" + id="tspan1591" + x="925.82605" + y="111.05016" + style="stroke-width:2px">yodl</tspan></text> + </g> + <g + transform="translate(-416.52022,170.47452)" + inkscape:label="="mhe"" + id="g1603" + style="stroke-width:4"> + <path + inkscape:transform-center-y="-3.3040441e-05" + d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="14.956361" + sodipodi:r1="29.912722" + sodipodi:cy="136.44444" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path1597" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" + transform="matrix(0,-2.0000001,-1.9999999,0,1122.1514,1298.6541)" + inkscape:transform-center-x="-14.956349" /> + <text + id="text1601" + y="111.05016" + x="842.71497" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:2px" + y="111.05016" + x="842.71497" + id="tspan1599" + sodipodi:role="line">mhe</tspan></text> + </g> + </g> + <text + id="text1609" + y="103.42763" + x="509.67926" + style="font-style:normal;font-weight:normal;font-size:12.7380867px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.63690436px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + inkscape:label="actual_label"><tspan + y="103.42763" + x="509.67926" + sodipodi:role="line" + style="stroke-width:0.63690436px" + id="tspan1611">PAGE_LOCAL variables</tspan></text> + <g + inkscape:label="HMI:Meter@level" + transform="matrix(2.1611542,0,0,2.1611542,602.76714,428.92423)" + id="g709"> + <path + inkscape:label="range" + sodipodi:open="true" + d="M 63.610123,2.2017068 A 64.411957,64.411957 0 0 1 128.02208,-62.210247" + sodipodi:end="4.712389" + sodipodi:start="3.1415927" + sodipodi:ry="64.411957" + sodipodi:rx="64.411957" + sodipodi:cy="2.2017097" + sodipodi:cx="128.02208" + sodipodi:type="arc" + id="path689" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ff7f2a;stroke-width:26.45833397;stroke-miterlimit:4;stroke-dasharray:2.64583333, 2.64583333;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <path + inkscape:label="needle" + sodipodi:nodetypes="cc" + inkscape:connector-curvature="0" + id="path691" + d="M 130.96206,4.0725977 79.111776,-41.363223" + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ff3000;stroke-width:2.96333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0, 32.59666667;stroke-dashoffset:29.63333321;stroke-opacity:1;marker-end:url(#marker1971)" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="49.132977" + y="4.9187088" + id="text695" + inkscape:label="min"><tspan + sodipodi:role="line" + id="tspan693" + x="49.132977" + y="4.9187088" + style="text-align:end;text-anchor:end;fill:#ff6600;stroke-width:0.26458332px">0</tspan></text> + <text + id="text699" + y="-78.144218" + x="127.48073" + style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + inkscape:label="max"><tspan + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px" + y="-78.144218" + x="127.48073" + id="tspan697" + sodipodi:role="line">10000</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="113.53007" + y="-6.1937833" + id="text703" + inkscape:label="value"><tspan + sodipodi:role="line" + x="113.53007" + y="-6.1937833" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px" + id="tspan701">000</tspan></text> + <text + inkscape:label="unit" + id="text707" + y="1.1408259" + x="124.77896" + style="font-style:normal;font-weight:normal;font-size:7.5467205px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + id="tspan705" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px" + y="1.1408259" + x="124.77896" + sodipodi:role="line">bar</tspan></text> + </g> + <g + id="g84-3" + inkscape:label="HMI:Input@level" + transform="matrix(0.35865594,0,0,0.35865594,458.57767,253.49106)"> + <text + inkscape:label="value" + id="text5151-6" + y="218.24219" + x="136.32812" + style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:1px" + y="218.24219" + x="136.32812" + id="tspan5149-7" + sodipodi:role="line">8888</tspan></text> + <path + transform="scale(1,-1)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path89-5" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="-216.2599" + sodipodi:r1="59.825443" + sodipodi:r2="29.912722" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z" + inkscape:transform-center-y="14.956363" + inkscape:label="-100" /> + <path + inkscape:label="-10" + inkscape:transform-center-y="7.4781812" + d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="14.956361" + sodipodi:r1="29.912722" + sodipodi:cy="-184.98808" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path88-3" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" + transform="scale(1,-1)" /> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect85-5" + width="407.7037" + height="128" + x="139.85185" + y="95.40741" + onclick="" + inkscape:label="edit" /> + <path + inkscape:label="+100" + inkscape:transform-center-y="-14.956361" + d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="29.912722" + sodipodi:r1="59.825443" + sodipodi:cy="105.17262" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path87-6" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" /> + <path + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path86-2" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="136.44444" + sodipodi:r1="29.912722" + sodipodi:r2="14.956361" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z" + inkscape:transform-center-y="-7.4781804" + inkscape:label="+10" /> + <path + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path91-9" + sodipodi:sides="4" + sodipodi:cx="80.740723" + sodipodi:cy="165.17262" + sodipodi:r1="57.015106" + sodipodi:r2="29.912722" + sodipodi:arg1="0.77793027" + sodipodi:arg2="1.5633284" + inkscape:flatsided="true" + inkscape:rounded="-0.65084865" + inkscape:randomized="0" + d="M 121.35644,205.1862 C 158.18649,167.80191 3.342862,168.95829 40.72715,205.78834 78.111437,242.61839 76.95506,87.774762 40.125008,125.15905 3.2949549,162.54334 158.13858,161.38696 120.7543,124.55691 83.370008,87.726855 84.526385,242.57048 121.35644,205.1862 Z" + inkscape:transform-center-y="-14.956361" + inkscape:label="=0" /> + </g> + <text + inkscape:label="HMI:Display@paff" + id="text1457-1" + y="215.65211" + x="2632.9148" + style="font-style:normal;font-weight:normal;font-size:45.74443054px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.28590268px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="fill:#ffffff;fill-opacity:1;stroke-width:0.28590268px" + y="215.65211" + x="2632.9148" + id="tspan1455-2" + sodipodi:role="line">8888</tspan></text> + <g + style="stroke-width:2" + inkscape:label="HMI:Input@paff" + id="g1505-7" + transform="matrix(0.28590269,0,0,0.28590269,2430.782,153.19299)"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="136.32812" + y="218.24219" + id="text1461-0" + inkscape:label="value"><tspan + sodipodi:role="line" + id="tspan1459-9" + x="136.32812" + y="218.24219" + style="stroke-width:2px">8888</tspan></text> + <rect + inkscape:label="edit" + onclick="" + y="95.40741" + x="139.85185" + height="128" + width="407.7037" + id="rect1463-3" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <g + style="stroke-width:2" + id="g1471-6" + inkscape:label="+"dhu"" + transform="translate(-416.52022,170.47452)"> + <path + inkscape:connector-curvature="0" + id="path1465-0" + d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z" + inkscape:transform-center-y="-14.956361" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <text + id="text1469-6" + y="111.05016" + x="733.58197" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:1px" + y="111.05016" + x="733.58197" + id="tspan1467-2" + sodipodi:role="line">dhu</tspan></text> + </g> + <g + style="stroke-width:2" + id="g1479-6" + inkscape:label="="plop"" + transform="translate(-416.52022,170.47452)"> + <path + inkscape:transform-center-x="14.956371" + inkscape:transform-center-y="-3.6154501e-05" + d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="14.956361" + sodipodi:r1="29.912722" + sodipodi:cy="-184.98808" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path1473-1" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" + transform="matrix(0,-2.0000001,1.9999999,0,1034.195,1298.6541)" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="633.09552" + y="111.05016" + id="text1477-8"><tspan + sodipodi:role="line" + id="tspan1475-7" + x="633.09552" + y="111.05016" + style="stroke-width:1px">plop</tspan></text> + </g> + <g + style="stroke-width:2" + id="g1487-9" + inkscape:label="="mhoo"" + transform="translate(-416.52022,170.47452)"> + <path + inkscape:transform-center-x="14.956364" + transform="rotate(-90,746.45698,-44.543641)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path1481-2" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="-216.2599" + sodipodi:r1="59.825443" + sodipodi:r2="29.912722" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z" + inkscape:transform-center-y="-5.9989963e-06" /> + <text + id="text1485-0" + y="111.05016" + x="537.25018" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:1px" + y="111.05016" + x="537.25018" + id="tspan1483-2" + sodipodi:role="line">mhoo</tspan></text> + </g> + <g + style="stroke-width:2" + id="g1495-3" + inkscape:label="="yodl"" + transform="translate(-416.52022,170.47452)"> + <path + inkscape:transform-center-x="-14.956365" + transform="matrix(0,-1,-1,0,1043.9134,701.91334)" + inkscape:transform-center-y="-5.5023185e-06" + d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="29.912722" + sodipodi:r1="59.825443" + sodipodi:cy="105.17262" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path1489-7" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" /> + <text + id="text1493-5" + y="111.05016" + x="925.82605" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:1px" + y="111.05016" + x="925.82605" + id="tspan1491-9" + sodipodi:role="line">yodl</tspan></text> + </g> + <g + style="stroke-width:2" + id="g1503-2" + inkscape:label="="mhe"" + transform="translate(-416.52022,170.47452)"> + <path + inkscape:transform-center-x="-14.956349" + transform="matrix(0,-2.0000001,-1.9999999,0,1122.1514,1298.6541)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path1497-2" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="136.44444" + sodipodi:r1="29.912722" + sodipodi:r2="14.956361" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z" + inkscape:transform-center-y="-3.3040441e-05" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="842.71497" + y="111.05016" + id="text1501-8"><tspan + sodipodi:role="line" + id="tspan1499-9" + x="842.71497" + y="111.05016" + style="stroke-width:1px">mhe</tspan></text> + </g> + </g> + <text + inkscape:label="actual_label" + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:25.4761734px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.63690436px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="2471.7039" + y="164.81787" + id="text1527-7"><tspan + style="stroke-width:0.63690436px" + sodipodi:role="line" + id="tspan1525-3" + x="2471.7039" + y="164.81787">HMI_LOCAL variables</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:45.74443054px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.28590268px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="2632.9148" + y="335.65213" + id="text1557-6" + inkscape:label="HMI:Display@.piff"><tspan + sodipodi:role="line" + id="tspan1555-1" + x="2632.9148" + y="335.65213" + style="fill:#ffffff;fill-opacity:1;stroke-width:0.28590268px">8888</tspan></text> + <g + transform="matrix(0.28590269,0,0,0.28590269,2430.782,273.19298)" + id="g1605-2" + inkscape:label="HMI:Input@.piff" + style="stroke-width:2"> + <text + inkscape:label="value" + id="text1561-9" + y="218.24219" + x="136.32812" + style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:2px" + y="218.24219" + x="136.32812" + id="tspan1559-3" + sodipodi:role="line">8888</tspan></text> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect1563-1" + width="407.7037" + height="128" + x="139.85185" + y="95.40741" + onclick="" + inkscape:label="edit" /> + <g + transform="translate(-416.52022,170.47452)" + inkscape:label="+"dhu"" + id="g1571-9" + style="stroke-width:2"> + <path + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + inkscape:transform-center-y="-14.956361" + d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z" + id="path1565-4" + inkscape:connector-curvature="0" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="733.58197" + y="111.05016" + id="text1569-7"><tspan + sodipodi:role="line" + id="tspan1567-8" + x="733.58197" + y="111.05016" + style="stroke-width:1px">dhu</tspan></text> + </g> + <g + transform="translate(-416.52022,170.47452)" + inkscape:label="="plop"" + id="g1579-4" + style="stroke-width:2"> + <path + transform="matrix(0,-2.0000001,1.9999999,0,1034.195,1298.6541)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path1573-5" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="-184.98808" + sodipodi:r1="29.912722" + sodipodi:r2="14.956361" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z" + inkscape:transform-center-y="-3.6154501e-05" + inkscape:transform-center-x="14.956371" /> + <text + id="text1577-0" + y="111.05016" + x="633.09552" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:1px" + y="111.05016" + x="633.09552" + id="tspan1575-3" + sodipodi:role="line">plop</tspan></text> + </g> + <g + transform="translate(-416.52022,170.47452)" + inkscape:label="="mhoo"" + id="g1587-6" + style="stroke-width:2"> + <path + inkscape:transform-center-y="-5.9989963e-06" + d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="29.912722" + sodipodi:r1="59.825443" + sodipodi:cy="-216.2599" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path1581-1" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" + transform="rotate(-90,746.45698,-44.543641)" + inkscape:transform-center-x="14.956364" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="537.25018" + y="111.05016" + id="text1585-0"><tspan + sodipodi:role="line" + id="tspan1583-6" + x="537.25018" + y="111.05016" + style="stroke-width:1px">mhoo</tspan></text> + </g> + <g + transform="translate(-416.52022,170.47452)" + inkscape:label="="yodl"" + id="g1595-3" + style="stroke-width:2"> + <path + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path1589-2" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="105.17262" + sodipodi:r1="59.825443" + sodipodi:r2="29.912722" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z" + inkscape:transform-center-y="-5.5023185e-06" + transform="matrix(0,-1,-1,0,1043.9134,701.91334)" + inkscape:transform-center-x="-14.956365" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="925.82605" + y="111.05016" + id="text1593-0"><tspan + sodipodi:role="line" + id="tspan1591-6" + x="925.82605" + y="111.05016" + style="stroke-width:1px">yodl</tspan></text> + </g> + <g + transform="translate(-416.52022,170.47452)" + inkscape:label="="mhe"" + id="g1603-1" + style="stroke-width:2"> + <path + inkscape:transform-center-y="-3.3040441e-05" + d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="14.956361" + sodipodi:r1="29.912722" + sodipodi:cy="136.44444" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path1597-5" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" + transform="matrix(0,-2.0000001,-1.9999999,0,1122.1514,1298.6541)" + inkscape:transform-center-x="-14.956349" /> + <text + id="text1601-5" + y="111.05016" + x="842.71497" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:1px" + y="111.05016" + x="842.71497" + id="tspan1599-4" + sodipodi:role="line">mhe</tspan></text> + </g> + </g> + <text + id="text1609-7" + y="284.81787" + x="2471.7039" + style="font-style:normal;font-weight:normal;font-size:25.4761734px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.63690436px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + inkscape:label="actual_label"><tspan + y="284.81787" + x="2471.7039" + sodipodi:role="line" + style="stroke-width:0.63690436px" + id="tspan1611-6">PAGE_LOCAL variables</tspan></text> + <text + inkscape:label="HMI:Display@paff" + id="text1457-5" + y="1208.4301" + x="276.83508" + style="font-style:normal;font-weight:normal;font-size:45.74443054px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.28590268px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="fill:#ffffff;fill-opacity:1;stroke-width:0.28590268px" + y="1208.4301" + x="276.83508" + id="tspan1455-6" + sodipodi:role="line">8888</tspan></text> + <g + style="stroke-width:2" + inkscape:label="HMI:Input@paff" + id="g1505-9" + transform="matrix(0.28590269,0,0,0.28590269,74.702238,1145.9709)"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="136.32812" + y="218.24219" + id="text1461-3" + inkscape:label="value"><tspan + sodipodi:role="line" + id="tspan1459-7" + x="136.32812" + y="218.24219" + style="stroke-width:2px">8888</tspan></text> + <rect + inkscape:label="edit" + onclick="" + y="95.40741" + x="139.85185" + height="128" + width="407.7037" + id="rect1463-4" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <g + style="stroke-width:2" + id="g1471-5" + inkscape:label="+"dhu"" + transform="translate(-416.52022,170.47452)"> + <path + inkscape:connector-curvature="0" + id="path1465-2" + d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z" + inkscape:transform-center-y="-14.956361" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <text + id="text1469-5" + y="111.05016" + x="733.58197" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:1px" + y="111.05016" + x="733.58197" + id="tspan1467-4" + sodipodi:role="line">dhu</tspan></text> + </g> + <g + style="stroke-width:2" + id="g1479-7" + inkscape:label="="plop"" + transform="translate(-416.52022,170.47452)"> + <path + inkscape:transform-center-x="14.956371" + inkscape:transform-center-y="-3.6154501e-05" + d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="14.956361" + sodipodi:r1="29.912722" + sodipodi:cy="-184.98808" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path1473-4" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" + transform="matrix(0,-2.0000001,1.9999999,0,1034.195,1298.6541)" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="633.09552" + y="111.05016" + id="text1477-4"><tspan + sodipodi:role="line" + id="tspan1475-3" + x="633.09552" + y="111.05016" + style="stroke-width:1px">plop</tspan></text> + </g> + <g + style="stroke-width:2" + id="g1487-0" + inkscape:label="="mhoo"" + transform="translate(-416.52022,170.47452)"> + <path + inkscape:transform-center-x="14.956364" + transform="rotate(-90,746.45698,-44.543641)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path1481-7" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="-216.2599" + sodipodi:r1="59.825443" + sodipodi:r2="29.912722" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z" + inkscape:transform-center-y="-5.9989963e-06" /> + <text + id="text1485-8" + y="111.05016" + x="537.25018" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:1px" + y="111.05016" + x="537.25018" + id="tspan1483-6" + sodipodi:role="line">mhoo</tspan></text> + </g> + <g + style="stroke-width:2" + id="g1495-8" + inkscape:label="="yodl"" + transform="translate(-416.52022,170.47452)"> + <path + inkscape:transform-center-x="-14.956365" + transform="matrix(0,-1,-1,0,1043.9134,701.91334)" + inkscape:transform-center-y="-5.5023185e-06" + d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="29.912722" + sodipodi:r1="59.825443" + sodipodi:cy="105.17262" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path1489-8" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" /> + <text + id="text1493-4" + y="111.05016" + x="925.82605" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:1px" + y="111.05016" + x="925.82605" + id="tspan1491-3" + sodipodi:role="line">yodl</tspan></text> + </g> + <g + style="stroke-width:2" + id="g1503-1" + inkscape:label="="mhe"" + transform="translate(-416.52022,170.47452)"> + <path + inkscape:transform-center-x="-14.956349" + transform="matrix(0,-2.0000001,-1.9999999,0,1122.1514,1298.6541)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path1497-4" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="136.44444" + sodipodi:r1="29.912722" + sodipodi:r2="14.956361" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z" + inkscape:transform-center-y="-3.3040441e-05" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="842.71497" + y="111.05016" + id="text1501-9"><tspan + sodipodi:role="line" + id="tspan1499-2" + x="842.71497" + y="111.05016" + style="stroke-width:1px">mhe</tspan></text> + </g> + </g> + <text + inkscape:label="actual_label" + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:25.4761734px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.63690436px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="115.62414" + y="1157.5958" + id="text1527-0"><tspan + style="stroke-width:0.63690436px" + sodipodi:role="line" + id="tspan1525-6" + x="115.62414" + y="1157.5958">HMI_LOCAL variables</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:45.74443054px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.28590268px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="276.83508" + y="1328.4301" + id="text1557-8" + inkscape:label="HMI:Display@.piff"><tspan + sodipodi:role="line" + id="tspan1555-9" + x="276.83508" + y="1328.4301" + style="fill:#ffffff;fill-opacity:1;stroke-width:0.28590268px">8888</tspan></text> + <g + transform="matrix(0.28590269,0,0,0.28590269,74.702238,1265.9709)" + id="g1605-26" + inkscape:label="HMI:Input@.piff" + style="stroke-width:2"> + <text + inkscape:label="value" + id="text1561-6" + y="218.24219" + x="136.32812" + style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:2px" + y="218.24219" + x="136.32812" + id="tspan1559-4" + sodipodi:role="line">8888</tspan></text> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect1563-9" + width="407.7037" + height="128" + x="139.85185" + y="95.40741" + onclick="" + inkscape:label="edit" /> + <g + transform="translate(-416.52022,170.47452)" + inkscape:label="+"dhu"" + id="g1571-5" + style="stroke-width:2"> + <path + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + inkscape:transform-center-y="-14.956361" + d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z" + id="path1565-0" + inkscape:connector-curvature="0" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="733.58197" + y="111.05016" + id="text1569-4"><tspan + sodipodi:role="line" + id="tspan1567-87" + x="733.58197" + y="111.05016" + style="stroke-width:1px">dhu</tspan></text> + </g> + <g + transform="translate(-416.52022,170.47452)" + inkscape:label="="plop"" + id="g1579-1" + style="stroke-width:2"> + <path + transform="matrix(0,-2.0000001,1.9999999,0,1034.195,1298.6541)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path1573-7" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="-184.98808" + sodipodi:r1="29.912722" + sodipodi:r2="14.956361" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z" + inkscape:transform-center-y="-3.6154501e-05" + inkscape:transform-center-x="14.956371" /> + <text + id="text1577-2" + y="111.05016" + x="633.09552" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:1px" + y="111.05016" + x="633.09552" + id="tspan1575-7" + sodipodi:role="line">plop</tspan></text> + </g> + <g + transform="translate(-416.52022,170.47452)" + inkscape:label="="mhoo"" + id="g1587-2" + style="stroke-width:2"> + <path + inkscape:transform-center-y="-5.9989963e-06" + d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="29.912722" + sodipodi:r1="59.825443" + sodipodi:cy="-216.2599" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path1581-2" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" + transform="rotate(-90,746.45698,-44.543641)" + inkscape:transform-center-x="14.956364" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="537.25018" + y="111.05016" + id="text1585-6"><tspan + sodipodi:role="line" + id="tspan1583-1" + x="537.25018" + y="111.05016" + style="stroke-width:1px">mhoo</tspan></text> + </g> + <g + transform="translate(-416.52022,170.47452)" + inkscape:label="="yodl"" + id="g1595-0" + style="stroke-width:2"> + <path + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path1589-6" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="105.17262" + sodipodi:r1="59.825443" + sodipodi:r2="29.912722" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z" + inkscape:transform-center-y="-5.5023185e-06" + transform="matrix(0,-1,-1,0,1043.9134,701.91334)" + inkscape:transform-center-x="-14.956365" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="925.82605" + y="111.05016" + id="text1593-1"><tspan + sodipodi:role="line" + id="tspan1591-5" + x="925.82605" + y="111.05016" + style="stroke-width:1px">yodl</tspan></text> + </g> + <g + transform="translate(-416.52022,170.47452)" + inkscape:label="="mhe"" + id="g1603-9" + style="stroke-width:2"> + <path + inkscape:transform-center-y="-3.3040441e-05" + d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="14.956361" + sodipodi:r1="29.912722" + sodipodi:cy="136.44444" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path1597-4" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" + transform="matrix(0,-2.0000001,-1.9999999,0,1122.1514,1298.6541)" + inkscape:transform-center-x="-14.956349" /> + <text + id="text1601-9" + y="111.05016" + x="842.71497" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:1px" + y="111.05016" + x="842.71497" + id="tspan1599-0" + sodipodi:role="line">mhe</tspan></text> + </g> + </g> + <text + id="text1609-9" + y="1277.5958" + x="115.62414" + style="font-style:normal;font-weight:normal;font-size:25.4761734px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.63690436px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + inkscape:label="actual_label"><tspan + y="1277.5958" + x="115.62414" + sodipodi:role="line" + style="stroke-width:0.63690436px" + id="tspan1611-1">PAGE_LOCAL variables</tspan></text> + <g + id="g2387" + inkscape:label="HMI:VarInit:42@level" /> + <g + inkscape:label="HMI:VarInit:"a string"@paff" + id="g2389" /> + <g + id="g825" + inkscape:label="HMI:VarInit:"a page string"@.piff" /> + <g + inkscape:label="HMI:VarInit:50@.position" + id="g906" /> + <g + id="g908" + inkscape:label="HMI:VarInit:100@.range" /> + <g + inkscape:label="HMI:VarInit:7@.visibleAlarms" + id="g906-3" /> + <use + x="0" + y="0" + xlink:href="#g7994" + id="use8000" + transform="translate(-1380,800)" + width="100%" + height="100%" + inkscape:label="HMI:Page:AlarmPage" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:80px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-738.18359" + y="86.260696" + id="text2019"><tspan + sodipodi:role="line" + id="tspan2017" + x="-738.18359" + y="86.260696" + style="fill:#ffffff;stroke-width:1px">Alarm Page</tspan></text> + <g + id="g1289" + inkscape:label="HMI:JsonTable:/alarms@/ALARMNOTIFY@.range@.position@.visibleAlarms@.filter" + transform="matrix(0.5,0,0,0.5,-1757.3465,454.4367)"> + <g + id="g5231" + inkscape:label="data"> + <g + id="g1384" + inkscape:label="[6]" + transform="translate(52.326002,240.30067)"> + <g + id="g901" + inkscape:label="# commented group" + transform="translate(419.716,-441.73566)"> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 528.62458,486.07049 23.69122,21.00809" + id="path903" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + </g> + <use + x="0" + y="0" + xlink:href="#use1297" + inkscape:transform-center-x="0.11123312" + inkscape:transform-center-y="2.2824109" + id="use1378" + width="100%" + height="100%" + transform="matrix(0.7609336,0,0,0.7609336,199.15217,164.3798)" + inkscape:label=".status onClick[acknowledge]=.alarmid" /> + <use + transform="matrix(1.3019536,0,0,1.3019536,39.582906,238.73392)" + x="0" + y="0" + xlink:href="#use913" + id="use966" + width="100%" + height="100%" + inkscape:label=".status textContent=.time" + style="stroke-width:1.53615308" /> + <use + inkscape:label=".status textContent=.text" + height="100%" + width="100%" + id="use1832" + xlink:href="#use913" + y="0" + x="0" + transform="matrix(2,0,0,2,85.95394,349.02524)" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 972.0318,65.34292 H 2780.6604" + id="path2238" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" + inkscape:label="# separation line" /> + </g> + <use + inkscape:label="[5]" + transform="translate(0,-62.914773)" + height="100%" + width="100%" + id="use5200" + xlink:href="#g1384" + y="0" + x="0" /> + <use + inkscape:label="[4]" + x="0" + y="0" + xlink:href="#g1384" + id="use5202" + width="100%" + height="100%" + transform="translate(0,-125.82955)" /> + <use + inkscape:label="[3]" + transform="translate(0,-188.74432)" + height="100%" + width="100%" + id="use5204" + xlink:href="#g1384" + y="0" + x="0" /> + <use + x="0" + y="0" + xlink:href="#g1384" + id="use2176" + width="100%" + height="100%" + transform="translate(0,-251.65909)" + inkscape:label="[2]" /> + <use + inkscape:label="[1]" + transform="translate(0,-314.57387)" + height="100%" + width="100%" + id="use2178" + xlink:href="#g1384" + y="0" + x="0" /> + <use + x="0" + y="0" + xlink:href="#g1384" + id="use2180" + width="100%" + height="100%" + transform="translate(0,-377.48864)" + inkscape:label="[0]" /> + </g> + <g + style="stroke-width:1.04184687" + inkscape:label="action_reset" + id="g1839-6" + transform="matrix(2,0,0,2,-181.39997,-864.49004)"> + <g + style="stroke-width:1.04184687" + inkscape:label="bg" + id="g945-7"> + <rect + rx="26.820074" + inkscape:label="button" + ry="23.177595" + y="594.82263" + x="971.96545" + height="95.723877" + width="245.44583" + id="rect943-5" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5.20923424;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + </g> + <g + style="stroke-width:1.04184687" + inkscape:label="text" + id="g951-3"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:1.04184675px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="1090.7626" + y="656.98151" + id="text949-5" + inkscape:label="setting_jmp"><tspan + sodipodi:role="line" + id="tspan947-6" + x="1090.7626" + y="656.98151" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:1.04184675px">reset</tspan></text> + </g> + </g> + </g> + <g + id="g1332" + inkscape:label="polygons" + transform="translate(-1556.6506,114.93627)"> + <path + inkscape:transform-center-y="2.9995242" + inkscape:transform-center-x="0.14620371" + d="m 1081.9632,-246.81598 -27.9274,5.51725 -27.9273,5.51724 9.1856,-26.94439 9.1856,-26.94439 18.7417,21.42715 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="false" + sodipodi:arg2="1.3757507" + sodipodi:arg1="0.32855317" + sodipodi:r2="16.43548" + sodipodi:r1="32.87096" + sodipodi:cy="-257.42258" + sodipodi:cx="1050.8505" + sodipodi:sides="3" + id="path1298" + style="fill:#8fbc8f;fill-opacity:1;stroke:#ff0000" + sodipodi:type="star" + inkscape:label="three" /> + <path + sodipodi:type="star" + style="fill:#ff8c00;fill-opacity:1;stroke:#ff0000" + id="path1308" + sodipodi:sides="4" + sodipodi:cx="1110.8505" + sodipodi:cy="-257.42258" + sodipodi:r1="32.87096" + sodipodi:r2="16.43548" + sodipodi:arg1="0.32855317" + sodipodi:arg2="1.1139513" + inkscape:flatsided="false" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 1141.9632,-246.81598 -23.8627,4.1434 -17.8566,16.3627 -4.1434,-23.8627 -16.3627,-17.8566 23.8627,-4.1434 17.8566,-16.3627 4.1434,23.8627 z" + inkscape:transform-center-x="0.14620371" + inkscape:transform-center-y="2.9995242" + inkscape:label="four" /> + <path + inkscape:transform-center-y="2.9995242" + inkscape:transform-center-x="0.14620371" + d="m 1201.9632,-246.81598 -21.6446,2.82766 -9.9413,19.4333 -9.3778,-19.7114 -21.5541,-3.44949 15.8487,-15.00997 -3.3799,-21.5652 19.1728,10.43473 19.4653,-9.87854 -3.9993,21.45898 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="false" + sodipodi:arg2="0.9568717" + sodipodi:arg1="0.32855317" + sodipodi:r2="16.43548" + sodipodi:r1="32.87096" + sodipodi:cy="-257.42258" + sodipodi:cx="1170.8505" + sodipodi:sides="5" + id="path1310" + style="fill:#bc8f8f;fill-opacity:1;stroke:#ff0000" + sodipodi:type="star" + inkscape:label="five" /> + <path + sodipodi:type="star" + style="fill:#f0f8ff;fill-opacity:1;stroke:#ff0000" + id="path1312" + sodipodi:sides="6" + sodipodi:cx="1230.8505" + sodipodi:cy="-257.42258" + sodipodi:r1="32.87096" + sodipodi:r2="16.43548" + sodipodi:arg1="0.32855317" + sodipodi:arg2="0.85215195" + inkscape:flatsided="false" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 1261.9632,-246.81598 -20.2922,1.76437 -4.4498,19.87672 -11.674,-16.69134 -19.4387,6.08474 8.6181,-18.45571 -14.9888,-13.79198 20.2921,-1.76436 4.4498,-19.87673 11.6741,16.69134 19.4386,-6.08473 -8.6181,18.4557 z" + inkscape:transform-center-x="0.14620371" + inkscape:transform-center-y="2.9995242" + inkscape:label="six" /> + </g> + <g + inkscape:label="HMI:List" + id="g1311" + transform="translate(-1396.6506,94.93627)"> + <use + x="0" + y="0" + xlink:href="#path1298" + inkscape:transform-center-x="0.14620371" + inkscape:transform-center-y="2.9995242" + id="use1293" + width="100%" + height="100%" + transform="translate(-69.76703,100)" + style="display:inline" + inkscape:label="ack" /> + <use + x="0" + y="0" + xlink:href="#path1308" + inkscape:transform-center-x="0.14620371" + inkscape:transform-center-y="2.9995242" + id="use1295" + width="100%" + height="100%" + transform="translate(-126.48474,100)" + inkscape:label="alarm" /> + <use + x="0" + y="0" + xlink:href="#path1310" + inkscape:transform-center-x="0.14620371" + inkscape:transform-center-y="2.9995242" + id="use1297" + width="100%" + height="100%" + transform="translate(-186.33351,100)" + inkscape:label="active" /> + <use + x="0" + y="0" + xlink:href="#path1312" + inkscape:transform-center-x="0.14620371" + inkscape:transform-center-y="2.9995242" + id="use1299" + width="100%" + height="100%" + transform="translate(-246.4848,100)" + inkscape:label="disabled" /> + </g> + <g + transform="matrix(0.33436432,0,0,0.33436432,-584.21063,278.8185)" + inkscape:label="HMI:Input@/ALARMNOTIFY" + id="g5222" + style="stroke-width:0.75594342"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.75594342px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="136.32812" + y="218.24219" + id="text5208" + inkscape:label="value"><tspan + sodipodi:role="line" + id="tspan5206" + x="136.32812" + y="218.24219" + style="stroke-width:0.75594342px">8888</tspan></text> + <path + transform="scale(1,-1)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path5212" + sodipodi:sides="3" + sodipodi:cx="608.70374" + sodipodi:cy="-209.2599" + sodipodi:r1="59.825443" + sodipodi:r2="29.912722" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 660.51409,-179.34718 -103.62071,0 51.81036,-89.73817 z" + inkscape:transform-center-y="14.956362" + inkscape:label="-1" /> + <rect + inkscape:label="edit" + onclick="" + y="95.40741" + x="139.85185" + height="128" + width="407.7037" + id="rect5214" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <path + inkscape:label="+1" + inkscape:transform-center-y="-14.95636" + d="m 660.51409,142.08535 -103.62071,0 51.81036,-89.738163 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="29.912722" + sodipodi:r1="59.825443" + sodipodi:cy="112.17263" + sodipodi:cx="608.70374" + sodipodi:sides="3" + id="path5218" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" /> + </g> + <g + id="g1766" + inkscape:label="HMI:ScrollBar@.range@.position@.visibleAlarms" + transform="translate(9.7583007e-6)"> + <path + sodipodi:nodetypes="cccc" + inkscape:connector-curvature="0" + id="path1266" + d="m -234.01097,332.35504 21.18736,28.36866 h -42.37471 z" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.42391574px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + inkscape:label="pageup" /> + <path + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.4007318px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="m -234.01097,686.72773 21.18736,-27.45222 h -42.37471 z" + id="path1268" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccc" + inkscape:label="pagedown" /> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.30952382;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.03627348px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect1264-3" + width="42.374725" + height="276.64423" + x="-255.19838" + y="371.91068" + rx="7.6034913" + ry="6.8822322" + inkscape:label="range" /> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.11429262px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect1264" + width="42.374725" + height="82.841492" + x="-255.19838" + y="371.91068" + rx="7.6034913" + ry="7" + inkscape:label="cursor" /> + </g> + <g + id="g893" + inkscape:label="textstyles" + transform="translate(-1566.6506,56.936266)"> + <text + inkscape:label="red" + id="text1382-7" + y="-171.54395" + x="1298.9102" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:0.5" + xml:space="preserve"><tspan + y="-171.54395" + x="1298.9102" + id="tspan1380-5" + sodipodi:role="line" + style="stroke-width:0.5">value</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + x="1298.9102" + y="-191.54395" + id="text875" + inkscape:label="black"><tspan + style="fill:#000000;stroke-width:0.5" + sodipodi:role="line" + id="tspan873" + x="1298.9102" + y="-191.54395">value</tspan></text> + <text + inkscape:label="green" + id="text879" + y="-211.54395" + x="1298.9102" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:0.5" + xml:space="preserve"><tspan + y="-211.54395" + x="1298.9102" + id="tspan877" + sodipodi:role="line" + style="fill:#00ff00;stroke-width:0.5">value</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#999999;fill-opacity:1;stroke:none;stroke-width:0.5" + x="1298.9102" + y="-231.54395" + id="text883" + inkscape:label="gray"><tspan + style="fill:#999999;stroke-width:0.5" + sodipodi:role="line" + id="tspan881" + x="1298.9102" + y="-231.54395">value</tspan></text> + </g> + <g + id="g907" + inkscape:label="HMI:TextStyleList" + transform="translate(-990.65059,102.93627)"> + <use + x="0" + y="0" + xlink:href="#text879" + id="use913" + width="100%" + height="100%" + transform="translate(-573,60.999998)" + inkscape:label="active" /> + <use + x="0" + y="0" + xlink:href="#text875" + id="use911" + width="100%" + height="100%" + transform="translate(-573,40.999998)" + inkscape:label="ack" /> + <use + x="0" + y="0" + xlink:href="#text1382-7" + id="use909" + width="100%" + height="100%" + transform="translate(-573,20.999998)" + inkscape:label="alarm" /> + <use + x="0" + y="0" + xlink:href="#text883" + id="use915" + width="100%" + height="100%" + transform="translate(-573,80.999998)" + inkscape:label="disabled" /> + </g> + <g + transform="matrix(0.33436432,0,0,0.33436432,-1048.7703,278.8185)" + inkscape:label="HMI:Input@.range" + id="g5222-3" + style="stroke-width:0.75594342"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.75594342px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="136.32812" + y="218.24219" + id="text5208-6" + inkscape:label="value"><tspan + sodipodi:role="line" + id="tspan5206-7" + x="136.32812" + y="218.24219" + style="stroke-width:0.75594342px">8888</tspan></text> + <path + transform="scale(1,-1)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path5212-5" + sodipodi:sides="3" + sodipodi:cx="620.66675" + sodipodi:cy="-209.2599" + sodipodi:r1="59.825443" + sodipodi:r2="29.912722" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 672.4771,-179.34718 -103.62071,0 51.81036,-89.73817 z" + inkscape:transform-center-y="14.956362" + inkscape:label="-1" /> + <rect + inkscape:label="edit" + onclick="" + y="95.40741" + x="139.85185" + height="128" + width="407.7037" + id="rect5214-3" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <path + inkscape:label="+1" + inkscape:transform-center-y="-14.95636" + d="m 672.4771,142.08535 -103.62071,0 51.81036,-89.738163 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="29.912722" + sodipodi:r1="59.825443" + sodipodi:cy="112.17263" + sodipodi:cx="620.66675" + sodipodi:sides="3" + id="path5218-5" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" /> + </g> + <g + transform="matrix(0.33436432,0,0,0.33436432,-816.49047,278.8185)" + inkscape:label="HMI:Input@.position" + id="g5222-6" + style="stroke-width:0.75594342"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.75594342px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="136.32812" + y="218.24219" + id="text5208-2" + inkscape:label="value"><tspan + sodipodi:role="line" + id="tspan5206-9" + x="136.32812" + y="218.24219" + style="stroke-width:0.75594342px">8888</tspan></text> + <path + transform="scale(1,-1)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path5212-1" + sodipodi:sides="3" + sodipodi:cx="608.70374" + sodipodi:cy="-209.2599" + sodipodi:r1="59.825443" + sodipodi:r2="29.912722" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 660.51409,-179.34718 -103.62071,0 51.81036,-89.73817 z" + inkscape:transform-center-y="14.956362" + inkscape:label="-1" /> + <rect + inkscape:label="edit" + onclick="" + y="95.40741" + x="139.85185" + height="128" + width="407.7037" + id="rect5214-2" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <path + inkscape:label="+1" + inkscape:transform-center-y="-14.95636" + d="m 660.51409,142.08535 -103.62071,0 51.81036,-89.738163 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="29.912722" + sodipodi:r1="59.825443" + sodipodi:cy="112.17263" + sodipodi:cx="608.70374" + sodipodi:sides="3" + id="path5218-7" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" /> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.45700645px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-935.5838" + y="291.8042" + id="text887"><tspan + sodipodi:role="line" + id="tspan885" + x="-935.5838" + y="291.8042" + style="fill:#ffffff;stroke-width:1px">range</tspan></text> + <text + id="text891" + y="291.8042" + x="-702.87115" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.45700645px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="fill:#ffffff;stroke-width:1px" + y="291.8042" + x="-702.87115" + id="tspan889" + sodipodi:role="line">position</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.45700645px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-471.33417" + y="291.8042" + id="text895"><tspan + sodipodi:role="line" + id="tspan893" + x="-471.33417" + y="291.8042" + style="fill:#ffffff;stroke-width:1px">notify</tspan></text> + <g + style="stroke-width:2" + inkscape:label="HMI:Input@/ALARMTEXT" + id="g1442-3" + transform="matrix(0.5,0,0,0.5,-915.0529,113.05833)"> + <rect + inkscape:label="edit" + onclick="" + y="77.265099" + x="-648.04266" + height="179.83517" + width="1195.5988" + id="rect1400-5" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#cacaca;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + ry="36.786537" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#0e0e0e;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="545.95312" + y="218.24219" + id="text1398-6" + inkscape:label="value"><tspan + sodipodi:role="line" + id="tspan1396-7" + x="545.95312" + y="218.24219" + style="text-align:end;text-anchor:end;fill:#0e0e0e;fill-opacity:1;stroke-width:2px">8888</tspan></text> + </g> + <g + style="stroke-width:1.04184687" + inkscape:label="HMI:Input@/SENDALARM" + id="g953" + transform="translate(-1386.3329,-450.57041)"> + <g + id="g1839" + inkscape:label="+1"> + <g + id="g945" + inkscape:label="bg" + style="stroke-width:1.04184687"> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5.20923424;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect943" + width="245.44583" + height="95.723877" + x="971.96545" + y="594.82263" + ry="23.177595" + inkscape:label="button" + rx="26.820074" /> + </g> + <g + id="g951" + inkscape:label="text" + style="stroke-width:1.04184687"> + <text + inkscape:label="setting_jmp" + id="text949" + y="656.98151" + x="1090.7626" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:1.04184675px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:1.04184675px" + y="656.98151" + x="1090.7626" + id="tspan947" + sodipodi:role="line">trigger</tspan></text> + </g> + </g> + </g> + <g + style="stroke-width:2" + inkscape:label="HMI:Input@/ALARMSTATUS" + id="g1887" + transform="matrix(0.28590269,0,0,0.28590269,-631.94615,129.07897)"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:148.39013672px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="329.13501" + y="214.01605" + id="text1843" + inkscape:label="value"><tspan + sodipodi:role="line" + id="tspan1841" + x="329.13501" + y="214.01605" + style="text-align:center;text-anchor:middle;stroke-width:1.99999988px">8888</tspan></text> + <g + style="stroke-width:1.09375393" + id="g1853" + inkscape:label="="ack"" + transform="matrix(1.8285648,0,0,1.8285648,-936.17681,115.40643)"> + <path + inkscape:connector-curvature="0" + id="path1847" + d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z" + inkscape:transform-center-y="-14.956361" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.46877003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <text + id="text1851" + y="112.62867" + x="738.57678" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.54687697px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:0.54687697px" + y="112.62867" + x="738.57678" + id="tspan1849" + sodipodi:role="line">ack</tspan></text> + </g> + <g + style="stroke-width:1.09375393" + id="g1861" + inkscape:label="="disabled"" + transform="matrix(1.8285648,0,0,1.8285648,-1012.4359,109.57379)"> + <path + inkscape:connector-curvature="0" + id="path1847-7" + d="m 738.52607,148.37593 -80.6293,0.60214 -0.6021,-80.629288 80.6293,-0.60214 z" + inkscape:transform-center-y="-14.956361" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.46877003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.54687697px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="656.177" + y="115.81841" + id="text1859"><tspan + sodipodi:role="line" + id="tspan1857" + x="656.177" + y="115.81841" + style="stroke-width:0.54687697px">disabled</tspan></text> + </g> + <g + style="stroke-width:1.09375393" + id="g1869" + inkscape:label="="active"" + transform="matrix(1.8285648,0,0,1.8285648,-998.18055,84.666267)"> + <path + inkscape:connector-curvature="0" + id="path1847-5" + d="m 630.35651,161.99728 -80.6293,0.60214 -0.6021,-80.629287 80.6293,-0.60214 z" + inkscape:transform-center-y="-14.956361" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.46877003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <text + id="text1867" + y="129.43976" + x="559.26227" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.54687697px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:0.54687697px" + y="129.43976" + x="559.26227" + id="tspan1865" + sodipodi:role="line">active</tspan></text> + </g> + <g + style="stroke-width:1.09375393" + id="g1877" + inkscape:label="="alarm"" + transform="matrix(1.8285648,0,0,1.8285648,-1114.212,118.29284)"> + <path + inkscape:connector-curvature="0" + id="path1847-3" + d="m 994.91832,143.60768 -80.62931,0.60214 -0.6021,-80.629285 80.62931,-0.60214 z" + inkscape:transform-center-y="-14.956361" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.46877003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <text + id="text1875" + y="111.05016" + x="925.82605" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.54687697px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:0.54687697px" + y="111.05016" + x="925.82605" + id="tspan1873" + sodipodi:role="line">alarm</tspan></text> + </g> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:20px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-926.47461" + y="134.36742" + id="text2019-9"><tspan + sodipodi:role="line" + id="tspan2017-2" + x="-926.47461" + y="134.36742" + style="fill:#ffffff;stroke-width:1px">Alarm Text</tspan></text> + <text + id="text2174" + y="134.36742" + x="-546.47461" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:20px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="fill:#ffffff;stroke-width:1px" + y="134.36742" + x="-546.47461" + id="tspan2172" + sodipodi:role="line">Status</tspan></text> + <g + transform="matrix(0.57180538,0,0,0.57180538,326.35945,-231.48695)" + inkscape:label="HMI:Jump:AlarmPage" + id="g2198"> + <g + inkscape:label="button" + id="g2190"> + <rect + inkscape:label="button" + ry="35.579063" + y="594.82263" + x="971.96545" + height="95.723877" + width="245.44583" + id="rect2188" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + rx="35.579063" /> + </g> + <g + inkscape:label="text" + id="g2196"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="1090.7626" + y="656.98151" + id="text2194" + inkscape:label="setting_jmp"><tspan + sodipodi:role="line" + id="tspan2192" + x="1090.7626" + y="656.98151" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px">Alarms</tspan></text> + </g> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:45.74443054px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.28590268px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="628.18188" + y="242.50345" + id="text889" + inkscape:label="HMI:Display@/PUMP0/FLOATING"><tspan + sodipodi:role="line" + id="tspan887" + x="628.18188" + y="242.50345" + style="fill:#ffffff;fill-opacity:1;stroke-width:0.28590268px">8888</tspan></text> + <g + style="stroke-width:0.75594342" + id="g900" + inkscape:label="HMI:Input@.filter" + transform="matrix(0.33436432,0,0,0.33436432,-1288.7703,278.8185)"> + <text + inkscape:label="value" + id="text892" + y="218.24219" + x="136.32812" + style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.75594342px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:0.75594342px" + y="218.24219" + x="136.32812" + id="tspan890" + sodipodi:role="line">8888</tspan></text> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect896" + width="615.05096" + height="128" + x="139.85185" + y="95.40741" + onclick="" + inkscape:label="edit" /> + </g> + <text + id="text904" + y="291.8042" + x="-1175.5837" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.45700645px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="fill:#ffffff;stroke-width:1px" + y="291.8042" + x="-1175.5837" + id="tspan902" + sodipodi:role="line">filter</tspan></text> + <g + id="g909" + inkscape:label="HMI:VarInit:"POS"@.filter" /> + <g + transform="matrix(0.14295135,0,0,0.14295135,449.21833,37.615184)" + id="g4646" + inkscape:label="HMI:Input@paff" + style="stroke-width:4"> + <text + inkscape:label="value" + id="text4602" + y="218.24219" + x="136.32812" + style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:4px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:4px" + y="218.24219" + x="136.32812" + id="tspan4600" + sodipodi:role="line">8888</tspan></text> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect4604" + width="407.7037" + height="128" + x="139.85185" + y="95.40741" + onclick="" + inkscape:label="edit" /> + <g + transform="translate(-416.52022,170.47452)" + inkscape:label="+"dhu"" + id="g4612" + style="stroke-width:4"> + <path + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + inkscape:transform-center-y="-14.956361" + d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z" + id="path4606" + inkscape:connector-curvature="0" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="733.58197" + y="111.05016" + id="text4610"><tspan + sodipodi:role="line" + id="tspan4608" + x="733.58197" + y="111.05016" + style="stroke-width:2px">dhu</tspan></text> + </g> + <g + transform="translate(-416.52022,170.47452)" + inkscape:label="="plop"" + id="g4620" + style="stroke-width:4"> + <path + transform="matrix(0,-2.0000001,1.9999999,0,1034.195,1298.6541)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path4614" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="-184.98808" + sodipodi:r1="29.912722" + sodipodi:r2="14.956361" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z" + inkscape:transform-center-y="-3.6154501e-05" + inkscape:transform-center-x="14.956371" /> + <text + id="text4618" + y="111.05016" + x="633.09552" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:2px" + y="111.05016" + x="633.09552" + id="tspan4616" + sodipodi:role="line">plop</tspan></text> + </g> + <g + transform="translate(-416.52022,170.47452)" + inkscape:label="="mhoo"" + id="g4628" + style="stroke-width:4"> + <path + inkscape:transform-center-y="-5.9989963e-06" + d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="29.912722" + sodipodi:r1="59.825443" + sodipodi:cy="-216.2599" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path4622" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" + transform="rotate(-90,746.45698,-44.543641)" + inkscape:transform-center-x="14.956364" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="537.25018" + y="111.05016" + id="text4626"><tspan + sodipodi:role="line" + id="tspan4624" + x="537.25018" + y="111.05016" + style="stroke-width:2px">mhoo</tspan></text> + </g> + <g + transform="translate(-416.52022,170.47452)" + inkscape:label="="yodl"" + id="g4636" + style="stroke-width:4"> + <path + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path4630" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="105.17262" + sodipodi:r1="59.825443" + sodipodi:r2="29.912722" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z" + inkscape:transform-center-y="-5.5023185e-06" + transform="matrix(0,-1,-1,0,1043.9134,701.91334)" + inkscape:transform-center-x="-14.956365" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="925.82605" + y="111.05016" + id="text4634"><tspan + sodipodi:role="line" + id="tspan4632" + x="925.82605" + y="111.05016" + style="stroke-width:2px">yodl</tspan></text> + </g> + <g + transform="translate(-416.52022,170.47452)" + inkscape:label="="mhe"" + id="g4644" + style="stroke-width:4"> + <path + inkscape:transform-center-y="-3.3040441e-05" + d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="14.956361" + sodipodi:r1="29.912722" + sodipodi:cy="136.44444" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path4638" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" + transform="matrix(0,-2.0000001,-1.9999999,0,1122.1514,1298.6541)" + inkscape:transform-center-x="-14.956349" /> + <text + id="text4642" + y="111.05016" + x="842.71497" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:2px" + y="111.05016" + x="842.71497" + id="tspan4640" + sodipodi:role="line">mhe</tspan></text> + </g> + </g> + <g + style="stroke-width:4" + inkscape:label="HMI:Input@.piff" + id="g4694" + transform="matrix(0.14295135,0,0,0.14295135,449.21833,97.61518)"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:4px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="136.32812" + y="218.24219" + id="text4650" + inkscape:label="value"><tspan + sodipodi:role="line" + id="tspan4648" + x="136.32812" + y="218.24219" + style="stroke-width:4px">8888</tspan></text> + <rect + inkscape:label="edit" + onclick="" + y="95.40741" + x="139.85185" + height="128" + width="407.7037" + id="rect4652" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <g + style="stroke-width:4" + id="g4660" + inkscape:label="+"dhu"" + transform="translate(-416.52022,170.47452)"> + <path + inkscape:connector-curvature="0" + id="path4654" + d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z" + inkscape:transform-center-y="-14.956361" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <text + id="text4658" + y="111.05016" + x="733.58197" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:2px" + y="111.05016" + x="733.58197" + id="tspan4656" + sodipodi:role="line">dhu</tspan></text> + </g> + <g + style="stroke-width:4" + id="g4668" + inkscape:label="="plop"" + transform="translate(-416.52022,170.47452)"> + <path + inkscape:transform-center-x="14.956371" + inkscape:transform-center-y="-3.6154501e-05" + d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="14.956361" + sodipodi:r1="29.912722" + sodipodi:cy="-184.98808" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path4662" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" + transform="matrix(0,-2.0000001,1.9999999,0,1034.195,1298.6541)" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="633.09552" + y="111.05016" + id="text4666"><tspan + sodipodi:role="line" + id="tspan4664" + x="633.09552" + y="111.05016" + style="stroke-width:2px">plop</tspan></text> + </g> + <g + style="stroke-width:4" + id="g4676" + inkscape:label="="mhoo"" + transform="translate(-416.52022,170.47452)"> + <path + inkscape:transform-center-x="14.956364" + transform="rotate(-90,746.45698,-44.543641)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path4670" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="-216.2599" + sodipodi:r1="59.825443" + sodipodi:r2="29.912722" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z" + inkscape:transform-center-y="-5.9989963e-06" /> + <text + id="text4674" + y="111.05016" + x="537.25018" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:2px" + y="111.05016" + x="537.25018" + id="tspan4672" + sodipodi:role="line">mhoo</tspan></text> + </g> + <g + style="stroke-width:4" + id="g4684" + inkscape:label="="yodl"" + transform="translate(-416.52022,170.47452)"> + <path + inkscape:transform-center-x="-14.956365" + transform="matrix(0,-1,-1,0,1043.9134,701.91334)" + inkscape:transform-center-y="-5.5023185e-06" + d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="29.912722" + sodipodi:r1="59.825443" + sodipodi:cy="105.17262" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path4678" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" /> + <text + id="text4682" + y="111.05016" + x="925.82605" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:2px" + y="111.05016" + x="925.82605" + id="tspan4680" + sodipodi:role="line">yodl</tspan></text> + </g> + <g + style="stroke-width:4" + id="g4692" + inkscape:label="="mhe"" + transform="translate(-416.52022,170.47452)"> + <path + inkscape:transform-center-x="-14.956349" + transform="matrix(0,-2.0000001,-1.9999999,0,1122.1514,1298.6541)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path4686" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="136.44444" + sodipodi:r1="29.912722" + sodipodi:r2="14.956361" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z" + inkscape:transform-center-y="-3.3040441e-05" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="842.71497" + y="111.05016" + id="text4690"><tspan + sodipodi:role="line" + id="tspan4688" + x="842.71497" + y="111.05016" + style="stroke-width:2px">mhe</tspan></text> + </g> + </g> + <g + id="g7994" + inkscape:label="Gray Page Template"> + <rect + y="-800" + x="0" + height="720" + width="1280" + id="rect4270" + style="color:#000000;fill:#4d4d4d" /> + <g + id="g4282" + inkscape:label="HMI:Jump:Home" + transform="translate(-10.6526,-2134.1633)"> + <g + id="g4274" + inkscape:label="button"> + <path + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="m 1217.4113,1410.4016 -22,24.5657 c -10.7925,12.0511 6.1317,35.5791 -13.5791,35.5791 h -174.2877 c -19.71078,0 -2.7866,-23.528 -13.57905,-35.5791 l -22,-24.5657 127.74845,-48.4334 z" + id="path4272" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cssssccc" /> + </g> + <g + id="g4280" + inkscape:label="text"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="1090.7626" + y="1436.9814" + id="text4278" + inkscape:label="home_jmp"><tspan + sodipodi:role="line" + id="tspan4276" + x="1090.7626" + y="1436.9814" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px">Home</tspan></text> + </g> + </g> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5" + x="1905.4562" + y="2520.5203" + id="text3613"><tspan + sodipodi:role="line" + id="tspan3611" + x="1905.4562" + y="2538.2156" + style="stroke-width:0.5" /></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none" + x="2852.2148" + y="1710.4241" + id="text10521-7"><tspan + sodipodi:role="line" + id="tspan10519-6" + x="2852.2148" + y="1745.8147" /></text> + <use + inkscape:label="HMI:Page:AlarmPage2" + height="100%" + width="100%" + transform="translate(-1380,1580)" + id="use938" + xlink:href="#g7994" + y="0" + x="0" /> + <text + id="text942" + y="866.26068" + x="-738.18359" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:80px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="fill:#ffffff;stroke-width:1px" + y="866.26068" + x="-738.18359" + id="tspan940" + sodipodi:role="line">Alarm Page 2</tspan></text> + <g + transform="matrix(0.5,0,0,0.5,-1757.3465,1234.4367)" + inkscape:label="HMI:JsonTable:/alarms@/ALARMNOTIFY@.range@.position@.visibleAlarms@.filter" + id="g973"> + <g + inkscape:label="data" + id="g971"> + <g + transform="translate(52.326002,240.30067)" + inkscape:label="[5]" + id="g956"> + <g + transform="translate(419.716,-441.73566)" + inkscape:label="# commented group" + id="g946"> + <path + sodipodi:nodetypes="cc" + inkscape:connector-curvature="0" + id="path944" + d="m 528.62458,486.07049 23.69122,21.00809" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + </g> + <use + inkscape:label=".status onClick[acknowledge]=.alarmid" + transform="matrix(0.7609336,0,0,0.7609336,199.15217,164.3798)" + height="100%" + width="100%" + id="use948" + inkscape:transform-center-y="2.2824109" + inkscape:transform-center-x="0.11123312" + xlink:href="#use1297" + y="0" + x="0" /> + <use + style="stroke-width:1.53615308" + inkscape:label=".status textContent=.time" + height="100%" + width="100%" + id="use950" + xlink:href="#use913" + y="0" + x="0" + transform="matrix(1.3019536,0,0,1.3019536,39.582906,238.73392)" /> + <use + transform="matrix(2,0,0,2,85.95394,349.02524)" + x="0" + y="0" + xlink:href="#use913" + id="use952" + width="100%" + height="100%" + inkscape:label=".status textContent=.text" /> + <path + inkscape:label="# separation line" + sodipodi:nodetypes="cc" + inkscape:connector-curvature="0" + id="path954" + d="M 972.0318,65.34292 H 2780.6604" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + </g> + <use + x="0" + y="0" + xlink:href="#g956" + id="use1145" + width="100%" + height="100%" + transform="translate(0,-80)" + inkscape:label="[4]" /> + <use + transform="translate(0,-160)" + height="100%" + width="100%" + id="use1147" + xlink:href="#g956" + y="0" + x="0" + inkscape:label="[3]" /> + <use + x="0" + y="0" + xlink:href="#g956" + id="use1149" + width="100%" + height="100%" + transform="translate(0,-240)" + inkscape:label="[2]" /> + <use + transform="translate(0,-320)" + height="100%" + width="100%" + id="use1151" + xlink:href="#g956" + y="0" + x="0" + inkscape:label="[1]" /> + <use + x="0" + y="0" + xlink:href="#g956" + id="use1153" + width="100%" + height="100%" + transform="translate(0,-400)" + inkscape:label="[0]" /> + </g> + </g> + <g + style="stroke-width:0.75594342" + id="g986" + inkscape:label="HMI:Input@/ALARMNOTIFY" + transform="matrix(0.33436432,0,0,0.33436432,-584.21063,1058.8185)"> + <text + inkscape:label="value" + id="text978" + y="218.24219" + x="136.32812" + style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.75594342px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:0.75594342px" + y="218.24219" + x="136.32812" + id="tspan976" + sodipodi:role="line">8888</tspan></text> + <path + inkscape:label="-1" + inkscape:transform-center-y="14.956362" + d="m 660.51409,-179.34718 -103.62071,0 51.81036,-89.73817 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="29.912722" + sodipodi:r1="59.825443" + sodipodi:cy="-209.2599" + sodipodi:cx="608.70374" + sodipodi:sides="3" + id="path980" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" + transform="scale(1,-1)" /> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect982" + width="407.7037" + height="128" + x="139.85185" + y="95.40741" + onclick="" + inkscape:label="edit" /> + <path + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path984" + sodipodi:sides="3" + sodipodi:cx="608.70374" + sodipodi:cy="112.17263" + sodipodi:r1="59.825443" + sodipodi:r2="29.912722" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 660.51409,142.08535 -103.62071,0 51.81036,-89.738163 z" + inkscape:transform-center-y="-14.95636" + inkscape:label="+1" /> + </g> + <g + style="stroke-width:0.75594342" + id="g1012" + inkscape:label="HMI:Input@.range" + transform="matrix(0.33436432,0,0,0.33436432,-1048.7703,1058.8185)"> + <text + inkscape:label="value" + id="text1004" + y="218.24219" + x="136.32812" + style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.75594342px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:0.75594342px" + y="218.24219" + x="136.32812" + id="tspan1002" + sodipodi:role="line">8888</tspan></text> + <path + inkscape:label="-1" + inkscape:transform-center-y="14.956362" + d="m 672.4771,-179.34718 -103.62071,0 51.81036,-89.73817 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="29.912722" + sodipodi:r1="59.825443" + sodipodi:cy="-209.2599" + sodipodi:cx="620.66675" + sodipodi:sides="3" + id="path1006" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" + transform="scale(1,-1)" /> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect1008" + width="407.7037" + height="128" + x="139.85185" + y="95.40741" + onclick="" + inkscape:label="edit" /> + <path + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path1010" + sodipodi:sides="3" + sodipodi:cx="620.66675" + sodipodi:cy="112.17263" + sodipodi:r1="59.825443" + sodipodi:r2="29.912722" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 672.4771,142.08535 -103.62071,0 51.81036,-89.738163 z" + inkscape:transform-center-y="-14.95636" + inkscape:label="+1" /> + </g> + <g + style="stroke-width:0.75594342" + id="g1025" + inkscape:label="HMI:Input@.position" + transform="matrix(0.33436432,0,0,0.33436432,-816.49047,1058.8185)"> + <text + inkscape:label="value" + id="text1016" + y="218.24219" + x="136.32812" + style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.75594342px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:0.75594342px" + y="218.24219" + x="136.32812" + id="tspan1014" + sodipodi:role="line">8888</tspan></text> + <path + inkscape:label="-1" + inkscape:transform-center-y="14.956362" + d="m 660.51409,-179.34718 -103.62071,0 51.81036,-89.73817 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="29.912722" + sodipodi:r1="59.825443" + sodipodi:cy="-209.2599" + sodipodi:cx="608.70374" + sodipodi:sides="3" + id="path1018" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" + transform="scale(1,-1)" /> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect1021" + width="407.7037" + height="128" + x="139.85185" + y="95.40741" + onclick="" + inkscape:label="edit" /> + <path + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path1023" + sodipodi:sides="3" + sodipodi:cx="608.70374" + sodipodi:cy="112.17263" + sodipodi:r1="59.825443" + sodipodi:r2="29.912722" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 660.51409,142.08535 -103.62071,0 51.81036,-89.738163 z" + inkscape:transform-center-y="-14.95636" + inkscape:label="+1" /> + </g> + <text + id="text1029" + y="1071.8042" + x="-935.5838" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.45700645px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="fill:#ffffff;stroke-width:1px" + y="1071.8042" + x="-935.5838" + id="tspan1027" + sodipodi:role="line">range</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.45700645px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-702.87115" + y="1071.8042" + id="text1033"><tspan + sodipodi:role="line" + id="tspan1031" + x="-702.87115" + y="1071.8042" + style="fill:#ffffff;stroke-width:1px">position</tspan></text> + <text + id="text1037" + y="1071.8042" + x="-471.33417" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.45700645px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="fill:#ffffff;stroke-width:1px" + y="1071.8042" + x="-471.33417" + id="tspan1035" + sodipodi:role="line">notify</tspan></text> + <g + transform="matrix(0.5,0,0,0.5,-915.0529,893.05833)" + id="g1045" + inkscape:label="HMI:Input@/ALARMTEXT" + style="stroke-width:2"> + <rect + ry="36.786537" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#cacaca;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect1039" + width="1195.5988" + height="179.83517" + x="-648.04266" + y="77.265099" + onclick="" + inkscape:label="edit" /> + <text + inkscape:label="value" + id="text1043" + y="218.24219" + x="545.95312" + style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#0e0e0e;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="text-align:end;text-anchor:end;fill:#0e0e0e;fill-opacity:1;stroke-width:2px" + y="218.24219" + x="545.95312" + id="tspan1041" + sodipodi:role="line">8888</tspan></text> + </g> + <g + transform="translate(-1386.3329,329.42959)" + id="g1059" + inkscape:label="HMI:Input@/SENDALARM" + style="stroke-width:1.04184687"> + <g + inkscape:label="+1" + id="g1057"> + <g + style="stroke-width:1.04184687" + inkscape:label="bg" + id="g1049"> + <rect + rx="26.820074" + inkscape:label="button" + ry="23.177595" + y="594.82263" + x="971.96545" + height="95.723877" + width="245.44583" + id="rect1047" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5.20923424;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + </g> + <g + style="stroke-width:1.04184687" + inkscape:label="text" + id="g1055"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:1.04184675px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="1090.7626" + y="656.98151" + id="text1053" + inkscape:label="setting_jmp"><tspan + sodipodi:role="line" + id="tspan1051" + x="1090.7626" + y="656.98151" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:1.04184675px">trigger</tspan></text> + </g> + </g> + </g> + <g + transform="matrix(0.28590269,0,0,0.28590269,-631.94615,909.07897)" + id="g1099" + inkscape:label="HMI:Input@/ALARMSTATUS" + style="stroke-width:2"> + <text + inkscape:label="value" + id="text1064" + y="214.01605" + x="329.13501" + style="font-style:normal;font-weight:normal;font-size:148.39013672px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="text-align:center;text-anchor:middle;stroke-width:1.99999988px" + y="214.01605" + x="329.13501" + id="tspan1062" + sodipodi:role="line">8888</tspan></text> + <g + transform="matrix(1.8285648,0,0,1.8285648,-936.17681,115.40643)" + inkscape:label="="ack"" + id="g1072" + style="stroke-width:1.09375393"> + <path + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.46877003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + inkscape:transform-center-y="-14.956361" + d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z" + id="path1066" + inkscape:connector-curvature="0" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.54687697px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="738.57678" + y="112.62867" + id="text1070"><tspan + sodipodi:role="line" + id="tspan1068" + x="738.57678" + y="112.62867" + style="stroke-width:0.54687697px">ack</tspan></text> + </g> + <g + transform="matrix(1.8285648,0,0,1.8285648,-1012.4359,109.57379)" + inkscape:label="="disabled"" + id="g1080" + style="stroke-width:1.09375393"> + <path + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.46877003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + inkscape:transform-center-y="-14.956361" + d="m 738.52607,148.37593 -80.6293,0.60214 -0.6021,-80.629288 80.6293,-0.60214 z" + id="path1074" + inkscape:connector-curvature="0" /> + <text + id="text1078" + y="115.81841" + x="656.177" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.54687697px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:0.54687697px" + y="115.81841" + x="656.177" + id="tspan1076" + sodipodi:role="line">disabled</tspan></text> + </g> + <g + transform="matrix(1.8285648,0,0,1.8285648,-998.18055,84.666267)" + inkscape:label="="active"" + id="g1088" + style="stroke-width:1.09375393"> + <path + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.46877003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + inkscape:transform-center-y="-14.956361" + d="m 630.35651,161.99728 -80.6293,0.60214 -0.6021,-80.629287 80.6293,-0.60214 z" + id="path1082" + inkscape:connector-curvature="0" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.54687697px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="559.26227" + y="129.43976" + id="text1086"><tspan + sodipodi:role="line" + id="tspan1084" + x="559.26227" + y="129.43976" + style="stroke-width:0.54687697px">active</tspan></text> + </g> + <g + transform="matrix(1.8285648,0,0,1.8285648,-1114.212,118.29284)" + inkscape:label="="alarm"" + id="g1097" + style="stroke-width:1.09375393"> + <path + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.46877003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + inkscape:transform-center-y="-14.956361" + d="m 994.91832,143.60768 -80.62931,0.60214 -0.6021,-80.629285 80.62931,-0.60214 z" + id="path1090" + inkscape:connector-curvature="0" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.54687697px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="925.82605" + y="111.05016" + id="text1094"><tspan + sodipodi:role="line" + id="tspan1092" + x="925.82605" + y="111.05016" + style="stroke-width:0.54687697px">alarm</tspan></text> + </g> + </g> + <text + id="text1103" + y="914.36743" + x="-926.47461" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:20px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="fill:#ffffff;stroke-width:1px" + y="914.36743" + x="-926.47461" + id="tspan1101" + sodipodi:role="line">Alarm Text</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:20px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-546.47461" + y="914.36743" + id="text1107"><tspan + sodipodi:role="line" + id="tspan1105" + x="-546.47461" + y="914.36743" + style="fill:#ffffff;stroke-width:1px">Status</tspan></text> + <g + transform="matrix(0.33436432,0,0,0.33436432,-1288.7703,1058.8185)" + inkscape:label="HMI:Input@.filter" + id="g1115" + style="stroke-width:0.75594342"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.75594342px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="136.32812" + y="218.24219" + id="text1111" + inkscape:label="value"><tspan + sodipodi:role="line" + id="tspan1109" + x="136.32812" + y="218.24219" + style="stroke-width:0.75594342px">8888</tspan></text> + <rect + inkscape:label="edit" + onclick="" + y="95.40741" + x="139.85185" + height="128" + width="615.05096" + id="rect1113" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.45700645px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-1175.5837" + y="1071.8042" + id="text1119"><tspan + sodipodi:role="line" + id="tspan1117" + x="-1175.5837" + y="1071.8042" + style="fill:#ffffff;stroke-width:1px">filter</tspan></text> + <g + id="g1131" + inkscape:label="HMI:Jump:AlarmPage2" + transform="matrix(0.57180538,0,0,0.57180538,-1914.3456,-318.69327)"> + <g + id="g1123" + inkscape:label="button"> + <rect + rx="35.579063" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect1121" + width="245.44583" + height="95.723877" + x="971.96545" + y="594.82263" + ry="35.579063" + inkscape:label="button" /> + </g> + <g + id="g1129" + inkscape:label="text"> + <text + inkscape:label="setting_jmp" + id="text1127" + y="656.98151" + x="1090.7626" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px" + y="656.98151" + x="1090.7626" + id="tspan1125" + sodipodi:role="line">Alarms2</tspan></text> + </g> + </g> + <g + id="g1143" + inkscape:label="HMI:Jump:AlarmPage" + transform="matrix(0.57180538,0,0,0.57180538,-1915.7751,459.87722)"> + <g + id="g1135" + inkscape:label="button"> + <rect + rx="35.579063" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect1133" + width="245.44583" + height="95.723877" + x="971.96545" + y="594.82263" + ry="35.579063" + inkscape:label="button" /> + </g> + <g + id="g1141" + inkscape:label="text"> + <text + inkscape:label="setting_jmp" + id="text1139" + y="656.98151" + x="1090.7626" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px" + y="656.98151" + x="1090.7626" + id="tspan1137" + sodipodi:role="line">Alarms</tspan></text> + </g> + </g> + <g + inkscape:label="HMI:ScrollBar@.range@.position@.visibleAlarms" + id="g1165" + transform="translate(-2.4169924e-7,779.99999)"> + <path + inkscape:label="pageup" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.42391574px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="m -234.01097,332.35504 21.18736,28.36866 h -42.37471 z" + id="path1157" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccc" /> + <path + inkscape:label="pagedown" + sodipodi:nodetypes="cccc" + inkscape:connector-curvature="0" + id="path1159" + d="m -234.01097,686.72773 21.18736,-27.45222 h -42.37471 z" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.4007318px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <rect + inkscape:label="range" + ry="6.8822322" + rx="7.6034913" + y="371.91068" + x="-255.19838" + height="276.64423" + width="42.374725" + id="rect1161" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.30952382;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.03627348px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <rect + inkscape:label="cursor" + ry="7" + rx="7.6034913" + y="371.91068" + x="-255.19838" + height="82.841492" + width="42.374725" + id="rect1163" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.11429262px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="1569.0527" + y="594.56055" + id="text1042" + inkscape:label="HMI:Display@page_node"><tspan + sodipodi:role="line" + id="tspan1040" + x="1569.0527" + y="594.56055" + style="fill:#ffffff;fill-opacity:1;stroke-width:0.25px">page node</tspan></text> + <g + transform="matrix(0.57180538,0,0,0.57180538,165.58244,517.80347)" + id="g443-9" + inkscape:label="HMI:ToggleButton@/PUMP0/BOOLIN" + style="stroke-width:1"> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect5492-7" + width="245.44583" + height="95.723877" + x="971.96545" + y="594.82263" + ry="23.930969" + inkscape:label="inactive" + rx="23.930969" /> + <rect + rx="23.930969" + inkscape:label="active" + ry="23.930969" + y="594.82263" + x="971.96545" + height="95.723877" + width="245.44583" + id="rect433-5" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#fdfdfd;fill-opacity:1;fill-rule:nonzero;stroke:#ffd0b2;stroke-width:28.60938263;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <g + style="stroke-width:1" + inkscape:label="text" + id="g952-3"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="1090.7626" + y="656.98151" + id="text950-8" + inkscape:label="setting_jmp"><tspan + sodipodi:role="line" + id="tspan948-8" + x="1090.7626" + y="656.98151" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px">up</tspan></text> + </g> + </g> +</svg> diff -r 2b00f90c6888 -r d5b2369a103f tests/svghmi_i18n/beremiz.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/svghmi_i18n/beremiz.xml Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,5 @@ +<?xml version='1.0' encoding='utf-8'?> +<BeremizRoot xmlns:xsd="http://www.w3.org/2001/XMLSchema" URI_location="PYRO://127.0.0.1:61284"> + <TargetType/> + <Libraries Enable_SVGHMI_Library="true"/> +</BeremizRoot> diff -r 2b00f90c6888 -r d5b2369a103f tests/svghmi_i18n/plc.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/svghmi_i18n/plc.xml Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,73 @@ +<?xml version='1.0' encoding='utf-8'?> +<project xmlns:ns1="http://www.plcopen.org/xml/tc6_0201" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.plcopen.org/xml/tc6_0201"> + <fileHeader companyName="Unknown" productName="Unnamed" productVersion="1" creationDateTime="2019-08-06T14:23:42"/> + <contentHeader name="Unnamed" modificationDateTime="2021-01-19T09:52:38"> + <coordinateInfo> + <fbd> + <scaling x="5" y="5"/> + </fbd> + <ld> + <scaling x="0" y="0"/> + </ld> + <sfc> + <scaling x="0" y="0"/> + </sfc> + </coordinateInfo> + </contentHeader> + <types> + <dataTypes/> + <pous> + <pou name="MainStuff" pouType="program"> + <interface> + <localVars> + <variable name="TargetPressure"> + <type> + <derived name="HMI_INT"/> + </type> + </variable> + <variable name="selection"> + <type> + <derived name="HMI_INT"/> + </type> + </variable> + </localVars> + </interface> + <body> + <FBD> + <inVariable localId="5" executionOrderId="0" height="30" width="125" negated="false"> + <position x="445" y="65"/> + <connectionPointOut> + <relPosition x="125" y="15"/> + </connectionPointOut> + <expression>TargetPressure</expression> + </inVariable> + <outVariable localId="10" executionOrderId="0" height="25" width="85" negated="false"> + <position x="710" y="105"/> + <connectionPointIn> + <relPosition x="0" y="10"/> + <connection refLocalId="5"> + <position x="710" y="115"/> + <position x="640" y="115"/> + <position x="640" y="80"/> + <position x="570" y="80"/> + </connection> + </connectionPointIn> + <expression>selection</expression> + </outVariable> + </FBD> + </body> + </pou> + </pous> + </types> + <instances> + <configurations> + <configuration name="config"> + <resource name="resource1"> + <task name="task0" priority="0" interval="T#20ms"> + <pouInstance name="instance0" typeName="MainStuff"/> + </task> + </resource> + </configuration> + </configurations> + </instances> +</project> diff -r 2b00f90c6888 -r d5b2369a103f tests/svghmi_i18n/svghmi_0@svghmi/baseconfnode.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/svghmi_i18n/svghmi_0@svghmi/baseconfnode.xml Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,2 @@ +<?xml version='1.0' encoding='utf-8'?> +<BaseParams xmlns:xsd="http://www.w3.org/2001/XMLSchema" IEC_Channel="0" Name="svghmi_0"/> diff -r 2b00f90c6888 -r d5b2369a103f tests/svghmi_i18n/svghmi_0@svghmi/confnode.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/svghmi_i18n/svghmi_0@svghmi/confnode.xml Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,2 @@ +<?xml version='1.0' encoding='utf-8'?> +<SVGHMI xmlns:xsd="http://www.w3.org/2001/XMLSchema" OnWatchdog="echo Watchdog for {name} !" OnStart="chromium http://127.0.0.1:{port}/{name}" OnStop="echo Closing {name}" WatchdogInitial="10" WatchdogInterval="5"/> diff -r 2b00f90c6888 -r d5b2369a103f tests/svghmi_i18n/svghmi_0@svghmi/fr_FR.mo Binary file tests/svghmi_i18n/svghmi_0@svghmi/fr_FR.mo has changed diff -r 2b00f90c6888 -r d5b2369a103f tests/svghmi_i18n/svghmi_0@svghmi/fr_FR.po --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/svghmi_i18n/svghmi_0@svghmi/fr_FR.po Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,42 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ORGANIZATION +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"POT-Creation-Date: 2021-02-14 18:36+CET\n" +"PO-Revision-Date: 2021-02-14 18:37+0100\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: fr_FR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: SVGHMI 1.0\n" +"X-Generator: Poedit 2.4.2\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +msgid "height is %d meters" +msgstr "la hauteur est de %d metres" + +msgid "This is an integer value : %d" +msgstr "C'est un nombre entier : %d" + +msgid "Some \"other\" ČĆÄÅ¡ english text" +msgstr "De l'\"autre\" texte en français žfšŽŠÄĆČ" + +msgid "" +"Some english text\n" +"another line\n" +"a third one" +msgstr "" +"Trois lignes en francais\n" +"blah\n" +"blah" + +#~ msgid "Some english text" +#~ msgstr "Du texte en français" + +#~ msgid "Blah" +#~ msgstr "Blup" diff -r 2b00f90c6888 -r d5b2369a103f tests/svghmi_i18n/svghmi_0@svghmi/messages.pot --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/svghmi_i18n/svghmi_0@svghmi/messages.pot Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,36 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ORGANIZATION +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2021-02-15 14:45+CET\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: SVGHMI 1.0\n" + + +#:svghmi.svg: format:text424 +msgid "height is %d meters" +msgstr "" + +#:svghmi.svg: format:text5271 +msgid "This is an integer value : %d" +msgstr "" + +#:svghmi.svg: someothertext:text5267 +msgid "Some \"other\" ČĆÄÅ¡ english text" +msgstr "" + +#:svghmi.svg: sometext:text5283 +msgid "" +"Some english text\n" +"another line\n" +"a third one" +msgstr "" + diff -r 2b00f90c6888 -r d5b2369a103f tests/svghmi_i18n/svghmi_0@svghmi/sl_SI.mo Binary file tests/svghmi_i18n/svghmi_0@svghmi/sl_SI.mo has changed diff -r 2b00f90c6888 -r d5b2369a103f tests/svghmi_i18n/svghmi_0@svghmi/sl_SI.po --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/svghmi_i18n/svghmi_0@svghmi/sl_SI.po Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,37 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ORGANIZATION +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"POT-Creation-Date: 2021-02-14 18:36+CET\n" +"PO-Revision-Date: 2021-02-14 18:38+0100\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: sl_SI\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: SVGHMI 1.0\n" +"X-Generator: Poedit 2.4.2\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100>=3 && n" +"%100<=4 ? 2 : 3);\n" + +msgid "height is %d meters" +msgstr "To je celo Å¡tevilo %d m" + +msgid "This is an integer value : %d" +msgstr "To je celo Å¡tevilo %d" + +msgid "Some \"other\" ČĆÄÅ¡ english text" +msgstr "En drug angleÅ¡ki tekt" + +msgid "" +"Some english text\n" +"another line\n" +"a third one" +msgstr "" +"En angleÅ¡ki tekst\n" +"druga vrstica\n" +"tretja vrstica" diff -r 2b00f90c6888 -r d5b2369a103f tests/svghmi_i18n/svghmi_0@svghmi/svghmi.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/svghmi_i18n/svghmi_0@svghmi/svghmi.svg Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,2632 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:osb="http://www.openswatchbook.org/uri/2009/osb" + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)" + sodipodi:docname="svghmi.svg" + id="hmi0" + version="1.1" + viewBox="0 0 1280 720" + height="720" + width="1280"> + <metadata + id="metadata4542"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title /> + </cc:Work> + </rdf:RDF> + </metadata> + <defs + id="defs2"> + <linearGradient + id="linearGradient48067" + inkscape:collect="always"> + <stop + style="stop-color:#ffffff;stop-opacity:1" + offset="0" + id="stop48065" /> + <stop + style="stop-color:#000000;stop-opacity:1" + offset="1" + id="stop48063" /> + </linearGradient> + <marker + style="overflow:visible" + id="marker47537" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Lend" + inkscape:isstock="true"> + <path + inkscape:connector-curvature="0" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + style="fill:#464646;fill-opacity:1;fill-rule:evenodd;stroke:#464646;stroke-width:1.00000003pt;stroke-opacity:1" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + id="path47535" /> + </marker> + <marker + style="overflow:visible" + id="marker35048" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Lend" + inkscape:isstock="true"> + <path + inkscape:connector-curvature="0" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + style="fill:#4d4d4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.00000003pt;stroke-opacity:1" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + id="path35046" /> + </marker> + <linearGradient + id="linearGradient34303" + osb:paint="solid"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop34301" /> + </linearGradient> + <marker + style="overflow:visible" + id="marker33393" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Lend" + inkscape:isstock="true"> + <path + inkscape:connector-curvature="0" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + style="fill:#4d4d4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.00000003pt;stroke-opacity:1" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + id="path33391" /> + </marker> + <marker + inkscape:isstock="true" + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0" + refX="0" + id="marker30413" + style="overflow:visible"> + <path + id="path30411" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:isstock="true" + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0" + refX="0" + id="marker27950" + style="overflow:visible"> + <path + id="path27948" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:isstock="true" + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0" + refX="0" + id="marker21366" + style="overflow:visible"> + <path + id="path21364" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="marker20902" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Lend" + inkscape:isstock="true"> + <path + inkscape:connector-curvature="0" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + id="path20900" /> + </marker> + <linearGradient + id="linearGradient20537" + osb:paint="solid"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop20535" /> + </linearGradient> + <marker + style="overflow:visible" + id="marker14281" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Lend" + inkscape:isstock="true"> + <path + inkscape:connector-curvature="0" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + id="path14279" /> + </marker> + <marker + inkscape:isstock="true" + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0" + refX="0" + id="marker13481" + style="overflow:visible"> + <path + id="path13479" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:isstock="true" + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0" + refX="0" + id="marker13093" + style="overflow:visible"> + <path + id="path13091" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0.0" + refX="0.0" + id="marker30978" + style="overflow:visible;" + inkscape:isstock="true"> + <path + id="path30976" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#ff6600;stroke-width:1pt;stroke-opacity:1;fill:#ff6600;fill-opacity:1" + transform="scale(0.4) rotate(180) translate(10,0)" /> + </marker> + <marker + inkscape:stockid="DotM" + orient="auto" + refY="0.0" + refX="0.0" + id="marker30668" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path30666" + d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z " + style="fill-rule:evenodd;stroke:#ff6600;stroke-width:1pt;stroke-opacity:1;fill:#ff6600;fill-opacity:1" + transform="scale(0.4) translate(7.4, 1)" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible;" + id="marker29562" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Mend"> + <path + transform="scale(0.4) rotate(180) translate(10,0)" + style="fill-rule:evenodd;stroke:#3ee800;stroke-width:1pt;stroke-opacity:1;fill:#3ee800;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path29560" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0.0" + refX="0.0" + id="marker29276" + style="overflow:visible;" + inkscape:isstock="true"> + <path + id="path29274" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#3ee800;stroke-width:1pt;stroke-opacity:1;fill:#3ee800;fill-opacity:1" + transform="scale(0.4) rotate(180) translate(10,0)" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible;" + id="marker28710" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Mend"> + <path + transform="scale(0.4) rotate(180) translate(10,0)" + style="fill-rule:evenodd;stroke:#3ee800;stroke-width:1pt;stroke-opacity:1;fill:#3ee800;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path28708" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0.0" + refX="0.0" + id="marker28436" + style="overflow:visible;" + inkscape:isstock="true"> + <path + id="path28434" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#3ee800;stroke-width:1pt;stroke-opacity:1;fill:#3ee800;fill-opacity:1" + transform="scale(0.4) rotate(180) translate(10,0)" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible;" + id="marker27764" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Mend"> + <path + transform="scale(0.4) rotate(180) translate(10,0)" + style="fill-rule:evenodd;stroke:#ff6600;stroke-width:1pt;stroke-opacity:1;fill:#ff6600;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path27762" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker27514" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="DotM"> + <path + transform="scale(0.4) translate(7.4, 1)" + style="fill-rule:evenodd;stroke:#ff6600;stroke-width:1pt;stroke-opacity:1;fill:#ff6600;fill-opacity:1" + d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z " + id="path27512" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker25879" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="SquareL"> + <path + transform="scale(0.8)" + style="fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:#ff6600;stroke-width:1.00000003pt;stroke-opacity:1" + d="M -5,-5 V 5 H 5 V -5 Z" + id="path25877" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow2Lend" + orient="auto" + refY="0.0" + refX="0.0" + id="marker24867" + style="overflow:visible;" + inkscape:isstock="true"> + <path + id="path8226" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#3ee800;stroke-opacity:1;fill:#3ee800;fill-opacity:1" + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " + transform="scale(1.1) rotate(180) translate(1,0)" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible;" + id="marker22543" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow2Lend"> + <path + transform="scale(1.1) rotate(180) translate(1,0)" + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1" + id="path22541" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker21870" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Lend"> + <path + transform="matrix(-0.8,0,0,-0.8,-10,0)" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + id="path21868" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker21674" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="SquareL"> + <path + transform="scale(0.8)" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + d="M -5,-5 V 5 H 5 V -5 Z" + id="path21672" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="SquareL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker20566" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path20564" + d="M -5.0,-5.0 L -5.0,5.0 L 5.0,5.0 L 5.0,-5.0 L -5.0,-5.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0.0" + refX="0.0" + id="marker20382" + style="overflow:visible;" + inkscape:isstock="true"> + <path + id="path20380" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + transform="scale(0.8) rotate(180) translate(12.5,0)" /> + </marker> + <marker + inkscape:stockid="SquareL" + orient="auto" + refY="0.0" + refX="0.0" + id="SquareL" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path8275" + d="M -5.0,-5.0 L -5.0,5.0 L 5.0,5.0 L 5.0,-5.0 L -5.0,-5.0 z " + style="fill-rule:evenodd;stroke:#ff3000;stroke-width:1pt;stroke-opacity:1;fill:#ff3000;fill-opacity:1" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="Arrow1Lstart" + orient="auto" + refY="0.0" + refX="0.0" + id="marker19998" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path19996" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#ff3000;stroke-width:1pt;stroke-opacity:1;fill:#ff3000;fill-opacity:1" + transform="scale(0.8) translate(12.5,0)" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker19672" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Mstart"> + <path + transform="scale(0.4) translate(10,0)" + style="fill-rule:evenodd;stroke:#ff3000;stroke-width:1pt;stroke-opacity:1;fill:#ff3000;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path19670" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker19488" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="DiamondMend"> + <path + transform="scale(0.4) translate(-6.5,0)" + style="fill-rule:evenodd;stroke:none;stroke-width:1pt;stroke-opacity:1;fill:none;fill-opacity:1" + d="M 0,-7.0710768 L -7.0710894,0 L 0,7.0710589 L 7.0710462,0 L 0,-7.0710768 z " + id="path19486" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker19352" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="DiamondMend"> + <path + transform="scale(0.4) translate(-6.5,0)" + style="fill-rule:evenodd;stroke:none;stroke-width:1pt;stroke-opacity:1;fill:none;fill-opacity:1" + d="M 0,-7.0710768 L -7.0710894,0 L 0,7.0710589 L 7.0710462,0 L 0,-7.0710768 z " + id="path19350" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible;" + id="marker17321" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Mend"> + <path + transform="scale(0.4) rotate(180) translate(10,0)" + style="fill-rule:evenodd;stroke:#ff3000;stroke-width:1pt;stroke-opacity:1;fill:#ff3000;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path17319" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker17197" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Mstart"> + <path + transform="scale(0.4) translate(10,0)" + style="fill-rule:evenodd;stroke:#ff3000;stroke-width:1pt;stroke-opacity:1;fill:#ff3000;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path17195" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker16921" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="DiamondMend"> + <path + transform="scale(0.4) translate(-6.5,0)" + style="fill-rule:evenodd;stroke:#3ee800;stroke-width:1pt;stroke-opacity:1;fill:#3ee800;fill-opacity:1" + d="M 0,-7.0710768 L -7.0710894,0 L 0,7.0710589 L 7.0710462,0 L 0,-7.0710768 z " + id="path16919" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker16821" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="DiamondMend"> + <path + transform="scale(0.4) translate(-6.5,0)" + style="fill-rule:evenodd;stroke:#3ee800;stroke-width:1pt;stroke-opacity:1;fill:#3ee800;fill-opacity:1" + d="M 0,-7.0710768 L -7.0710894,0 L 0,7.0710589 L 7.0710462,0 L 0,-7.0710768 z " + id="path16819" /> + </marker> + <marker + inkscape:stockid="Arrow1Lstart" + orient="auto" + refY="0.0" + refX="0.0" + id="Arrow1Lstart" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path8205" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#ff3000;stroke-width:1pt;stroke-opacity:1;fill:#ff3000;fill-opacity:1" + transform="scale(0.8) translate(12.5,0)" /> + </marker> + <marker + inkscape:stockid="Arrow2Lstart" + orient="auto" + refY="0.0" + refX="0.0" + id="Arrow2Lstart" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path8223" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#ff3000;stroke-opacity:1;fill:#ff3000;fill-opacity:1" + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " + transform="scale(1.1) translate(1,0)" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker10905" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Lend"> + <path + transform="matrix(-1.1,0,0,-1.1,-1.1,0)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:#ff3000;fill-opacity:1;fill-rule:evenodd;stroke:#ff3000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + id="path10903" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0.0" + refX="0.0" + id="Arrow1Lend" + style="overflow:visible;" + inkscape:isstock="true"> + <path + id="path8208" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + transform="scale(0.8) rotate(180) translate(12.5,0)" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker1971" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Lend"> + <path + transform="matrix(-1.1,0,0,-1.1,-1.1,0)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:#ff3000;fill-opacity:1;fill-rule:evenodd;stroke:#ff3000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + id="path1969" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker1536" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Lend"> + <path + transform="matrix(-1.1,0,0,-1.1,-1.1,0)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + id="path1534" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker1656" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Lend"> + <path + transform="matrix(-1.1,0,0,-1.1,-1.1,0)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:#ff3000;fill-opacity:1;fill-rule:evenodd;stroke:#ff3000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + id="path1654" + inkscape:connector-curvature="0" /> + </marker> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="1454.3019 : 921.18786 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="2782.3019 : 507.18786 : 1" + inkscape:persp3d-origin="2094.3019 : 801.18786 : 1" + id="perspective1372" /> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="1424.3019 : 863.18786 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="2800.3019 : 891.18786 : 1" + inkscape:persp3d-origin="2064.3019 : 743.18786 : 1" + id="perspective1370" /> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="73.983557 : 377.52255 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="1401.9836 : -36.477445 : 1" + inkscape:persp3d-origin="713.98356 : 257.52255 : 1" + id="perspective503" /> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="43.983597 : 319.52255 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="1419.9836 : 347.52255 : 1" + inkscape:persp3d-origin="683.98356 : 199.52255 : 1" + id="perspective445" /> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker926" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Lend"> + <path + transform="matrix(-1.1,0,0,-1.1,-1.1,0)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:#ff3000;fill-opacity:1;fill-rule:evenodd;stroke:#ff3000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + id="path924" + inkscape:connector-curvature="0" /> + </marker> + <linearGradient + id="linearGradient3919" + inkscape:collect="always"> + <stop + id="stop3921" + style="stop-color:#ffffff" + offset="0" /> + <stop + id="stop3923" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /> + </linearGradient> + <linearGradient + id="linearGradient3862"> + <stop + id="stop3864" + style="stop-color:#414141" + offset="0" /> + <stop + id="stop3868" + style="stop-color:#41433f" + offset=".15789" /> + <stop + id="stop3866" + style="stop-color:#000000" + offset="1" /> + </linearGradient> + <linearGradient + id="linearGradient3994"> + <stop + id="stop3996" + style="stop-color:#626262" + offset="0" /> + <stop + id="stop4000" + style="stop-color:#919191" + offset=".74085" /> + <stop + id="stop3998" + style="stop-color:#ceced2" + offset="1" /> + </linearGradient> + <linearGradient + id="linearGradient4108"> + <stop + id="stop4110" + style="stop-color:#ddcf1b" + offset="0" /> + <stop + id="stop4112" + style="stop-color:#ccd21b" + offset="0.28542241" /> + <stop + id="stop4114" + style="stop-color:#2bb733" + offset="1" /> + </linearGradient> + <linearGradient + id="linearGradient4292"> + <stop + id="stop4294" + style="stop-color:#666666" + offset="0" /> + <stop + id="stop4296" + style="stop-color:#c3c3c5" + offset="1" /> + </linearGradient> + <radialGradient + id="radialGradient9759" + xlink:href="#linearGradient3862" + gradientUnits="userSpaceOnUse" + cy="271.12" + cx="488.75" + gradientTransform="matrix(-1.1814,2.021e-7,-1.7895e-7,-0.97615,1072.1,866.87)" + r="57.629002" + inkscape:collect="always" /> + <marker + inkscape:stockid="DiamondMend" + orient="auto" + refY="0" + refX="0" + id="DiamondMend-9" + style="overflow:visible" + inkscape:isstock="true"> + <path + inkscape:connector-curvature="0" + id="path8305-2" + d="M 0,-7.0710768 -7.0710894,0 0,7.0710589 7.0710462,0 Z" + style="fill:#3ee800;fill-opacity:1;fill-rule:evenodd;stroke:#3ee800;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(0.4,0,0,0.4,-2.6,0)" /> + </marker> + <marker + inkscape:stockid="DiamondMend" + orient="auto" + refY="0" + refX="0" + id="marker16719" + style="overflow:visible" + inkscape:isstock="true"> + <path + inkscape:connector-curvature="0" + id="path16717" + d="M 0,-7.0710768 -7.0710894,0 0,7.0710589 7.0710462,0 Z" + style="fill:#3ee800;fill-opacity:1;fill-rule:evenodd;stroke:#3ee800;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(0.4,0,0,0.4,-2.6,0)" /> + </marker> + <marker + inkscape:stockid="Arrow1Mstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mstart-2" + style="overflow:visible" + inkscape:isstock="true"> + <path + inkscape:connector-curvature="0" + id="path8211-3" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill:#ff3000;fill-opacity:1;fill-rule:evenodd;stroke:#ff3000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(0.4,0,0,0.4,4,0)" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mend-7" + style="overflow:visible" + inkscape:isstock="true"> + <path + inkscape:connector-curvature="0" + id="path8214-5" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill:#ff3000;fill-opacity:1;fill-rule:evenodd;stroke:#ff3000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(-0.4,0,0,-0.4,-4,0)" /> + </marker> + <linearGradient + id="linearGradient5712"> + <stop + id="stop5714" + style="stop-color:#cccccc" + offset="0" /> + <stop + id="stop5716" + style="stop-color:#ffffff;stop-opacity:0" + offset=".12299" /> + <stop + id="stop5718" + style="stop-color:#999999;stop-opacity:.63813" + offset="1" /> + </linearGradient> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker23223-1" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Mend"> + <path + inkscape:connector-curvature="0" + transform="matrix(-0.4,0,0,-0.4,-4,0)" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + id="path23221-2" /> + </marker> + <marker + inkscape:stockid="DotM" + orient="auto" + refY="0" + refX="0" + id="DotM-2" + style="overflow:visible" + inkscape:isstock="true"> + <path + inkscape:connector-curvature="0" + id="path8269-0" + d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z" + style="fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:#ff6600;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(0.4,0,0,0.4,2.96,0.4)" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="marker26099-6" + style="overflow:visible" + inkscape:isstock="true"> + <path + inkscape:connector-curvature="0" + id="path26097-1" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:#ff6600;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(-0.4,0,0,-0.4,-4,0)" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker19820-5" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Mend"> + <path + inkscape:connector-curvature="0" + transform="matrix(-0.4,0,0,-0.4,-4,0)" + style="fill:#3ee800;fill-opacity:1;fill-rule:evenodd;stroke:#3ee800;stroke-width:1.00000003pt;stroke-opacity:1" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + id="path19818-4" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="marker25117-7" + style="overflow:visible" + inkscape:isstock="true"> + <path + inkscape:connector-curvature="0" + id="path25115-6" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill:#3ee800;fill-opacity:1;fill-rule:evenodd;stroke:#3ee800;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(-0.4,0,0,-0.4,-4,0)" /> + </marker> + <marker + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Lend-3" + style="overflow:visible" + inkscape:isstock="true"> + <path + inkscape:connector-curvature="0" + id="path8208-5" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#fffffc;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(-0.8,0,0,-0.8,-10,0)" /> + </marker> + <radialGradient + id="radialGradient4432-9" + xlink:href="#linearGradient3862" + gradientUnits="userSpaceOnUse" + cy="331.47" + cx="487.54999" + gradientTransform="matrix(1.7799744,-9.2806384e-8,9.900727e-8,1.6752735,-3368.2885,-2467.2504)" + r="57.629002" + inkscape:collect="always" /> + <radialGradient + inkscape:collect="always" + xlink:href="#radialGradient4436-7" + id="radialGradient2918-3" + cx="1043.1659" + cy="285.35944" + fx="1043.1659" + fy="285.35944" + r="192.22134" + gradientTransform="matrix(0.93659677,-0.44854394,0.32346083,0.67732006,-26.162515,540.12207)" + gradientUnits="userSpaceOnUse" /> + <radialGradient + id="radialGradient4436-7" + gradientUnits="userSpaceOnUse" + cy="336.42001" + cx="491.09" + gradientTransform="matrix(1.1429,0,0,1.1429,-73.994,-53.898)" + r="42.073002" + inkscape:collect="always"> + <stop + id="stop3894-5" + style="stop-color:#ddcf1b" + offset="0" /> + <stop + id="stop3898-9" + style="stop-color:#ccd21b" + offset=".5" /> + <stop + id="stop3896-2" + style="stop-color:#2bb733" + offset="1" /> + </radialGradient> + <radialGradient + id="radialGradient4438-2" + xlink:href="#linearGradient3919" + gradientUnits="userSpaceOnUse" + cy="379.03" + cx="520.47998" + gradientTransform="matrix(2.5227749,-1.8142535,0.87409912,1.2348725,-4090.1248,-1355.5321)" + r="57.629002" + inkscape:collect="always" /> + <radialGradient + id="radialGradient5322" + xlink:href="#linearGradient3862" + gradientUnits="userSpaceOnUse" + cy="331.47" + cx="487.54999" + gradientTransform="matrix(1.7799744,-9.2806384e-8,9.900727e-8,1.6752735,-3368.2885,-2467.2504)" + r="57.629002" + inkscape:collect="always" /> + <radialGradient + inkscape:collect="always" + xlink:href="#radialGradient4436-7" + id="radialGradient5340" + cx="1043.1659" + cy="285.35944" + fx="1043.1659" + fy="285.35944" + r="192.22134" + gradientTransform="matrix(0.93659677,-0.44854394,0.32346083,0.67732006,-26.162515,540.12207)" + gradientUnits="userSpaceOnUse" /> + <radialGradient + id="radialGradient5350" + xlink:href="#linearGradient3919" + gradientUnits="userSpaceOnUse" + cy="379.03" + cx="520.47998" + gradientTransform="matrix(2.5227749,-1.8142535,0.87409912,1.2348725,-4090.1248,-1355.5321)" + r="57.629002" + inkscape:collect="always" /> + <marker + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Lend-3-9" + style="overflow:visible" + inkscape:isstock="true"> + <path + inkscape:connector-curvature="0" + id="path8208-5-3" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#fffffc;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(-0.8,0,0,-0.8,-10,0)" /> + </marker> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3862" + id="radialGradient8154-3" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.7799744,-9.2806384e-8,9.900727e-8,1.6752735,-3368.2885,-2467.2504)" + cx="487.54999" + cy="331.47" + r="57.629002" /> + <radialGradient + inkscape:collect="always" + xlink:href="#radialGradient4436-5" + id="radialGradient8158-1" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.93659677,-0.44854394,0.32346083,0.67732006,-26.162515,540.12207)" + cx="1043.1659" + cy="285.35944" + fx="1043.1659" + fy="285.35944" + r="192.22134" /> + <radialGradient + id="radialGradient4436-5" + gradientUnits="userSpaceOnUse" + cy="336.42001" + cx="491.09" + gradientTransform="matrix(1.1429,0,0,1.1429,-73.994,-53.898)" + r="42.073002" + inkscape:collect="always"> + <stop + id="stop3894-54" + style="stop-color:#ddcf1b" + offset="0" /> + <stop + id="stop3898-7" + style="stop-color:#ccd21b" + offset=".5" /> + <stop + id="stop3896-6" + style="stop-color:#2bb733" + offset="1" /> + </radialGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3919" + id="radialGradient8160-5" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.5227749,-1.8142535,0.87409912,1.2348725,-4090.1248,-1355.5321)" + cx="520.47998" + cy="379.03" + r="57.629002" /> + <radialGradient + inkscape:collect="always" + xlink:href="#radialGradient4440-9" + id="radialGradient8162-6" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(5.2310528,-3.8736755,1.0272215,1.565962,-362.40903,3218.8585)" + cx="477.91" + cy="325.29001" + r="26.870001" /> + <radialGradient + id="radialGradient4440-9" + gradientUnits="userSpaceOnUse" + cy="325.29001" + cx="477.91" + gradientTransform="matrix(5.2310528,-3.8736755,1.0272215,1.565962,-362.40903,3218.8585)" + r="26.870001" + inkscape:collect="always"> + <stop + id="stop3876-3" + style="stop-color:#333333" + offset="0" /> + <stop + id="stop3878-7" + style="stop-color:#333333;stop-opacity:0" + offset="1" /> + </radialGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3862" + id="radialGradient8996" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.7799744,-9.2806384e-8,9.900727e-8,1.6752735,-3368.2885,-2467.2504)" + cx="487.54999" + cy="331.47" + r="57.629002" /> + <radialGradient + inkscape:collect="always" + xlink:href="#radialGradient4436-5" + id="radialGradient9014" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.93659677,-0.44854394,0.32346083,0.67732006,-26.162515,540.12207)" + cx="1043.1659" + cy="285.35944" + fx="1043.1659" + fy="285.35944" + r="192.22134" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3919" + id="radialGradient9024" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.5227749,-1.8142535,0.87409912,1.2348725,-4090.1248,-1355.5321)" + cx="520.47998" + cy="379.03" + r="57.629002" /> + <radialGradient + inkscape:collect="always" + xlink:href="#radialGradient4440-9" + id="radialGradient9032" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(5.2310528,-3.8736755,1.0272215,1.565962,-362.40903,3218.8585)" + cx="477.91" + cy="325.29001" + r="26.870001" /> + <marker + inkscape:isstock="true" + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0" + refX="0" + id="marker22786-9" + style="overflow:visible"> + <path + id="path22784-6" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:isstock="true" + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0" + refX="0" + id="marker22786-3" + style="overflow:visible"> + <path + id="path22784-3" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:isstock="true" + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0" + refX="0" + id="marker22786-8" + style="overflow:visible"> + <path + id="path22784-60" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + inkscape:connector-curvature="0" /> + </marker> + <pattern + patternUnits="userSpaceOnUse" + width="1280" + height="720" + patternTransform="translate(-120,1560)" + id="pattern32315"> + <g + inkscape:label="HMI:Keypad:HMI_STRING:HMI_LOCAL:PAGE_LOCAL" + id="use32313" + style="fill-rule:evenodd;stroke-width:0.47631353" + transform="matrix(3.3549332,0,0,3.14525,-181.87457,-3.9802)"> + <path + sodipodi:nodetypes="ccccc" + inkscape:label="Background" + inkscape:connector-curvature="0" + id="path4383" + d="M 54.211084,1.2654702 H 435.7388 V 230.18209 H 54.211084 Z" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.6;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.16776976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <path + inkscape:label="Space" + inkscape:connector-curvature="0" + d="m 162,197 h -11 c -2,0 -3,1 -3,3 v 18 c 0,2 1,3 3,3 h 11 168 18 c 0,0 1,-1 1,-3 v -18 c 0,-2 -1,-3 -1,-3 h -18 z" + id="path4385" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <g + transform="translate(0,-19.076386)" + style="stroke-width:0.47631353" + inkscape:label="Keys" + id="g4627"> + <g + transform="translate(0,-9.5381931)" + style="stroke-width:0.47631353" + inkscape:label="q Q" + id="g4391"> + <path + inkscape:connector-curvature="0" + d="m 95,121 h 19 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 H 95 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + id="path4387" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + transform="scale(1.0007154,0.99928514)" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text4389" + y="138.28395" + x="99.378708">Q</text> + </g> + <g + transform="translate(0,-9.5381931)" + style="stroke-width:0.47631353" + inkscape:label="w W" + id="g4397"> + <path + inkscape:connector-curvature="0" + d="m 124,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + id="path4393" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + transform="scale(1.0007154,0.99928514)" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text4395" + y="138.28395" + x="127.0709">W</text> + </g> + <g + transform="translate(0,-9.5381931)" + style="stroke-width:0.47631353" + inkscape:label="e E" + id="g4403"> + <path + inkscape:connector-curvature="0" + d="m 154,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + id="path4399" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + transform="scale(1.0007154,0.99928514)" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text4401" + y="138.28395" + x="159.70854">E</text> + </g> + <g + transform="translate(0,-9.5381931)" + style="stroke-width:0.47631353" + inkscape:label="r R" + id="g4409"> + <path + inkscape:connector-curvature="0" + d="m 184,121 h 19 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -19 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + id="path4405" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + transform="scale(1.0007154,0.99928514)" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text4407" + y="138.28395" + x="188.39003">R</text> + </g> + <g + transform="translate(0,-9.5381931)" + style="stroke-width:0.47631353" + inkscape:label="t T" + id="g4415"> + <path + inkscape:connector-curvature="0" + d="m 213,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z" + id="path4411" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + transform="scale(1.0007154,0.99928514)" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text4413" + y="138.28395" + x="219.04961">T</text> + </g> + <g + transform="translate(0,-9.5381931)" + style="stroke-width:0.47631353" + inkscape:label="y Y" + id="g4421"> + <path + inkscape:connector-curvature="0" + d="m 243,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z" + id="path4417" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + transform="scale(1.0007154,0.99928514)" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text4419" + y="138.28395" + x="248.72017">Y</text> + </g> + <g + transform="translate(0,-9.5381931)" + style="stroke-width:0.47631353" + inkscape:label="u U" + id="g4427"> + <path + inkscape:connector-curvature="0" + d="m 273,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z" + id="path4423" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + transform="scale(1.0007154,0.99928514)" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text4425" + y="138.28395" + x="278.39075">U</text> + </g> + <g + transform="translate(0,-9.5381931)" + style="stroke-width:0.47631353" + inkscape:label="i I" + id="g4433"> + <path + inkscape:connector-curvature="0" + d="m 302,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z" + id="path4429" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + transform="scale(1.0007154,0.99928514)" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text4431" + y="138.28395" + x="311.02859">I</text> + </g> + <g + transform="translate(0,-9.5381931)" + style="stroke-width:0.47631353" + inkscape:label="o O" + id="g4439"> + <path + inkscape:connector-curvature="0" + d="m 332,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z" + id="path4435" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + transform="scale(1.0007154,0.99928514)" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text4437" + y="138.28395" + x="336.74319">O</text> + </g> + <g + transform="translate(0,-9.5381931)" + style="stroke-width:0.47631353" + inkscape:label="p P" + id="g4445"> + <path + inkscape:connector-curvature="0" + d="m 362,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z" + id="path4441" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + transform="scale(1.0007154,0.99928514)" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text4443" + y="138.28395" + x="367.40256">P</text> + </g> + <g + inkscape:label="a A" + id="g4451" + style="fill-rule:evenodd;stroke-width:0.47631353"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path4447" + d="m 103,147 h 19 c 1,0 3,1 3,2 v 19 c 0,1 -2,2 -3,2 h -19 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z" + inkscape:connector-curvature="0" /> + <text + transform="scale(1.0007154,0.99928514)" + x="107.29005" + y="163.99854" + id="text4449" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">A</text> + </g> + <g + inkscape:label="s S" + id="g4457" + style="fill-rule:evenodd;stroke-width:0.47631353"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path4453" + d="m 132,147 h 20 c 1,0 3,1 3,2 v 19 c 0,1 -2,2 -3,2 h -20 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z" + inkscape:connector-curvature="0" /> + <text + transform="scale(1.0007154,0.99928514)" + x="137.95012" + y="163.99854" + id="text4455" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">S</text> + </g> + <g + inkscape:label="d D" + id="g4463" + style="fill-rule:evenodd;stroke-width:0.47631353"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path4459" + d="m 162,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z" + inkscape:connector-curvature="0" /> + <text + transform="scale(1.0007154,0.99928514)" + x="166.63159" + y="163.99854" + id="text4461" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">D</text> + </g> + <g + inkscape:label="f F" + id="g4469" + style="fill-rule:evenodd;stroke-width:0.47631353"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path4465" + d="m 192,147 h 19 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -19 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z" + inkscape:connector-curvature="0" /> + <text + transform="scale(1.0007154,0.99928514)" + x="197.29166" + y="163.99854" + id="text4467" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">F</text> + </g> + <g + inkscape:label="g G" + id="g4475" + style="fill-rule:evenodd;stroke-width:0.47631353"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path4471" + d="m 221,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z" + inkscape:connector-curvature="0" /> + <text + transform="scale(1.0007154,0.99928514)" + x="225.97284" + y="163.99854" + id="text4473" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">G</text> + </g> + <g + inkscape:label="h H" + id="g4481" + style="fill-rule:evenodd;stroke-width:0.47631353"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path4477" + d="m 251,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z" + inkscape:connector-curvature="0" /> + <text + transform="scale(1.0007154,0.99928514)" + x="255.64342" + y="163.99854" + id="text4479" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">H</text> + </g> + <g + inkscape:label="j J" + id="g4487" + style="fill-rule:evenodd;stroke-width:0.47631353"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path4483" + d="m 281,147 h 19 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -19 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z" + inkscape:connector-curvature="0" /> + <text + transform="scale(1.0007154,0.99928514)" + x="287.29208" + y="163.99854" + id="text4485" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">J</text> + </g> + <g + inkscape:label="k K" + id="g4493" + style="fill-rule:evenodd;stroke-width:0.47631353"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path4489" + d="m 310,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z" + inkscape:connector-curvature="0" /> + <text + transform="scale(1.0007154,0.99928514)" + x="314.98465" + y="163.99854" + id="text4491" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">K</text> + </g> + <g + inkscape:label="l L" + id="g4500" + style="fill-rule:evenodd;stroke-width:0.47631353"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path4495" + d="m 340,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z" + inkscape:connector-curvature="0" /> + <text + transform="scale(1.0007154,0.99928514)" + x="345.64444" + y="163.99854" + id="text4498" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">L</text> + </g> + <g + transform="translate(0,9.5381929)" + inkscape:label="z Z" + id="g4506" + style="fill-rule:evenodd;stroke-width:0.47631353"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path4502" + d="m 113,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 z" + inkscape:connector-curvature="0" /> + <text + transform="scale(1.0007154,0.99928514)" + x="119.15855" + y="188.72411" + id="text4504" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">Z</text> + </g> + <g + transform="translate(0,9.5381929)" + inkscape:label="x X" + id="g4512" + style="fill-rule:evenodd;stroke-width:0.47631353"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path4508" + d="m 143,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 z" + inkscape:connector-curvature="0" /> + <text + transform="scale(1.0007154,0.99928514)" + x="148.82933" + y="188.72411" + id="text4510" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">X</text> + </g> + <g + transform="translate(0,9.5381929)" + inkscape:label="c C" + id="g4518" + style="fill-rule:evenodd;stroke-width:0.47631353"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path4514" + d="m 173,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 z" + inkscape:connector-curvature="0" /> + <text + transform="scale(1.0007154,0.99928514)" + x="178.50011" + y="188.72411" + id="text4516" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">C</text> + </g> + <g + transform="translate(0,9.5381929)" + inkscape:label="v V" + id="g4524" + style="fill-rule:evenodd;stroke-width:0.47631353"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path4520" + d="m 202,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c 0,0 -1,-1 -1,-3 v -17 c 0,-1 1,-3 1,-3 z" + inkscape:connector-curvature="0" /> + <text + transform="scale(1.0007154,0.99928514)" + x="208.16988" + y="188.72411" + id="text4522" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">V</text> + </g> + <g + transform="translate(0,9.5381929)" + inkscape:label="b B" + id="g4530" + style="fill-rule:evenodd;stroke-width:0.47631353"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path4526" + d="m 233,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z" + inkscape:connector-curvature="0" /> + <text + transform="scale(1.0007154,0.99928514)" + x="237.84096" + y="188.72411" + id="text4528" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">B</text> + </g> + <g + transform="translate(0,9.5381929)" + inkscape:label="n N" + id="g4537" + style="fill-rule:evenodd;stroke-width:0.47631353"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path4532" + d="m 263,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z" + inkscape:connector-curvature="0" /> + <text + transform="scale(1.0007154,0.99928514)" + x="267.51193" + y="188.72411" + id="text4534" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">N</text> + </g> + <g + transform="translate(0,9.5381929)" + inkscape:label="m M" + id="g4543" + style="fill-rule:evenodd;stroke-width:0.47631353"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path4539" + d="m 293,172 h 19 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -19 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z" + inkscape:connector-curvature="0" /> + <text + transform="scale(1.0007154,0.99928514)" + x="296.1933" + y="188.72411" + id="text4541" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">M</text> + </g> + <g + transform="translate(0,9.5381929)" + style="stroke-width:0.47631353" + inkscape:label=". :" + id="g4552"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path4545" + d="m 352,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z" + inkscape:connector-curvature="0" /> + <text + x="359.58276" + y="189.66107" + id="text4547" + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928513)">.</text> + <text + transform="scale(1.0007154,0.99928512)" + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826" + id="text4549" + y="181.64532" + x="359.58276">:</text> + </g> + <g + transform="translate(0,9.5381929)" + style="stroke-width:0.47631353" + inkscape:label=", ;" + id="g4560"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path4554" + d="m 322,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z" + inkscape:connector-curvature="0" /> + <text + transform="scale(1.0007154,0.99928512)" + x="330.00806" + y="181.64532" + id="text4556" + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826">;</text> + <text + id="text4558" + transform="scale(1.0007154,0.99928512)" + x="330.00806" + y="189.66107" + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826">,</text> + </g> + <g + transform="translate(-13.353469,-45.783327)" + id="g4567" + inkscape:label="1" + style="stroke-width:0.47631353"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path4562" + d="m 95,121 h 19 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 H 95 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + inkscape:connector-curvature="0" /> + <text + transform="scale(1.0007154,0.99928513)" + x="101.07153" + y="138.28395" + id="text4564" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">1</text> + </g> + <g + transform="translate(-13.353469,-45.783327)" + id="g4573" + inkscape:label="2" + style="stroke-width:0.47631353"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path4569" + d="m 124,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + inkscape:connector-curvature="0" /> + <text + transform="scale(1.0007154,0.99928513)" + x="130.18704" + y="138.28395" + id="text4571" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">2</text> + </g> + <g + transform="translate(-13.353469,-45.783327)" + style="stroke-width:0.47631353" + id="g4579" + inkscape:label="3"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path4575" + d="m 154,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + inkscape:connector-curvature="0" /> + <text + transform="scale(1.0007154,0.99928514)" + x="159.70854" + y="138.28395" + id="text4577" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">3</text> + </g> + <g + transform="translate(0,-19.076386)" + inkscape:label="4" + id="g4585"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path4581" + d="m 170.64653,94.293059 h 19 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -19 c -1,0 -3,-2 -3,-3 V 97.293059 c 0,-2 2,-3 3,-3 z" + inkscape:connector-curvature="0" /> + <text + transform="scale(1.0007154,0.99928514)" + x="176.39188" + y="111.55791" + id="text4583" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">4</text> + </g> + <g + transform="translate(0,-19.076386)" + inkscape:label="5" + id="g4591"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path4587" + d="m 199.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z" + inkscape:connector-curvature="0" /> + <text + transform="scale(1.0007154,0.99928514)" + x="205.70567" + y="111.55791" + id="text4589" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">5</text> + </g> + <g + transform="translate(0,-19.076386)" + inkscape:label="6" + id="g4597"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path4593" + d="m 229.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z" + inkscape:connector-curvature="0" /> + <text + transform="scale(1.0007154,0.99928514)" + x="236.15851" + y="111.55791" + id="text4595" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">6</text> + </g> + <g + transform="translate(0,-19.076386)" + inkscape:label="7" + id="g4603"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path4599" + d="m 259.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z" + inkscape:connector-curvature="0" /> + <text + transform="scale(1.0007154,0.99928514)" + x="266.06564" + y="111.55791" + id="text4601" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">7</text> + </g> + <g + transform="translate(0,-19.076386)" + inkscape:label="8" + id="g4609"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path4605" + d="m 288.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z" + inkscape:connector-curvature="0" /> + <text + transform="scale(1.0007154,0.99928514)" + x="295.08231" + y="111.55791" + id="text4607" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">8</text> + </g> + <g + transform="translate(0,-19.076386)" + inkscape:label="9 -" + id="g4617"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path4611" + d="m 318.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z" + inkscape:connector-curvature="0" /> + <text + transform="scale(1.0007154,0.99928514)" + x="325.05408" + y="111.55791" + id="text4613" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">9</text> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826" + id="text4615" + y="102.42173" + x="335.72681" + transform="scale(1.0007154,0.99928511)">-</text> + </g> + <g + transform="translate(0,-19.076386)" + inkscape:label="0 +" + id="g4625"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path4619" + d="m 348.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z" + inkscape:connector-curvature="0" /> + <text + transform="scale(1.0007154,0.99928514)" + x="355.05984" + y="111.55791" + id="text4621" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">0</text> + <text + x="365.30151" + y="102.42173" + id="text4623" + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928511)">+</text> + </g> + </g> + <g + style="stroke-width:0.47631353" + inkscape:label="Esc" + id="g4633" + transform="translate(335.89988,-58.934803)"> + <path + sodipodi:nodetypes="sssssssss" + inkscape:connector-curvature="0" + d="m 47.948645,115.07509 h 39.076386 c 1,0 3,1 3,3 v 18 c 0,1 -2,3 -3,3 H 47.948645 c -2,0 -3,-2 -3,-3 v -18 c 0,-2 1,-3 3,-3 z" + id="path4629" + style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + x="59.288635" + y="130.02028" + id="text4631" + style="font-weight:normal;font-size:9.37966251px;font-family:Arial;fill:#ffffff;fill-rule:evenodd;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928512)">Esc</text> + </g> + <g + transform="translate(0,-19.076386)" + style="stroke-width:0.47631353" + id="g4639" + inkscape:label="Enter"> + <path + inkscape:connector-curvature="0" + d="m 368.68274,170 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 54.24217 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z" + id="path4635" + style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + sodipodi:nodetypes="sssssssss" /> + <path + inkscape:connector-curvature="0" + id="path4637" + transform="matrix(0.47690966,0,0,0.47690966,531.12074,-361.18588)" + d="m -260.23633,1080.8125 v 15.7949 h -38.68555 v -3 l -6.91992,4 6.91992,4 v -3.0019 h 40.6836 v -17.793 z" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + </g> + <g + transform="translate(2.3648311e-6,-28.614579)" + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4645" + inkscape:label="BackSpace"> + <path + inkscape:connector-curvature="0" + d="m 391.97749,144 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 30.94742 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z" + id="path4641" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + sodipodi:nodetypes="sssssssss" /> + <path + inkscape:connector-curvature="0" + id="path4643" + transform="matrix(0.47690966,0,0,0.47690966,531.12074,-351.64769)" + d="m -268.72656,1011.1777 -6.91992,4 6.91992,4 v -3.0019 h 29.18945 v -1.9981 h -29.18945 z" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#2b2828;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + </g> + <g + inkscape:label="CapsLock" + id="g4663"> + <g + transform="translate(0,-19.076386)" + style="display:inline;fill-rule:evenodd;stroke-width:0.47631353" + id="g4653" + inkscape:label="inactive"> + <path + inkscape:connector-curvature="0" + d="m 67.025031,170 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 H 92 c 2,0 4,1 4,2 v 19 c 0,1 -2,2 -4,2 z" + id="path4647" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + sodipodi:nodetypes="sssssssss" /> + <text + transform="scale(1.0007154,0.99928515)" + style="font-weight:normal;font-size:8.66233635px;font-family:Arial;fill:#2b2828;stroke-width:0.36866823" + id="text4649" + y="156.71973" + x="69.789322">Caps</text> + <text + transform="scale(1.0007154,0.99928515)" + style="font-weight:normal;font-size:8.66233635px;font-family:Arial;fill:#2b2828;stroke-width:0.36866823" + id="text4651" + y="166.5585" + x="69.789322">Lock</text> + </g> + <g + inkscape:label="active" + id="g4661" + style="fill-rule:evenodd;stroke-width:0.47631353" + transform="translate(0,-19.076386)"> + <path + sodipodi:nodetypes="sssssssss" + style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path4655" + d="m 67.025031,170 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 H 92 c 2,0 4,1 4,2 v 19 c 0,1 -2,2 -4,2 z" + inkscape:connector-curvature="0" /> + <text + x="69.789322" + y="156.71973" + id="text4657" + style="font-weight:normal;font-size:8.66233635px;font-family:Arial;fill:#ffffff;stroke-width:0.36866823" + transform="scale(1.0007154,0.99928515)">Caps</text> + <text + x="69.789322" + y="166.5585" + id="text4659" + style="font-weight:normal;font-size:8.66233635px;font-family:Arial;fill:#ffffff;stroke-width:0.36866823" + transform="scale(1.0007154,0.99928515)">Lock</text> + </g> + </g> + <rect + inkscape:label="Field" + ry="3.8152773" + rx="3.8152773" + y="15.771065" + x="64.024956" + height="30.150299" + width="361.89996" + id="rect4665" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#fffff5;fill-opacity:1;fill-rule:nonzero;stroke:#202326;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <text + inkscape:label="Value" + id="text4669" + y="38.296417" + x="72.50132" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.0763855px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.47690967px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="text-align:start;text-anchor:start;stroke-width:0.47690967px" + y="38.296417" + x="72.50132" + id="tspan4667" + sodipodi:role="line">text</tspan></text> + <g + inkscape:label="Shift" + id="g4691"> + <g + inkscape:label="inactive" + id="g4679"> + <path + sodipodi:nodetypes="sssssssss" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path4671" + d="m 379.96247,185.46181 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 42.96244 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z" + inkscape:connector-curvature="0" /> + <text + transform="scale(1.0007154,0.99928513)" + x="392.55679" + y="177.90059" + id="text4673" + style="font-weight:normal;font-size:8.92098808px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">Shift</text> + <path + inkscape:connector-curvature="0" + d="m 67.025031,185.46181 c -1,0 -3,-1 -3,-3 v -17 c 0,-1 2,-3 3,-3 H 104 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 z" + id="path4675" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + sodipodi:nodetypes="sssssssss" /> + <text + transform="scale(1.0007154,0.99928513)" + style="font-weight:normal;font-size:8.92098808px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826" + id="text4677" + y="177.90059" + x="75.85218">Shift</text> + </g> + <g + inkscape:label="active" + id="g4689"> + <path + inkscape:connector-curvature="0" + d="m 379.96247,185.46181 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 42.96244 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z" + id="path4681" + style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + sodipodi:nodetypes="sssssssss" /> + <text + style="font-weight:normal;font-size:8.92098808px;font-family:Arial;fill:#ffffff;stroke-width:0.36866826" + id="text4683" + y="177.90059" + x="392.55679" + transform="scale(1.0007154,0.99928513)">Shift</text> + <path + sodipodi:nodetypes="sssssssss" + style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path4685" + d="m 67.025031,185.46181 c -1,0 -3,-1 -3,-3 v -17 c 0,-1 2,-3 3,-3 H 104 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 z" + inkscape:connector-curvature="0" /> + <text + x="75.85218" + y="177.90059" + id="text4687" + style="font-weight:normal;font-size:8.92098808px;font-family:Arial;fill:#ffffff;fill-rule:evenodd;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928513)">Shift</text> + </g> + </g> + <text + inkscape:label="Info" + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.31375408px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.30784383px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="252.9579" + y="12.333657" + id="text4695" + transform="scale(0.96824588,1.0327955)"><tspan + sodipodi:role="line" + id="tspan4693" + x="252.9579" + y="12.333657" + style="stroke-width:0.30784383px">information</tspan></text> + </g> + </pattern> + <pattern + patternUnits="userSpaceOnUse" + width="1280" + height="720" + patternTransform="translate(4.5843587e-5,2340)" + id="pattern33040"> + <g + transform="matrix(3.3549332,0,0,3.14525,-181.87462,-3.9802)" + style="fill-rule:evenodd;stroke-width:0.47631353" + id="use33038" + inkscape:label="HMI:Keypad:HMI_INT:HMI_REAL"> + <path + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.6;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.16776976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="M 54.211099,1.2654702 H 435.73881 V 230.18209 H 54.211099 Z" + id="path4699" + inkscape:connector-curvature="0" + inkscape:label="Background" + sodipodi:nodetypes="ccccc" /> + <rect + inkscape:label="Field" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#fffff5;fill-opacity:1;fill-rule:nonzero;stroke:#202326;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect4701" + width="361.89996" + height="30.150299" + x="64.024963" + y="15.77106" + rx="3.8152773" + ry="3.8152773" /> + <text + inkscape:label="Value" + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.0763855px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.47690967px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="72.50132" + y="37.408375" + id="text4705"><tspan + sodipodi:role="line" + id="tspan4703" + x="72.50132" + y="37.408375" + style="text-align:start;text-anchor:start;stroke-width:0.47690967px">number</tspan></text> + <g + transform="matrix(1.6700128,0,0,1.6700128,-826.83854,-145.60855)" + id="g4711" + inkscape:label="Enter" + style="fill-rule:evenodd;stroke-width:0.13585199"> + <path + inkscape:connector-curvature="0" + d="m 750,175 c 0,-2 -1,-3 -3,-3 h -20 c -1,0 -3,1 -3,3 v 43 c 0,1 2,2 3,2 h 20 c 2,0 3,-1 3,-2 z" + id="path4707" + style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.10074362;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <path + inkscape:connector-curvature="0" + id="path4709" + transform="matrix(0.28557246,0,0,0.28557246,1098.7155,-140.51013)" + d="m -1244.2949,1166.5938 v 15.791 h -38.6875 v -2.9981 l -6.9199,4 6.9199,4 v -2.998 h 40.6836 v -17.7949 z" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + </g> + <g + transform="matrix(1.6700128,0,0,1.6700128,-826.83854,-145.60855)" + id="g4773" + inkscape:label="Keys" + style="fill-rule:evenodd;stroke-width:0.13585199"> + <g + id="g4717" + inkscape:label="7" + style="stroke-width:0.13585199"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path4713" + d="m 638,120 h 20 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z" + inkscape:connector-curvature="0" /> + <text + transform="scale(1.0007154,0.99928514)" + x="636.4165" + y="129.38269" + id="text4715" + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989">7</text> + </g> + <g + id="g4723" + inkscape:label="4" + style="stroke-width:0.13585199"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path4719" + d="m 638,146 h 20 c 2,0 3,1 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + inkscape:connector-curvature="0" /> + <text + transform="scale(1.0007154,0.99928514)" + x="636.4165" + y="154.10822" + id="text4721" + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989">4</text> + </g> + <g + id="g4729" + inkscape:label="1" + style="stroke-width:0.13585199"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path4725" + d="m 638,172 h 20 c 2,0 3,1 3,3 v 17 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -17 c 0,-2 2,-3 3,-3 z" + inkscape:connector-curvature="0" /> + <text + transform="scale(1.0007154,0.99928514)" + x="636.4165" + y="179.82285" + id="text4727" + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989">1</text> + </g> + <g + id="g4735" + inkscape:label="8" + style="stroke-width:0.13585199"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path4731" + d="m 668,120 h 19 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -19 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z" + inkscape:connector-curvature="0" /> + <text + transform="scale(1.0007154,0.99928514)" + x="667.07562" + y="129.38269" + id="text4733" + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989">8</text> + </g> + <g + id="g4741" + inkscape:label="5" + style="stroke-width:0.13585199"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path4737" + d="m 668,146 h 19 c 2,0 3,1 3,3 v 18 c 0,2 -1,3 -3,3 h -19 c -1,0 -3,-1 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + inkscape:connector-curvature="0" /> + <text + transform="scale(1.0007154,0.99928514)" + x="667.07562" + y="154.10822" + id="text4739" + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989">5</text> + </g> + <g + id="g4747" + inkscape:label="2" + style="stroke-width:0.13585199"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path4743" + d="m 668,172 h 19 c 2,0 3,1 3,3 v 17 c 0,1 -1,3 -3,3 h -19 c -1,0 -3,-2 -3,-3 v -17 c 0,-2 2,-3 3,-3 z" + inkscape:connector-curvature="0" /> + <text + transform="scale(1.0007154,0.99928514)" + x="667.07562" + y="179.82285" + id="text4745" + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989">2</text> + </g> + <g + id="g4753" + inkscape:label="9" + style="stroke-width:0.13585199"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path4749" + d="m 697,120 h 20 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z" + inkscape:connector-curvature="0" /> + <text + transform="scale(1.0007154,0.99928514)" + x="695.75708" + y="129.38269" + id="text4751" + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989">9</text> + </g> + <g + id="g4759" + inkscape:label="6" + style="stroke-width:0.13585199"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path4755" + d="m 697,146 h 20 c 2,0 3,1 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + inkscape:connector-curvature="0" /> + <text + transform="scale(1.0007154,0.99928514)" + x="695.75708" + y="154.10822" + id="text4757" + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989">6</text> + </g> + <g + id="g4765" + inkscape:label="3" + style="stroke-width:0.13585199"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path4761" + d="m 697,172 h 20 c 2,0 3,1 3,3 v 17 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -17 c 0,-2 2,-3 3,-3 z" + inkscape:connector-curvature="0" /> + <text + transform="scale(1.0007154,0.99928514)" + x="695.75708" + y="179.82285" + id="text4763" + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989">3</text> + </g> + <g + id="g4771" + inkscape:label="0" + style="stroke-width:0.13585199"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path4767" + d="m 638,220 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 h 49 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 z" + inkscape:connector-curvature="0" /> + <text + transform="scale(1.0007154,0.99928514)" + x="636.4165" + y="205.53712" + id="text4769" + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989">0</text> + </g> + </g> + <g + transform="translate(-318.22576)" + inkscape:label="Esc" + id="g4779"> + <path + inkscape:connector-curvature="0" + d="m 387.26079,54.792986 h 33.40019 c 3.34,0 5.01006,3.34003 5.01006,5.010045 v 30.060225 c 0,3.340029 -1.67006,5.010032 -5.01006,5.010032 h -33.40019 c -1.67006,0 -5.01007,-1.670003 -5.01007,-5.010032 V 59.803031 c 0,-1.670015 3.34001,-5.010045 5.01007,-5.010045 z" + id="path4775" + style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + transform="scale(1.0007154,0.99928511)" + style="font-weight:normal;font-size:10.63882256px;font-family:Arial;fill:#ffffff;fill-rule:evenodd;stroke-width:0.36866826" + id="text4777" + y="78.632088" + x="394.42801">Esc</text> + </g> + <g + transform="translate(0,-43.420332)" + inkscape:label="BackSpace" + id="g4785"> + <path + inkscape:connector-curvature="0" + d="m 387.26079,98.213318 h 33.40019 c 3.34,0 5.01006,1.670013 5.01006,5.010032 v 30.06024 c 0,3.34002 -1.67006,5.01003 -5.01006,5.01003 h -33.40019 c -1.67006,0 -5.01007,-1.67001 -5.01007,-5.01003 v -30.06024 c 0,-3.340019 3.34001,-5.010032 5.01007,-5.010032 z" + id="path4781" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <path + inkscape:connector-curvature="0" + id="path4783" + transform="matrix(0.47690966,0,0,0.47690966,1008.0304,-380.26227)" + d="m -1278.9668,1041.3047 -6.9199,4 6.9199,4 v -3 h 33.416 v -1.9981 h -33.416 z" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#2b2828;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + </g> + <g + transform="matrix(1.6700128,0,0,1.6700128,-678.20742,-102.18822)" + style="fill-rule:evenodd;stroke-width:0.13585199" + inkscape:label="Sign" + id="g4791"> + <path + inkscape:connector-curvature="0" + d="m 638,120 h 20 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z" + id="path4787" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + transform="scale(1.0007154,0.99928514)" + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text4789" + y="135.09822" + x="642.1239">+/-</text> + </g> + <text + inkscape:label="Info" + transform="scale(0.96824589,1.0327955)" + id="text4795" + y="12.333653" + x="252.9579" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.31375408px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.30784383px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:0.30784383px" + y="12.333653" + x="252.9579" + id="tspan4793" + sodipodi:role="line">information</tspan></text> + <g + inkscape:label="NumDot" + id="g4801" + style="fill-rule:evenodd;stroke-width:0.13585199" + transform="matrix(1.6700128,0,0,1.6700128,-826.83854,-145.60856)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path4797" + d="m 697,197 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z" + inkscape:connector-curvature="0" /> + <text + transform="scale(1.0007154,0.99928514)" + x="696.7464" + y="204.54802" + id="text4799" + style="font-weight:normal;font-size:6.96602964px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989">.</text> + </g> + </g> + </pattern> + <marker + style="overflow:visible" + id="marker33393-6" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Lend" + inkscape:isstock="true"> + <path + inkscape:connector-curvature="0" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + style="fill:#4d4d4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.00000003pt;stroke-opacity:1" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + id="path33391-4" /> + </marker> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient48067" + id="radialGradient48061-9" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.02836882,4.436331,-1.9717971,0.01260898,731.53273,-19692.285)" + cx="4437.6318" + cy="434.84348" + fx="4437.6318" + fy="434.84348" + r="35.250397" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:document-units="px" + inkscape:current-layer="hmi0" + showgrid="false" + units="px" + inkscape:zoom="0.70710678" + inkscape:cx="535.49777" + inkscape:cy="380.79328" + inkscape:window-width="1600" + inkscape:window-height="836" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:snap-global="true" + inkscape:snap-bbox="true" + inkscape:bbox-nodes="true"> + <sodipodi:guide + position="1265,637" + orientation="1,0" + id="guide424" + inkscape:locked="false" /> + </sodipodi:namedview> + <rect + style="color:#000000;fill:#ffffff" + id="page0" + width="1280" + height="720" + x="0" + y="0" + inkscape:label="HMI:Page:Home" /> + <g + id="g5275" + inkscape:label="HMI:Display@/TARGETPRESSURE"> + <text + inkscape:label="_format" + id="text5271" + y="430.74841" + x="440.99014" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + y="430.74841" + x="440.99014" + id="tspan5269" + sodipodi:role="line">This is an integer value : %d</tspan></text> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="373.99341" + y="160.46414" + id="text5267" + inkscape:label="_someothertext"><tspan + sodipodi:role="line" + id="tspan5265" + x="373.99341" + y="160.46414">Some "other" ČĆÄÅ¡ english text</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="725.49988" + y="141.49683" + id="text5279" + inkscape:label="HMI:Display@/SELECTION"><tspan + sodipodi:role="line" + id="tspan5277" + x="725.49988" + y="141.49683">8888</tspan></text> + <text + inkscape:label="_sometext" + id="text5283" + y="240.46414" + x="293.99341" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + y="240.46414" + x="293.99341" + id="tspan5281" + sodipodi:role="line">Some english text</tspan><tspan + y="290.46414" + x="293.99341" + sodipodi:role="line" + id="tspan1894">another line</tspan><tspan + y="340.46414" + x="293.99341" + sodipodi:role="line" + id="tspan1896">a third one</tspan></text> + <g + id="g1913" + inkscape:label="HMI:Input@/TARGETPRESSURE"> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect4827" + width="165.96402" + height="78.240181" + x="203.89867" + y="501.87585" + rx="7" + ry="7" + inkscape:label="edit" /> + <text + id="text405" + y="551.66504" + x="275.02609" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + inkscape:label="value"><tspan + y="551.66504" + x="275.02609" + id="tspan403" + sodipodi:role="line">1234</tspan></text> + <g + id="g1905" + inkscape:label="+1" + transform="translate(391.20092,80.611099)"> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect407" + width="99.578415" + height="88.909302" + x="392.38638" + y="513.73041" + rx="7" + ry="7" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="425.65189" + y="566.1087" + id="text1558"><tspan + sodipodi:role="line" + id="tspan1556" + x="425.65189" + y="566.1087">+1</tspan></text> + </g> + <use + x="0" + y="0" + xlink:href="#text5283" + id="use411" + transform="translate(281.09259,279.27093)" + width="100%" + height="100%" /> + </g> + <g + id="g14237" + inkscape:label="HMI:DropDown:#langs@lang" + transform="matrix(0.81491208,0,0,0.81491208,92.392121,-676.64521)" + style="stroke-width:0.35083869"> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#53676c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.75419343;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect14212" + width="574.92957" + height="84.312515" + x="864.00842" + y="946.07819" + rx="2.4558709" + ry="2.4558709" + inkscape:label="box" /> + <rect + inkscape:label="highlight" + ry="2.4558709" + rx="2.4558709" + y="968.2616" + x="864.00842" + height="39.945667" + width="574.92957" + id="rect5497" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.75419331;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <text + id="text14183" + y="998.13739" + x="890.70056" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:35.95956421px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#d42aff;fill-opacity:1;stroke:none;stroke-width:0.35083869px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + inkscape:label="text"><tspan + style="text-align:start;text-anchor:start;fill:#d42aff;stroke-width:0.35083869px" + y="998.13739" + x="890.70056" + sodipodi:role="line" + id="tspan421">Language (Country)</tspan></text> + <path + sodipodi:type="star" + style="opacity:1;vector-effect:none;fill:#a7a5a6;fill-opacity:1;stroke:none;stroke-width:0.12376806;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path424" + sodipodi:sides="3" + sodipodi:cx="1387.0236" + sodipodi:cy="977.31356" + sodipodi:r1="43.683521" + sodipodi:r2="21.841761" + sodipodi:arg1="1.5707963" + sodipodi:arg2="2.6179939" + inkscape:flatsided="false" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 1387.0236,1020.9971 -18.9156,-32.76268 -18.9155,-32.76264 37.8311,0 37.831,0 -18.9155,32.76264 z" + inkscape:transform-center-y="10.92088" + inkscape:label="button" /> + </g> + <g + inkscape:label="HMI:Display@/TARGETPRESSURE" + id="g436" + transform="translate(381.33428,-264.45794)"> + <text + inkscape:label="_format" + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="375.02609" + y="571.66504" + id="text424"><tspan + sodipodi:role="line" + x="375.02609" + y="571.66504" + id="tspan438">height is %d meters</tspan></text> + </g> +</svg> diff -r 2b00f90c6888 -r d5b2369a103f tests/svghmi_real/beremiz.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/svghmi_real/beremiz.xml Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,5 @@ +<?xml version='1.0' encoding='utf-8'?> +<BeremizRoot xmlns:xsd="http://www.w3.org/2001/XMLSchema" URI_location="PYRO://127.0.0.1:61284"> + <TargetType/> + <Libraries Enable_SVGHMI_Library="true"/> +</BeremizRoot> diff -r 2b00f90c6888 -r d5b2369a103f tests/svghmi_real/plc.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/svghmi_real/plc.xml Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,97 @@ +<?xml version='1.0' encoding='utf-8'?> +<project xmlns:ns1="http://www.plcopen.org/xml/tc6_0201" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.plcopen.org/xml/tc6_0201"> + <fileHeader companyName="Unknown" productName="Unnamed" productVersion="1" creationDateTime="2019-08-06T14:23:42"/> + <contentHeader name="Unnamed" modificationDateTime="2021-02-16T10:38:12"> + <coordinateInfo> + <fbd> + <scaling x="5" y="5"/> + </fbd> + <ld> + <scaling x="0" y="0"/> + </ld> + <sfc> + <scaling x="0" y="0"/> + </sfc> + </coordinateInfo> + </contentHeader> + <types> + <dataTypes/> + <pous> + <pou name="MainStuff" pouType="program"> + <interface> + <localVars> + <variable name="var0"> + <type> + <derived name="HMI_REAL"/> + </type> + </variable> + <variable name="var1"> + <type> + <derived name="HMI_INT"/> + </type> + </variable> + </localVars> + </interface> + <body> + <FBD> + <inVariable localId="5" executionOrderId="0" height="30" width="125" negated="false"> + <position x="240" y="45"/> + <connectionPointOut> + <relPosition x="125" y="15"/> + </connectionPointOut> + <expression>var0</expression> + </inVariable> + <outVariable localId="10" executionOrderId="0" height="25" width="85" negated="false"> + <position x="720" y="70"/> + <connectionPointIn> + <relPosition x="0" y="10"/> + <connection refLocalId="11" formalParameter="OUT"> + <position x="720" y="80"/> + <position x="667" y="80"/> + <position x="667" y="75"/> + <position x="605" y="75"/> + </connection> + </connectionPointIn> + <expression>var1</expression> + </outVariable> + <block localId="11" typeName="REAL_TO_INT" executionOrderId="0" height="40" width="100"> + <position x="505" y="45"/> + <inputVariables> + <variable formalParameter="IN"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="5"> + <position x="505" y="75"/> + <position x="445" y="75"/> + <position x="445" y="60"/> + <position x="365" y="60"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables> + <variable formalParameter="OUT"> + <connectionPointOut> + <relPosition x="100" y="30"/> + </connectionPointOut> + </variable> + </outputVariables> + </block> + </FBD> + </body> + </pou> + </pous> + </types> + <instances> + <configurations> + <configuration name="config"> + <resource name="resource1"> + <task name="task0" priority="0" interval="T#20ms"> + <pouInstance name="instance0" typeName="MainStuff"/> + </task> + </resource> + </configuration> + </configurations> + </instances> +</project> diff -r 2b00f90c6888 -r d5b2369a103f tests/svghmi_real/svghmi_0@svghmi/baseconfnode.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/svghmi_real/svghmi_0@svghmi/baseconfnode.xml Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,2 @@ +<?xml version='1.0' encoding='utf-8'?> +<BaseParams xmlns:xsd="http://www.w3.org/2001/XMLSchema" IEC_Channel="0" Name="svghmi_0"/> diff -r 2b00f90c6888 -r d5b2369a103f tests/svghmi_real/svghmi_0@svghmi/confnode.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/svghmi_real/svghmi_0@svghmi/confnode.xml Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,2 @@ +<?xml version='1.0' encoding='utf-8'?> +<SVGHMI xmlns:xsd="http://www.w3.org/2001/XMLSchema" OnWatchdog="echo Watchdog for {name} !" OnStart="chromium http://127.0.0.1:{port}/{name}" OnStop="echo Closing {name}" WatchdogInitial="10" WatchdogInterval="5"/> diff -r 2b00f90c6888 -r d5b2369a103f tests/svghmi_real/svghmi_0@svghmi/svghmi.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/svghmi_real/svghmi_0@svghmi/svghmi.svg Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,647 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:osb="http://www.openswatchbook.org/uri/2009/osb" + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)" + sodipodi:docname="svghmi.svg" + id="hmi0" + version="1.1" + viewBox="0 0 1280 720" + height="720" + width="1280"> + <metadata + id="metadata4542"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title /> + </cc:Work> + </rdf:RDF> + </metadata> + <defs + id="defs2"> + <linearGradient + id="linearGradient34303" + osb:paint="solid"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop34301" /> + </linearGradient> + <linearGradient + id="linearGradient20537" + osb:paint="solid"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop20535" /> + </linearGradient> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:document-units="px" + inkscape:current-layer="hmi0" + showgrid="false" + units="px" + inkscape:zoom="0.64" + inkscape:cx="106.50649" + inkscape:cy="372.66049" + inkscape:window-width="1600" + inkscape:window-height="836" + inkscape:window-x="1600" + inkscape:window-y="27" + inkscape:window-maximized="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:snap-global="true" + inkscape:snap-bbox="true" + inkscape:bbox-nodes="true" /> + <g + inkscape:label="HMI:Keypad:HMI_INT:HMI_REAL" + id="g2432" + style="fill-rule:evenodd;stroke-width:0.47631353" + transform="matrix(3.3549332,0,0,3.14525,-181.87457,2336.0198)"> + <path + sodipodi:nodetypes="ccccc" + inkscape:label="Background" + inkscape:connector-curvature="0" + id="path2136" + d="M 54.211099,1.2654702 H 435.73881 V 230.18209 H 54.211099 Z" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.6;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.16776976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <rect + ry="3.8152773" + rx="3.8152773" + y="15.77106" + x="64.024963" + height="30.150299" + width="361.89996" + id="rect2426" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#fffff5;fill-opacity:1;fill-rule:nonzero;stroke:#202326;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + inkscape:label="Field" /> + <text + id="text2430" + y="37.408375" + x="72.50132" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.0763855px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.47690967px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + inkscape:label="Value"><tspan + style="text-align:start;text-anchor:start;stroke-width:0.47690967px" + y="37.408375" + x="72.50132" + id="tspan2428" + sodipodi:role="line">number</tspan></text> + <g + style="fill-rule:evenodd;stroke-width:0.13585199" + inkscape:label="Enter" + id="g4947" + transform="matrix(1.6700128,0,0,1.6700128,-826.83854,-145.60855)"> + <path + style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.10074362;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path193" + d="m 750,175 c 0,-2 -1,-3 -3,-3 h -20 c -1,0 -3,1 -3,3 v 43 c 0,1 2,2 3,2 h 20 c 2,0 3,-1 3,-2 z" + inkscape:connector-curvature="0" /> + <path + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="m -1244.2949,1166.5938 v 15.791 h -38.6875 v -2.9981 l -6.9199,4 6.9199,4 v -2.998 h 40.6836 v -17.7949 z" + transform="matrix(0.28557246,0,0,0.28557246,1098.7155,-140.51013)" + id="path6545-4" + inkscape:connector-curvature="0" /> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.13585199" + inkscape:label="Keys" + id="g4993" + transform="matrix(1.6700128,0,0,1.6700128,-826.83854,-145.60855)"> + <g + style="stroke-width:0.13585199" + inkscape:label="7" + id="g4892"> + <path + inkscape:connector-curvature="0" + d="m 638,120 h 20 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z" + id="path163" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text331" + y="129.38269" + x="636.4165" + transform="scale(1.0007154,0.99928514)">7</text> + </g> + <g + style="stroke-width:0.13585199" + inkscape:label="4" + id="g4907"> + <path + inkscape:connector-curvature="0" + d="m 638,146 h 20 c 2,0 3,1 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + id="path169" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text335" + y="154.10822" + x="636.4165" + transform="scale(1.0007154,0.99928514)">4</text> + </g> + <g + style="stroke-width:0.13585199" + inkscape:label="1" + id="g4922"> + <path + inkscape:connector-curvature="0" + d="m 638,172 h 20 c 2,0 3,1 3,3 v 17 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -17 c 0,-2 2,-3 3,-3 z" + id="path175" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text339" + y="179.82285" + x="636.4165" + transform="scale(1.0007154,0.99928514)">1</text> + </g> + <g + style="stroke-width:0.13585199" + inkscape:label="8" + id="g4897"> + <path + inkscape:connector-curvature="0" + d="m 668,120 h 19 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -19 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z" + id="path165" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text347" + y="129.38269" + x="667.07562" + transform="scale(1.0007154,0.99928514)">8</text> + </g> + <g + style="stroke-width:0.13585199" + inkscape:label="5" + id="g4912"> + <path + inkscape:connector-curvature="0" + d="m 668,146 h 19 c 2,0 3,1 3,3 v 18 c 0,2 -1,3 -3,3 h -19 c -1,0 -3,-1 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + id="path171" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text351" + y="154.10822" + x="667.07562" + transform="scale(1.0007154,0.99928514)">5</text> + </g> + <g + style="stroke-width:0.13585199" + inkscape:label="2" + id="g4927"> + <path + inkscape:connector-curvature="0" + d="m 668,172 h 19 c 2,0 3,1 3,3 v 17 c 0,1 -1,3 -3,3 h -19 c -1,0 -3,-2 -3,-3 v -17 c 0,-2 2,-3 3,-3 z" + id="path177" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text355" + y="179.82285" + x="667.07562" + transform="scale(1.0007154,0.99928514)">2</text> + </g> + <g + style="stroke-width:0.13585199" + inkscape:label="9" + id="g4902"> + <path + inkscape:connector-curvature="0" + d="m 697,120 h 20 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z" + id="path167" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text363" + y="129.38269" + x="695.75708" + transform="scale(1.0007154,0.99928514)">9</text> + </g> + <g + style="stroke-width:0.13585199" + inkscape:label="6" + id="g4917"> + <path + inkscape:connector-curvature="0" + d="m 697,146 h 20 c 2,0 3,1 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + id="path173" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text367" + y="154.10822" + x="695.75708" + transform="scale(1.0007154,0.99928514)">6</text> + </g> + <g + style="stroke-width:0.13585199" + inkscape:label="3" + id="g4932"> + <path + inkscape:connector-curvature="0" + d="m 697,172 h 20 c 2,0 3,1 3,3 v 17 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -17 c 0,-2 2,-3 3,-3 z" + id="path179" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text371" + y="179.82285" + x="695.75708" + transform="scale(1.0007154,0.99928514)">3</text> + </g> + <g + style="stroke-width:0.13585199" + inkscape:label="0" + id="g4937"> + <path + inkscape:connector-curvature="0" + d="m 638,220 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 h 49 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 z" + id="path373" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text377" + y="205.53712" + x="636.4165" + transform="scale(1.0007154,0.99928514)">0</text> + </g> + </g> + <g + id="g3113" + inkscape:label="Esc" + transform="translate(-318.22576)"> + <path + style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path167-3" + d="m 387.26079,54.792986 h 33.40019 c 3.34,0 5.01006,3.34003 5.01006,5.010045 v 30.060225 c 0,3.340029 -1.67006,5.010032 -5.01006,5.010032 h -33.40019 c -1.67006,0 -5.01007,-1.670003 -5.01007,-5.010032 V 59.803031 c 0,-1.670015 3.34001,-5.010045 5.01007,-5.010045 z" + inkscape:connector-curvature="0" /> + <text + x="394.42801" + y="78.632088" + id="text469-4" + style="font-weight:normal;font-size:10.63882256px;font-family:Arial;fill:#ffffff;fill-rule:evenodd;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928511)">Esc</text> + </g> + <g + id="g3109" + inkscape:label="BackSpace" + transform="translate(0,-43.420332)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path173-1" + d="m 387.26079,98.213318 h 33.40019 c 3.34,0 5.01006,1.670013 5.01006,5.010032 v 30.06024 c 0,3.34002 -1.67006,5.01003 -5.01006,5.01003 h -33.40019 c -1.67006,0 -5.01007,-1.67001 -5.01007,-5.01003 v -30.06024 c 0,-3.340019 3.34001,-5.010032 5.01007,-5.010032 z" + inkscape:connector-curvature="0" /> + <path + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#2b2828;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="m -1278.9668,1041.3047 -6.9199,4 6.9199,4 v -3 h 33.416 v -1.9981 h -33.416 z" + transform="matrix(0.47690966,0,0,0.47690966,1008.0304,-380.26227)" + id="path11623-1-0-2" + inkscape:connector-curvature="0" /> + </g> + <g + id="g787" + inkscape:label="Sign" + style="fill-rule:evenodd;stroke-width:0.13585199" + transform="matrix(1.6700128,0,0,1.6700128,-678.20742,-102.18822)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path781" + d="m 638,120 h 20 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z" + inkscape:connector-curvature="0" /> + <text + x="642.1239" + y="135.09822" + id="text783" + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + transform="scale(1.0007154,0.99928514)">+/-</text> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.31375408px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.30784383px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="252.9579" + y="12.333653" + id="text509" + transform="scale(0.96824589,1.0327955)" + inkscape:label="Info"><tspan + sodipodi:role="line" + id="tspan507" + x="252.9579" + y="12.333653" + style="stroke-width:0.30784383px">information</tspan></text> + <g + transform="matrix(1.6700128,0,0,1.6700128,-826.83854,-145.60856)" + style="fill-rule:evenodd;stroke-width:0.13585199" + id="g4942" + inkscape:label="NumDot"> + <path + inkscape:connector-curvature="0" + d="m 697,197 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z" + id="path181" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:6.96602964px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text771" + y="204.54802" + x="696.7464" + transform="scale(1.0007154,0.99928514)">.</text> + </g> + </g> + <rect + style="color:#000000;fill:#ffffff" + id="page0" + width="1280" + height="720" + x="0" + y="0" + inkscape:label="HMI:Page:Home" + sodipodi:insensitive="true" /> + <g + id="g4490" + inkscape:label="HMI:Input:%.4f@/VAR0" + transform="translate(220,-220)"> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect4452" + width="165.96402" + height="78.240181" + x="207.3945" + y="501.87585" + rx="7" + ry="7" + inkscape:label="edit" /> + <text + id="text4456" + y="551.66504" + x="289.30231" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + inkscape:label="value"><tspan + y="551.66504" + x="289.30231" + id="tspan4454" + sodipodi:role="line">1234</tspan></text> + <g + id="g4464" + inkscape:label="-1" + transform="translate(-414.79908,-17.189114)"> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect4458" + width="99.578415" + height="88.909302" + x="392.38638" + y="513.73041" + rx="7" + ry="7" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="441.65189" + y="566.1087" + id="text4462"><tspan + sodipodi:role="line" + id="tspan4460" + x="441.65189" + y="566.1087">-1</tspan></text> + </g> + <g + transform="translate(-534.79908,-17.189114)" + inkscape:label="-10" + id="g4472"> + <rect + ry="7" + rx="7" + y="513.73041" + x="392.38638" + height="88.909302" + width="99.578415" + id="rect4466" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <text + id="text4470" + y="566.1087" + x="441.65189" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + y="566.1087" + x="441.65189" + id="tspan4468" + sodipodi:role="line">-10</tspan></text> + </g> + <g + transform="translate(111.20092,-17.189114)" + inkscape:label="+1" + id="g4480"> + <rect + ry="7" + rx="7" + y="513.73041" + x="392.38638" + height="88.909302" + width="99.578415" + id="rect4474" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <text + id="text4478" + y="566.1087" + x="441.65189" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + y="566.1087" + x="441.65189" + id="tspan4476" + sodipodi:role="line">+1</tspan></text> + </g> + <g + id="g4488" + inkscape:label="+10" + transform="translate(231.20092,-17.189114)"> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect4482" + width="99.578415" + height="88.909302" + x="392.38638" + y="513.73041" + rx="7" + ry="7" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="441.65189" + y="566.1087" + id="text4486"><tspan + sodipodi:role="line" + id="tspan4484" + x="441.65189" + y="566.1087">+10</tspan></text> + </g> + <g + id="g154" + inkscape:label="+0.1" + transform="translate(-8.7991028,-17.189114)"> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect148" + width="99.578415" + height="88.909302" + x="392.38638" + y="513.73041" + rx="7" + ry="7" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="441.65189" + y="566.1087" + id="text152"><tspan + sodipodi:role="line" + id="tspan150" + x="441.65189" + y="566.1087">+.1</tspan></text> + </g> + <g + transform="translate(-294.79907,-17.189114)" + inkscape:label="-0.1" + id="g162"> + <rect + ry="7" + rx="7" + y="513.73041" + x="392.38638" + height="88.909302" + width="99.578415" + id="rect156" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <text + id="text160" + y="566.1087" + x="441.65189" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + y="566.1087" + x="441.65189" + id="tspan158" + sodipodi:role="line">-.1</tspan></text> + </g> + </g> + <g + id="g170" + inkscape:label="HMI:Display@/VAR0" + transform="translate(-400)"> + <text + id="text166" + y="96.5625" + x="595.3125" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + inkscape:label="format"><tspan + y="96.5625" + x="595.3125" + id="tspan164" + sodipodi:role="line">%.2f</tspan></text> + </g> + <g + inkscape:label="HMI:Display@/VAR1" + id="g3879" + transform="translate(-400,80)"> + <text + inkscape:label="format" + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="595.3125" + y="96.5625" + id="text3877"><tspan + sodipodi:role="line" + id="tspan3875" + x="595.3125" + y="96.5625">%d</tspan></text> + </g> + <g + inkscape:label="HMI:Display@/VAR0" + id="g3885" + transform="translate(-140)"> + <text + inkscape:label="format" + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="595.3125" + y="96.5625" + id="text3883"><tspan + sodipodi:role="line" + id="tspan3881" + x="595.3125" + y="96.5625">temp: %.2f℃</tspan></text> + </g> + <g + transform="translate(220)" + id="g3895" + inkscape:label="HMI:Display@/VAR0"> + <text + id="text3893" + y="96.5625" + x="595.3125" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + inkscape:label="format"><tspan + y="96.5625" + x="595.3125" + id="tspan3891" + sodipodi:role="line">ratio: %.2f%%</tspan></text> + </g> + <g + transform="translate(-220,80)" + id="g3901" + inkscape:label="HMI:Display@/VAR1"> + <text + id="text3899" + y="96.5625" + x="655.3125" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + inkscape:label="format"><tspan + y="96.5625" + x="655.3125" + id="tspan3897" + sodipodi:role="line">padded: %'04d</tspan></text> + </g> + <g + transform="translate(-140,440)" + id="g3907" + inkscape:label="HMI:Display@/VAR1@/VAR0"> + <text + id="text3905" + y="96.5625" + x="595.3125" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + inkscape:label="format"><tspan + y="96.5625" + x="595.3125" + id="tspan3903" + sodipodi:role="line">this way, %d and %.3f are together</tspan></text> + </g> +</svg> diff -r 2b00f90c6888 -r d5b2369a103f tests/svghmi_scrollbar/beremiz.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/svghmi_scrollbar/beremiz.xml Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,5 @@ +<?xml version='1.0' encoding='utf-8'?> +<BeremizRoot xmlns:xsd="http://www.w3.org/2001/XMLSchema" URI_location="PYRO://127.0.0.1:61284"> + <TargetType/> + <Libraries Enable_SVGHMI_Library="true"/> +</BeremizRoot> diff -r 2b00f90c6888 -r d5b2369a103f tests/svghmi_scrollbar/plc.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/svghmi_scrollbar/plc.xml Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,73 @@ +<?xml version='1.0' encoding='utf-8'?> +<project xmlns:ns1="http://www.plcopen.org/xml/tc6_0201" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.plcopen.org/xml/tc6_0201"> + <fileHeader companyName="Unknown" productName="Unnamed" productVersion="1" creationDateTime="2019-08-06T14:23:42"/> + <contentHeader name="Unnamed" modificationDateTime="2021-02-12T19:29:13"> + <coordinateInfo> + <fbd> + <scaling x="5" y="5"/> + </fbd> + <ld> + <scaling x="0" y="0"/> + </ld> + <sfc> + <scaling x="0" y="0"/> + </sfc> + </coordinateInfo> + </contentHeader> + <types> + <dataTypes/> + <pous> + <pou name="MainStuff" pouType="program"> + <interface> + <localVars> + <variable name="var0"> + <type> + <derived name="HMI_INT"/> + </type> + </variable> + <variable name="var1"> + <type> + <derived name="HMI_INT"/> + </type> + </variable> + </localVars> + </interface> + <body> + <FBD> + <inVariable localId="5" executionOrderId="0" height="30" width="125" negated="false"> + <position x="445" y="65"/> + <connectionPointOut> + <relPosition x="125" y="15"/> + </connectionPointOut> + <expression>var0</expression> + </inVariable> + <outVariable localId="10" executionOrderId="0" height="25" width="85" negated="false"> + <position x="710" y="105"/> + <connectionPointIn> + <relPosition x="0" y="10"/> + <connection refLocalId="5"> + <position x="710" y="115"/> + <position x="640" y="115"/> + <position x="640" y="80"/> + <position x="570" y="80"/> + </connection> + </connectionPointIn> + <expression>var1</expression> + </outVariable> + </FBD> + </body> + </pou> + </pous> + </types> + <instances> + <configurations> + <configuration name="config"> + <resource name="resource1"> + <task name="task0" priority="0" interval="T#20ms"> + <pouInstance name="instance0" typeName="MainStuff"/> + </task> + </resource> + </configuration> + </configurations> + </instances> +</project> diff -r 2b00f90c6888 -r d5b2369a103f tests/svghmi_scrollbar/svghmi_0@svghmi/baseconfnode.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/svghmi_scrollbar/svghmi_0@svghmi/baseconfnode.xml Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,2 @@ +<?xml version='1.0' encoding='utf-8'?> +<BaseParams xmlns:xsd="http://www.w3.org/2001/XMLSchema" IEC_Channel="0" Name="svghmi_0"/> diff -r 2b00f90c6888 -r d5b2369a103f tests/svghmi_scrollbar/svghmi_0@svghmi/confnode.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/svghmi_scrollbar/svghmi_0@svghmi/confnode.xml Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,2 @@ +<?xml version='1.0' encoding='utf-8'?> +<SVGHMI xmlns:xsd="http://www.w3.org/2001/XMLSchema" OnWatchdog="echo Watchdog for {name} !" OnStart="chromium http://127.0.0.1:{port}/{name}" OnStop="echo Closing {name}" WatchdogInitial="10" WatchdogInterval="5"/> diff -r 2b00f90c6888 -r d5b2369a103f tests/svghmi_scrollbar/svghmi_0@svghmi/messages.pot --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/svghmi_scrollbar/svghmi_0@svghmi/messages.pot Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,17 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ORGANIZATION +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2021-02-12 21:55+CET\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: SVGHMI 1.0\n" + + diff -r 2b00f90c6888 -r d5b2369a103f tests/svghmi_scrollbar/svghmi_0@svghmi/svghmi.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/svghmi_scrollbar/svghmi_0@svghmi/svghmi.svg Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,891 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:osb="http://www.openswatchbook.org/uri/2009/osb" + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)" + sodipodi:docname="svghmi.svg" + id="hmi0" + version="1.1" + viewBox="0 0 1280 720" + height="720" + width="1280"> + <metadata + id="metadata4542"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title /> + </cc:Work> + </rdf:RDF> + </metadata> + <defs + id="defs2"> + <linearGradient + id="linearGradient34303" + osb:paint="solid"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop34301" /> + </linearGradient> + <linearGradient + id="linearGradient20537" + osb:paint="solid"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop20535" /> + </linearGradient> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:document-units="px" + inkscape:current-layer="hmi0" + showgrid="false" + units="px" + inkscape:zoom="0.64" + inkscape:cx="318.22524" + inkscape:cy="196.09799" + inkscape:window-width="1939" + inkscape:window-height="1243" + inkscape:window-x="3325" + inkscape:window-y="162" + inkscape:window-maximized="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:snap-global="true" + inkscape:snap-bbox="true" + inkscape:bbox-nodes="true" /> + <g + inkscape:label="HMI:Keypad:HMI_INT:HMI_REAL" + id="g2432" + style="fill-rule:evenodd;stroke-width:0.47631353" + transform="matrix(3.3549332,0,0,3.14525,-181.87457,2336.0198)"> + <path + sodipodi:nodetypes="ccccc" + inkscape:label="Background" + inkscape:connector-curvature="0" + id="path2136" + d="M 54.211099,1.2654702 H 435.73881 V 230.18209 H 54.211099 Z" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.6;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.16776976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <rect + ry="3.8152773" + rx="3.8152773" + y="15.77106" + x="64.024963" + height="30.150299" + width="361.89996" + id="rect2426" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#fffff5;fill-opacity:1;fill-rule:nonzero;stroke:#202326;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + inkscape:label="Field" /> + <text + id="text2430" + y="37.408375" + x="72.50132" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.0763855px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.47690967px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + inkscape:label="Value"><tspan + style="text-align:start;text-anchor:start;stroke-width:0.47690967px" + y="37.408375" + x="72.50132" + id="tspan2428" + sodipodi:role="line">number</tspan></text> + <g + style="fill-rule:evenodd;stroke-width:0.13585199" + inkscape:label="Enter" + id="g4947" + transform="matrix(1.6700128,0,0,1.6700128,-826.83854,-145.60855)"> + <path + style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.10074362;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path193" + d="m 750,175 c 0,-2 -1,-3 -3,-3 h -20 c -1,0 -3,1 -3,3 v 43 c 0,1 2,2 3,2 h 20 c 2,0 3,-1 3,-2 z" + inkscape:connector-curvature="0" /> + <path + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="m -1244.2949,1166.5938 v 15.791 h -38.6875 v -2.9981 l -6.9199,4 6.9199,4 v -2.998 h 40.6836 v -17.7949 z" + transform="matrix(0.28557246,0,0,0.28557246,1098.7155,-140.51013)" + id="path6545-4" + inkscape:connector-curvature="0" /> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.13585199" + inkscape:label="Keys" + id="g4993" + transform="matrix(1.6700128,0,0,1.6700128,-826.83854,-145.60855)"> + <g + style="stroke-width:0.13585199" + inkscape:label="7" + id="g4892"> + <path + inkscape:connector-curvature="0" + d="m 638,120 h 20 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z" + id="path163" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text331" + y="129.38269" + x="636.4165" + transform="scale(1.0007154,0.99928514)">7</text> + </g> + <g + style="stroke-width:0.13585199" + inkscape:label="4" + id="g4907"> + <path + inkscape:connector-curvature="0" + d="m 638,146 h 20 c 2,0 3,1 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + id="path169" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text335" + y="154.10822" + x="636.4165" + transform="scale(1.0007154,0.99928514)">4</text> + </g> + <g + style="stroke-width:0.13585199" + inkscape:label="1" + id="g4922"> + <path + inkscape:connector-curvature="0" + d="m 638,172 h 20 c 2,0 3,1 3,3 v 17 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -17 c 0,-2 2,-3 3,-3 z" + id="path175" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text339" + y="179.82285" + x="636.4165" + transform="scale(1.0007154,0.99928514)">1</text> + </g> + <g + style="stroke-width:0.13585199" + inkscape:label="8" + id="g4897"> + <path + inkscape:connector-curvature="0" + d="m 668,120 h 19 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -19 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z" + id="path165" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text347" + y="129.38269" + x="667.07562" + transform="scale(1.0007154,0.99928514)">8</text> + </g> + <g + style="stroke-width:0.13585199" + inkscape:label="5" + id="g4912"> + <path + inkscape:connector-curvature="0" + d="m 668,146 h 19 c 2,0 3,1 3,3 v 18 c 0,2 -1,3 -3,3 h -19 c -1,0 -3,-1 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + id="path171" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text351" + y="154.10822" + x="667.07562" + transform="scale(1.0007154,0.99928514)">5</text> + </g> + <g + style="stroke-width:0.13585199" + inkscape:label="2" + id="g4927"> + <path + inkscape:connector-curvature="0" + d="m 668,172 h 19 c 2,0 3,1 3,3 v 17 c 0,1 -1,3 -3,3 h -19 c -1,0 -3,-2 -3,-3 v -17 c 0,-2 2,-3 3,-3 z" + id="path177" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text355" + y="179.82285" + x="667.07562" + transform="scale(1.0007154,0.99928514)">2</text> + </g> + <g + style="stroke-width:0.13585199" + inkscape:label="9" + id="g4902"> + <path + inkscape:connector-curvature="0" + d="m 697,120 h 20 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z" + id="path167" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text363" + y="129.38269" + x="695.75708" + transform="scale(1.0007154,0.99928514)">9</text> + </g> + <g + style="stroke-width:0.13585199" + inkscape:label="6" + id="g4917"> + <path + inkscape:connector-curvature="0" + d="m 697,146 h 20 c 2,0 3,1 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + id="path173" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text367" + y="154.10822" + x="695.75708" + transform="scale(1.0007154,0.99928514)">6</text> + </g> + <g + style="stroke-width:0.13585199" + inkscape:label="3" + id="g4932"> + <path + inkscape:connector-curvature="0" + d="m 697,172 h 20 c 2,0 3,1 3,3 v 17 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -17 c 0,-2 2,-3 3,-3 z" + id="path179" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text371" + y="179.82285" + x="695.75708" + transform="scale(1.0007154,0.99928514)">3</text> + </g> + <g + style="stroke-width:0.13585199" + inkscape:label="0" + id="g4937"> + <path + inkscape:connector-curvature="0" + d="m 638,220 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 h 49 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 z" + id="path373" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text377" + y="205.53712" + x="636.4165" + transform="scale(1.0007154,0.99928514)">0</text> + </g> + </g> + <g + id="g3113" + inkscape:label="Esc" + transform="translate(-318.22576)"> + <path + style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path167-3" + d="m 387.26079,54.792986 h 33.40019 c 3.34,0 5.01006,3.34003 5.01006,5.010045 v 30.060225 c 0,3.340029 -1.67006,5.010032 -5.01006,5.010032 h -33.40019 c -1.67006,0 -5.01007,-1.670003 -5.01007,-5.010032 V 59.803031 c 0,-1.670015 3.34001,-5.010045 5.01007,-5.010045 z" + inkscape:connector-curvature="0" /> + <text + x="394.42801" + y="78.632088" + id="text469-4" + style="font-weight:normal;font-size:10.63882256px;font-family:Arial;fill:#ffffff;fill-rule:evenodd;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928511)">Esc</text> + </g> + <g + id="g3109" + inkscape:label="BackSpace" + transform="translate(0,-43.420332)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path173-1" + d="m 387.26079,98.213318 h 33.40019 c 3.34,0 5.01006,1.670013 5.01006,5.010032 v 30.06024 c 0,3.34002 -1.67006,5.01003 -5.01006,5.01003 h -33.40019 c -1.67006,0 -5.01007,-1.67001 -5.01007,-5.01003 v -30.06024 c 0,-3.340019 3.34001,-5.010032 5.01007,-5.010032 z" + inkscape:connector-curvature="0" /> + <path + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#2b2828;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="m -1278.9668,1041.3047 -6.9199,4 6.9199,4 v -3 h 33.416 v -1.9981 h -33.416 z" + transform="matrix(0.47690966,0,0,0.47690966,1008.0304,-380.26227)" + id="path11623-1-0-2" + inkscape:connector-curvature="0" /> + </g> + <g + id="g787" + inkscape:label="Sign" + style="fill-rule:evenodd;stroke-width:0.13585199" + transform="matrix(1.6700128,0,0,1.6700128,-678.20742,-102.18822)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path781" + d="m 638,120 h 20 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z" + inkscape:connector-curvature="0" /> + <text + x="642.1239" + y="135.09822" + id="text783" + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + transform="scale(1.0007154,0.99928514)">+/-</text> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.31375408px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.30784383px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="252.9579" + y="12.333653" + id="text509" + transform="scale(0.96824589,1.0327955)" + inkscape:label="Info"><tspan + sodipodi:role="line" + id="tspan507" + x="252.9579" + y="12.333653" + style="stroke-width:0.30784383px">information</tspan></text> + <g + transform="matrix(1.6700128,0,0,1.6700128,-826.83854,-145.60856)" + style="fill-rule:evenodd;stroke-width:0.13585199" + id="g4942" + inkscape:label="NumDot"> + <path + inkscape:connector-curvature="0" + d="m 697,197 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z" + id="path181" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:6.96602964px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text771" + y="204.54802" + x="696.7464" + transform="scale(1.0007154,0.99928514)">.</text> + </g> + </g> + <rect + style="color:#000000;fill:#ffffff" + id="page0" + width="1280" + height="720" + x="0" + y="0" + inkscape:label="HMI:Page:Home" /> + <g + id="g1913" + inkscape:label="HMI:Input@.size" + transform="translate(80,100)"> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect4827" + width="165.96402" + height="78.240181" + x="203.89867" + y="501.87585" + rx="7" + ry="7" + inkscape:label="edit" /> + <text + id="text405" + y="551.66504" + x="275.02609" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + inkscape:label="value"><tspan + y="551.66504" + x="275.02609" + id="tspan403" + sodipodi:role="line">1234</tspan></text> + <g + id="g1905" + inkscape:label="-1" + transform="translate(-314.79908,-17.189114)"> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect407" + width="99.578415" + height="88.909302" + x="392.38638" + y="513.73041" + rx="7" + ry="7" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="441.65189" + y="566.1087" + id="text1558"><tspan + sodipodi:role="line" + id="tspan1556" + x="441.65189" + y="566.1087">-1</tspan></text> + </g> + <g + transform="translate(-434.79908,-17.189114)" + inkscape:label="-10" + id="g4394"> + <rect + ry="7" + rx="7" + y="513.73041" + x="392.38638" + height="88.909302" + width="99.578415" + id="rect4388" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <text + id="text4392" + y="566.1087" + x="441.65189" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + y="566.1087" + x="441.65189" + id="tspan4390" + sodipodi:role="line">-10</tspan></text> + </g> + <g + transform="translate(11.20092,-17.189114)" + inkscape:label="+1" + id="g4402"> + <rect + ry="7" + rx="7" + y="513.73041" + x="392.38638" + height="88.909302" + width="99.578415" + id="rect4396" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <text + id="text4400" + y="566.1087" + x="441.65189" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + y="566.1087" + x="441.65189" + id="tspan4398" + sodipodi:role="line">+1</tspan></text> + </g> + <g + id="g4410" + inkscape:label="+10" + transform="translate(131.20092,-17.189114)"> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect4404" + width="99.578415" + height="88.909302" + x="392.38638" + y="513.73041" + rx="7" + ry="7" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="441.65189" + y="566.1087" + id="text4408"><tspan + sodipodi:role="line" + id="tspan4406" + x="441.65189" + y="566.1087">+10</tspan></text> + </g> + </g> + <g + transform="translate(80,-60)" + inkscape:label="HMI:Input@.range" + id="g4450"> + <rect + inkscape:label="edit" + ry="7" + rx="7" + y="501.87585" + x="203.89867" + height="78.240181" + width="165.96402" + id="rect4412" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <text + inkscape:label="value" + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="275.02609" + y="551.66504" + id="text4416"><tspan + sodipodi:role="line" + id="tspan4414" + x="275.02609" + y="551.66504">1234</tspan></text> + <g + transform="translate(-314.79908,-17.189114)" + inkscape:label="-1" + id="g4424"> + <rect + ry="7" + rx="7" + y="513.73041" + x="392.38638" + height="88.909302" + width="99.578415" + id="rect4418" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <text + id="text4422" + y="566.1087" + x="441.65189" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + y="566.1087" + x="441.65189" + id="tspan4420" + sodipodi:role="line">-1</tspan></text> + </g> + <g + id="g4432" + inkscape:label="-10" + transform="translate(-434.79908,-17.189114)"> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect4426" + width="99.578415" + height="88.909302" + x="392.38638" + y="513.73041" + rx="7" + ry="7" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="441.65189" + y="566.1087" + id="text4430"><tspan + sodipodi:role="line" + id="tspan4428" + x="441.65189" + y="566.1087">-10</tspan></text> + </g> + <g + id="g4440" + inkscape:label="+1" + transform="translate(11.20092,-17.189114)"> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect4434" + width="99.578415" + height="88.909302" + x="392.38638" + y="513.73041" + rx="7" + ry="7" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="441.65189" + y="566.1087" + id="text4438"><tspan + sodipodi:role="line" + id="tspan4436" + x="441.65189" + y="566.1087">+1</tspan></text> + </g> + <g + transform="translate(131.20092,-17.189114)" + inkscape:label="+10" + id="g4448"> + <rect + ry="7" + rx="7" + y="513.73041" + x="392.38638" + height="88.909302" + width="99.578415" + id="rect4442" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <text + id="text4446" + y="566.1087" + x="441.65189" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + y="566.1087" + x="441.65189" + id="tspan4444" + sodipodi:role="line">+10</tspan></text> + </g> + </g> + <g + id="g4490" + inkscape:label="HMI:Input@.position" + transform="translate(80,-220)"> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect4452" + width="165.96402" + height="78.240181" + x="203.89867" + y="501.87585" + rx="7" + ry="7" + inkscape:label="edit" /> + <text + id="text4456" + y="551.66504" + x="275.02609" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + inkscape:label="value"><tspan + y="551.66504" + x="275.02609" + id="tspan4454" + sodipodi:role="line">1234</tspan></text> + <g + id="g4464" + inkscape:label="-1" + transform="translate(-314.79908,-17.189114)"> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect4458" + width="99.578415" + height="88.909302" + x="392.38638" + y="513.73041" + rx="7" + ry="7" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="441.65189" + y="566.1087" + id="text4462"><tspan + sodipodi:role="line" + id="tspan4460" + x="441.65189" + y="566.1087">-1</tspan></text> + </g> + <g + transform="translate(-434.79908,-17.189114)" + inkscape:label="-10" + id="g4472"> + <rect + ry="7" + rx="7" + y="513.73041" + x="392.38638" + height="88.909302" + width="99.578415" + id="rect4466" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <text + id="text4470" + y="566.1087" + x="441.65189" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + y="566.1087" + x="441.65189" + id="tspan4468" + sodipodi:role="line">-10</tspan></text> + </g> + <g + transform="translate(11.20092,-17.189114)" + inkscape:label="+1" + id="g4480"> + <rect + ry="7" + rx="7" + y="513.73041" + x="392.38638" + height="88.909302" + width="99.578415" + id="rect4474" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <text + id="text4478" + y="566.1087" + x="441.65189" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + y="566.1087" + x="441.65189" + id="tspan4476" + sodipodi:role="line">+1</tspan></text> + </g> + <g + id="g4488" + inkscape:label="+10" + transform="translate(131.20092,-17.189114)"> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect4482" + width="99.578415" + height="88.909302" + x="392.38638" + y="513.73041" + rx="7" + ry="7" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="441.65189" + y="566.1087" + id="text4486"><tspan + sodipodi:role="line" + id="tspan4484" + x="441.65189" + y="566.1087">+10</tspan></text> + </g> + </g> + <g + id="g4507" + inkscape:label="HMI:ScrollBar@.position@.range@.size" + transform="translate(-202)"> + <rect + y="84" + x="960" + height="516" + width="100" + id="rect4492" + style="opacity:1;vector-effect:none;fill:#ff35ff;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" + inkscape:label="range" /> + <rect + y="236" + x="969" + height="171" + width="81" + id="rect4494" + style="opacity:1;vector-effect:none;fill:#3835ff;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" + inkscape:label="cursor" /> + <path + style="opacity:1;vector-effect:none;fill:#3835ff;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" + d="M 1009.5,23 1047,81 H 972 Z" + id="rect4498" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccc" + inkscape:label="pageup" /> + <path + style="opacity:1;vector-effect:none;fill:#3835ff;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" + d="m 972,603 h 75 l -37.5,58 z" + id="rect4500" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccc" + inkscape:label="pagedown" /> + </g> + <g + id="g4877" + inkscape:label="HMI:VarInit:50@.position" /> + <g + inkscape:label="HMI:VarInit:20@.size" + id="g4879" /> + <g + id="g4881" + inkscape:label="HMI:VarInit:100@.range" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none" + x="277.58728" + y="276.54129" + id="text941"><tspan + sodipodi:role="line" + id="tspan939" + x="277.58728" + y="276.54129">Position</tspan></text> + <text + id="text945" + y="436.54129" + x="277.58728" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none" + xml:space="preserve"><tspan + y="436.54129" + x="277.58728" + id="tspan943" + sodipodi:role="line">Range</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none" + x="277.58728" + y="596.54126" + id="text949"><tspan + sodipodi:role="line" + id="tspan947" + x="277.58728" + y="596.54126">Size</tspan></text> + <g + inkscape:label="HMI:ScrollBar@.position@.range@.size" + id="g146" + transform="rotate(90,837.8103,-106.02497)"> + <rect + inkscape:label="range" + style="opacity:1;vector-effect:none;fill:#ff35ff;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" + id="rect138" + width="100" + height="516" + x="960" + y="84" /> + <rect + inkscape:label="cursor" + style="opacity:1;vector-effect:none;fill:#3835ff;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" + id="rect140" + width="81" + height="171" + x="969" + y="236" /> + <path + inkscape:label="pageup" + sodipodi:nodetypes="cccc" + inkscape:connector-curvature="0" + id="path142" + d="M 1009.5,23 1047,81 H 972 Z" + style="opacity:1;vector-effect:none;fill:#3835ff;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" /> + <path + inkscape:label="pagedown" + sodipodi:nodetypes="cccc" + inkscape:connector-curvature="0" + id="path144" + d="m 972,603 h 75 l -37.5,58 z" + style="opacity:1;vector-effect:none;fill:#3835ff;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" /> + </g> + <g + transform="matrix(0.35355339,0.35355339,-0.35355339,0.35355339,831.43929,-136.17916)" + inkscape:label="HMI:ScrollBar@.position@.range@.size" + id="g156" + style="stroke-width:2"> + <rect + inkscape:label="range" + style="opacity:1;vector-effect:none;fill:#ff35ff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" + id="rect148" + width="100" + height="516" + x="960" + y="84" /> + <rect + inkscape:label="cursor" + style="opacity:1;vector-effect:none;fill:#3835ff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" + id="rect150" + width="81" + height="171" + x="969" + y="236" /> + <path + inkscape:label="pageup" + sodipodi:nodetypes="cccc" + inkscape:connector-curvature="0" + id="path152" + d="M 1009.5,23 1047,81 H 972 Z" + style="opacity:1;vector-effect:none;fill:#3835ff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" /> + <path + inkscape:label="pagedown" + sodipodi:nodetypes="cccc" + inkscape:connector-curvature="0" + id="path154" + d="m 972,603 h 75 l -37.5,58 z" + style="opacity:1;vector-effect:none;fill:#3835ff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" /> + </g> +</svg> diff -r 2b00f90c6888 -r d5b2369a103f tests/svghmi_v2/beremiz.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/svghmi_v2/beremiz.xml Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,5 @@ +<?xml version='1.0' encoding='utf-8'?> +<BeremizRoot xmlns:xsd="http://www.w3.org/2001/XMLSchema" URI_location="PYRO://127.0.0.1:61284"> + <TargetType/> + <Libraries Enable_SVGHMI_Library="true"/> +</BeremizRoot> diff -r 2b00f90c6888 -r d5b2369a103f tests/svghmi_v2/plc.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/svghmi_v2/plc.xml Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,585 @@ +<?xml version='1.0' encoding='utf-8'?> +<project xmlns:ns1="http://www.plcopen.org/xml/tc6_0201" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.plcopen.org/xml/tc6_0201"> + <fileHeader companyName="Unknown" productName="Unnamed" productVersion="1" creationDateTime="2019-08-06T14:23:42"/> + <contentHeader name="Unnamed" modificationDateTime="2020-09-30T13:04:27"> + <coordinateInfo> + <fbd> + <scaling x="5" y="5"/> + </fbd> + <ld> + <scaling x="0" y="0"/> + </ld> + <sfc> + <scaling x="0" y="0"/> + </sfc> + </coordinateInfo> + </contentHeader> + <types> + <dataTypes/> + <pous> + <pou name="MainStuff" pouType="program"> + <interface> + <localVars> + <variable name="TargetPressure"> + <type> + <derived name="HMI_INT"/> + </type> + </variable> + <variable name="selection"> + <type> + <derived name="HMI_INT"/> + </type> + </variable> + <variable name="Pump0"> + <type> + <derived name="PumpControl"/> + </type> + </variable> + <variable name="TestButton"> + <type> + <derived name="HMI_BOOL"/> + </type> + </variable> + <variable name="TestLocal"> + <type> + <BOOL/> + </type> + </variable> + <variable name="Multistate"> + <type> + <derived name="HMI_INT"/> + </type> + </variable> + <variable name="Radiostate"> + <type> + <derived name="HMI_INT"/> + </type> + </variable> + <variable name="Toggle"> + <type> + <derived name="HMI_BOOL"/> + </type> + </variable> + <variable name="Toggle1"> + <type> + <derived name="HMI_BOOL"/> + </type> + </variable> + <variable name="Toggle2"> + <type> + <derived name="HMI_BOOL"/> + </type> + </variable> + <variable name="MultistateExt"> + <type> + <INT/> + </type> + </variable> + <variable name="Speed"> + <type> + <derived name="HMI_INT"/> + </type> + </variable> + </localVars> + </interface> + <body> + <FBD> + <block localId="4" typeName="PumpControl" instanceName="Pump0" executionOrderId="0" height="40" width="127"> + <position x="595" y="50"/> + <inputVariables> + <variable formalParameter="TargetPressure"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="5"> + <position x="595" y="80"/> + <position x="570" y="80"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables/> + </block> + <inVariable localId="5" executionOrderId="0" height="30" width="125" negated="false"> + <position x="445" y="65"/> + <connectionPointOut> + <relPosition x="125" y="15"/> + </connectionPointOut> + <expression>TargetPressure</expression> + </inVariable> + <inVariable localId="6" executionOrderId="0" height="25" width="90" negated="false"> + <position x="130" y="60"/> + <connectionPointOut> + <relPosition x="90" y="10"/> + </connectionPointOut> + <expression>TestButton</expression> + </inVariable> + <outVariable localId="7" executionOrderId="0" height="25" width="85" negated="false"> + <position x="495" y="220"/> + <connectionPointIn> + <relPosition x="0" y="10"/> + <connection refLocalId="6"> + <position x="495" y="230"/> + <position x="367" y="230"/> + <position x="367" y="70"/> + <position x="220" y="70"/> + </connection> + </connectionPointIn> + <expression>TestLocal</expression> + </outVariable> + <inVariable localId="1" executionOrderId="0" height="25" width="115" negated="false"> + <position x="175" y="355"/> + <connectionPointOut> + <relPosition x="115" y="10"/> + </connectionPointOut> + <expression>Multistate</expression> + </inVariable> + <outVariable localId="8" executionOrderId="0" height="25" width="115" negated="false"> + <position x="495" y="355"/> + <connectionPointIn> + <relPosition x="0" y="10"/> + <connection refLocalId="1"> + <position x="495" y="365"/> + <position x="290" y="365"/> + </connection> + </connectionPointIn> + <expression>MultistateExt</expression> + </outVariable> + </FBD> + </body> + </pou> + <pou name="PumpControl" pouType="functionBlock"> + <interface> + <localVars> + <variable name="Pump"> + <type> + <derived name="HMI_NODE"/> + </type> + </variable> + <variable name="Pressure"> + <type> + <derived name="HMI_INT"/> + </type> + </variable> + </localVars> + <inputVars> + <variable name="TargetPressure"> + <type> + <INT/> + </type> + </variable> + </inputVars> + <localVars> + <variable name="Sloth"> + <type> + <derived name="HMI_INT"/> + </type> + </variable> + <variable name="boolout"> + <type> + <derived name="HMI_BOOL"/> + </type> + </variable> + <variable name="boolin"> + <type> + <derived name="HMI_BOOL"/> + </type> + <initialValue> + <simpleValue value="True"/> + </initialValue> + </variable> + <variable name="strout"> + <type> + <derived name="HMI_STRING"/> + </type> + </variable> + <variable name="strin"> + <type> + <derived name="HMI_STRING"/> + </type> + <initialValue> + <simpleValue value="blup"/> + </initialValue> + </variable> + </localVars> + </interface> + <body> + <FBD> + <inVariable localId="5" executionOrderId="0" height="30" width="125" negated="false"> + <position x="150" y="100"/> + <connectionPointOut> + <relPosition x="125" y="15"/> + </connectionPointOut> + <expression>TargetPressure</expression> + </inVariable> + <block localId="6" typeName="ADD" executionOrderId="0" height="60" width="65"> + <position x="405" y="65"/> + <inputVariables> + <variable formalParameter="IN1"> + <connectionPointIn> + <relPosition x="0" y="30"/> + </connectionPointIn> + </variable> + <variable formalParameter="IN2"> + <connectionPointIn> + <relPosition x="0" y="50"/> + <connection refLocalId="7" formalParameter="OUT"> + <position x="405" y="115"/> + <position x="360" y="115"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables> + <variable formalParameter="OUT"> + <connectionPointOut> + <relPosition x="65" y="30"/> + </connectionPointOut> + </variable> + </outputVariables> + </block> + <inVariable localId="1" executionOrderId="0" height="30" width="75" negated="false"> + <position x="150" y="135"/> + <connectionPointOut> + <relPosition x="75" y="15"/> + </connectionPointOut> + <expression>Pressure</expression> + </inVariable> + <block localId="7" typeName="SUB" executionOrderId="0" height="60" width="65"> + <position x="295" y="85"/> + <inputVariables> + <variable formalParameter="IN1"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="5"> + <position x="295" y="115"/> + <position x="275" y="115"/> + </connection> + </connectionPointIn> + </variable> + <variable formalParameter="IN2"> + <connectionPointIn> + <relPosition x="0" y="50"/> + <connection refLocalId="1"> + <position x="295" y="135"/> + <position x="285" y="135"/> + <position x="285" y="150"/> + <position x="225" y="150"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables> + <variable formalParameter="OUT"> + <connectionPointOut> + <relPosition x="65" y="30"/> + </connectionPointOut> + </variable> + </outputVariables> + </block> + <inVariable localId="2" executionOrderId="0" height="30" width="60" negated="false"> + <position x="240" y="190"/> + <connectionPointOut> + <relPosition x="60" y="15"/> + </connectionPointOut> + <expression>Sloth</expression> + </inVariable> + <outVariable localId="3" executionOrderId="0" height="30" width="75" negated="false"> + <position x="435" y="205"/> + <connectionPointIn> + <relPosition x="0" y="15"/> + <connection refLocalId="8" formalParameter="OUT"> + <position x="435" y="220"/> + <position x="410" y="220"/> + </connection> + </connectionPointIn> + <expression>Pressure</expression> + </outVariable> + <block localId="8" typeName="DIV" executionOrderId="0" height="60" width="65"> + <position x="345" y="190"/> + <inputVariables> + <variable formalParameter="IN1"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="2"> + <position x="345" y="220"/> + <position x="335" y="220"/> + <position x="335" y="205"/> + <position x="300" y="205"/> + </connection> + </connectionPointIn> + </variable> + <variable formalParameter="IN2"> + <connectionPointIn> + <relPosition x="0" y="50"/> + <connection refLocalId="9"> + <position x="345" y="240"/> + <position x="300" y="240"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables> + <variable formalParameter="OUT"> + <connectionPointOut> + <relPosition x="65" y="30"/> + </connectionPointOut> + </variable> + </outputVariables> + </block> + <inVariable localId="9" executionOrderId="0" height="30" width="60" negated="false"> + <position x="240" y="225"/> + <connectionPointOut> + <relPosition x="60" y="15"/> + </connectionPointOut> + <expression>100</expression> + </inVariable> + <block localId="10" typeName="CONCAT" executionOrderId="0" height="60" width="65"> + <position x="360" y="345"/> + <inputVariables> + <variable formalParameter="IN1"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="13" formalParameter="OUT"> + <position x="360" y="375"/> + <position x="330" y="375"/> + <position x="330" y="332"/> + <position x="440" y="332"/> + <position x="440" y="300"/> + <position x="430" y="300"/> + </connection> + </connectionPointIn> + </variable> + <variable formalParameter="IN2"> + <connectionPointIn> + <relPosition x="0" y="50"/> + <connection refLocalId="14"> + <position x="360" y="395"/> + <position x="322" y="395"/> + <position x="322" y="400"/> + <position x="285" y="400"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables> + <variable formalParameter="OUT"> + <connectionPointOut> + <relPosition x="65" y="30"/> + </connectionPointOut> + </variable> + </outputVariables> + </block> + <outVariable localId="11" executionOrderId="0" height="30" width="58" negated="false"> + <position x="495" y="355"/> + <connectionPointIn> + <relPosition x="0" y="15"/> + <connection refLocalId="10" formalParameter="OUT"> + <position x="495" y="370"/> + <position x="450" y="370"/> + <position x="450" y="375"/> + <position x="425" y="375"/> + </connection> + </connectionPointIn> + <expression>strout</expression> + </outVariable> + <inVariable localId="12" executionOrderId="0" height="30" width="125" negated="false"> + <position x="145" y="285"/> + <connectionPointOut> + <relPosition x="125" y="15"/> + </connectionPointOut> + <expression>TargetPressure</expression> + </inVariable> + <block localId="13" typeName="INT_TO_STRING" executionOrderId="0" height="40" width="115"> + <position x="315" y="270"/> + <inputVariables> + <variable formalParameter="IN"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="12"> + <position x="315" y="300"/> + <position x="270" y="300"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables> + <variable formalParameter="OUT"> + <connectionPointOut> + <relPosition x="115" y="30"/> + </connectionPointOut> + </variable> + </outputVariables> + </block> + <inVariable localId="14" executionOrderId="0" height="30" width="50" negated="false"> + <position x="235" y="385"/> + <connectionPointOut> + <relPosition x="50" y="15"/> + </connectionPointOut> + <expression>strin</expression> + </inVariable> + <inVariable localId="15" executionOrderId="0" height="30" width="60" negated="false"> + <position x="690" y="210"/> + <connectionPointOut> + <relPosition x="60" y="15"/> + </connectionPointOut> + <expression>boolin</expression> + </inVariable> + <outVariable localId="16" executionOrderId="0" height="30" width="70" negated="false"> + <position x="915" y="240"/> + <connectionPointIn> + <relPosition x="0" y="15"/> + <connection refLocalId="17" formalParameter="OUT"> + <position x="915" y="255"/> + <position x="880" y="255"/> + </connection> + </connectionPointIn> + <expression>boolout</expression> + </outVariable> + <block localId="17" typeName="AND" executionOrderId="0" height="60" width="65"> + <position x="815" y="225"/> + <inputVariables> + <variable formalParameter="IN1"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="15"> + <position x="815" y="255"/> + <position x="762" y="255"/> + <position x="762" y="225"/> + <position x="750" y="225"/> + </connection> + </connectionPointIn> + </variable> + <variable formalParameter="IN2"> + <connectionPointIn> + <relPosition x="0" y="50"/> + <connection refLocalId="21" formalParameter="OUT"> + <position x="815" y="275"/> + <position x="750" y="275"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables> + <variable formalParameter="OUT"> + <connectionPointOut> + <relPosition x="65" y="30"/> + </connectionPointOut> + </variable> + </outputVariables> + </block> + <inVariable localId="18" executionOrderId="0" height="30" width="75" negated="false"> + <position x="455" y="260"/> + <connectionPointOut> + <relPosition x="75" y="15"/> + </connectionPointOut> + <expression>Pressure</expression> + </inVariable> + <block localId="19" typeName="MOD" executionOrderId="0" height="60" width="65"> + <position x="585" y="245"/> + <inputVariables> + <variable formalParameter="IN1"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="18"> + <position x="585" y="275"/> + <position x="530" y="275"/> + </connection> + </connectionPointIn> + </variable> + <variable formalParameter="IN2"> + <connectionPointIn> + <relPosition x="0" y="50"/> + <connection refLocalId="20"> + <position x="585" y="295"/> + <position x="555" y="295"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables> + <variable formalParameter="OUT"> + <connectionPointOut> + <relPosition x="65" y="30"/> + </connectionPointOut> + </variable> + </outputVariables> + </block> + <inVariable localId="20" executionOrderId="0" height="30" width="20" negated="false"> + <position x="535" y="280"/> + <connectionPointOut> + <relPosition x="20" y="15"/> + </connectionPointOut> + <expression>2</expression> + </inVariable> + <block localId="21" typeName="EQ" executionOrderId="0" height="60" width="65"> + <position x="685" y="245"/> + <inputVariables> + <variable formalParameter="IN1"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="19" formalParameter="OUT"> + <position x="685" y="275"/> + <position x="650" y="275"/> + </connection> + </connectionPointIn> + </variable> + <variable formalParameter="IN2"> + <connectionPointIn> + <relPosition x="0" y="50"/> + <connection refLocalId="22"> + <position x="685" y="295"/> + <position x="670" y="295"/> + <position x="670" y="330"/> + <position x="650" y="330"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables> + <variable formalParameter="OUT"> + <connectionPointOut> + <relPosition x="65" y="30"/> + </connectionPointOut> + </variable> + </outputVariables> + </block> + <inVariable localId="22" executionOrderId="0" height="30" width="20" negated="false"> + <position x="630" y="315"/> + <connectionPointOut> + <relPosition x="20" y="15"/> + </connectionPointOut> + <expression>0</expression> + </inVariable> + <inVariable localId="4" executionOrderId="0" height="30" width="60" negated="false"> + <position x="510" y="80"/> + <connectionPointOut> + <relPosition x="60" y="15"/> + </connectionPointOut> + <expression>Sloth</expression> + </inVariable> + </FBD> + </body> + </pou> + </pous> + </types> + <instances> + <configurations> + <configuration name="config"> + <resource name="resource1"> + <task name="task0" priority="0" interval="T#20ms"> + <pouInstance name="instance0" typeName="MainStuff"/> + </task> + </resource> + </configuration> + </configurations> + </instances> +</project> diff -r 2b00f90c6888 -r d5b2369a103f tests/svghmi_v2/py_ext_0@py_ext/baseconfnode.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/svghmi_v2/py_ext_0@py_ext/baseconfnode.xml Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,2 @@ +<?xml version='1.0' encoding='utf-8'?> +<BaseParams xmlns:xsd="http://www.w3.org/2001/XMLSchema" IEC_Channel="1" Name="py_ext_0"/> diff -r 2b00f90c6888 -r d5b2369a103f tests/svghmi_v2/py_ext_0@py_ext/pyfile.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/svghmi_v2/py_ext_0@py_ext/pyfile.xml Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,30 @@ +<?xml version='1.0' encoding='utf-8'?> +<PyFile xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <variables> + <variable name="SomePLCglobal" type="HMI_STRING" initial="'blaf'" onchange="MyOnChangeFunc"/> + </variables> + <globals> + <xhtml:p><![CDATA[ + +def MyOnChangeFunc(changed_var_name): + print changed_var_name + ": " + getattr(PLCGlobals, changed_var_name) + +]]></xhtml:p> + </globals> + <init> + <xhtml:p><![CDATA[ +]]></xhtml:p> + </init> + <cleanup> + <xhtml:p><![CDATA[ +]]></xhtml:p> + </cleanup> + <start> + <xhtml:p><![CDATA[ +]]></xhtml:p> + </start> + <stop> + <xhtml:p><![CDATA[ +]]></xhtml:p> + </stop> +</PyFile> diff -r 2b00f90c6888 -r d5b2369a103f tests/svghmi_v2/svghmi_0@svghmi/baseconfnode.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/svghmi_v2/svghmi_0@svghmi/baseconfnode.xml Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,2 @@ +<?xml version='1.0' encoding='utf-8'?> +<BaseParams xmlns:xsd="http://www.w3.org/2001/XMLSchema" IEC_Channel="0" Name="svghmi_0"/> diff -r 2b00f90c6888 -r d5b2369a103f tests/svghmi_v2/svghmi_0@svghmi/confnode.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/svghmi_v2/svghmi_0@svghmi/confnode.xml Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,2 @@ +<?xml version='1.0' encoding='utf-8'?> +<SVGHMI xmlns:xsd="http://www.w3.org/2001/XMLSchema" OnWatchdog="echo Watchdog for {name} !" OnStart="xdg-open http://127.0.0.1:{port}/{name}" OnStop="echo Closing {name}" WatchdogInitial="10" WatchdogInterval="5"/> diff -r 2b00f90c6888 -r d5b2369a103f tests/svghmi_v2/svghmi_0@svghmi/svghmi.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/svghmi_v2/svghmi_0@svghmi/svghmi.svg Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,1619 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="1280" + height="720" + viewBox="0 0 1280 720" + version="1.1" + id="hmi0" + sodipodi:docname="svghmi.svg" + inkscape:version="0.92.5 (0.92.5+68)" + inkscape:label="Layer"> + <metadata + id="metadata4542"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title /> + </cc:Work> + </rdf:RDF> + </metadata> + <defs + id="defs2"> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="-688.56326 : 510.71991 : 1" + inkscape:vp_y="0 : 1306.0642 : 0" + inkscape:vp_z="662.62627 : 323.72015 : 1" + inkscape:persp3d-origin="147.31778 : 353.99223 : 1" + id="perspective258" /> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="-457.78124 : 416.79285 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="576.76945 : 273.61475 : 1" + inkscape:persp3d-origin="182.21876 : 296.79285 : 1" + id="perspective503" /> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="-104 : 357 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="1272 : 385 : 1" + inkscape:persp3d-origin="536 : 237 : 1" + id="perspective445" /> + <linearGradient + inkscape:collect="always" + id="linearGradient962"> + <stop + style="stop-color:#ff3000;stop-opacity:1;" + offset="0" + id="stop958" /> + <stop + style="stop-color:#0022ff;stop-opacity:1" + offset="1" + id="stop960" /> + </linearGradient> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker926" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Lend"> + <path + transform="matrix(-1.1,0,0,-1.1,-1.1,0)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:#ff3000;fill-opacity:1;fill-rule:evenodd;stroke:#ff3000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + id="path924" + inkscape:connector-curvature="0" /> + </marker> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient962" + id="linearGradient1407" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.5,0,0,0.03945396,73.07865,3.7693345)" + x1="113.38908" + y1="-62.210247" + x2="113.38908" + y2="4.0725975" /> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="-470.06413 : 851.30353 : 1" + inkscape:vp_y="0 : 1319.7648 : 0" + inkscape:vp_z="895.29941 : 662.3421 : 1" + inkscape:persp3d-origin="374.58537 : 692.93174 : 1" + id="perspective503-6" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:document-units="px" + inkscape:current-layer="hmi0" + showgrid="false" + units="px" + inkscape:zoom="1" + inkscape:cx="379.07861" + inkscape:cy="265.09897" + inkscape:window-width="2503" + inkscape:window-height="1416" + inkscape:window-x="57" + inkscape:window-y="24" + inkscape:window-maximized="1" + showguides="true" + inkscape:guide-bbox="true" /> + <rect + style="color:#000000;fill:#4d4d4d" + id="page0" + width="1280" + height="720" + x="0" + y="0" + inkscape:label="HMI:Page:Home" + sodipodi:insensitive="true" /> + <g + inkscape:label="HMI:Slider@/SPEED" + transform="matrix(7.5590552,0,0,7.5590552,-780.78539,561.61779)" + id="g110-0"> + <path + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ff0000;stroke-width:0.52916664;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="M 113.38908,2.2017068 V -62.210247" + id="path90-9" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" + inkscape:label="range" /> + <path + inkscape:label="handle" + sodipodi:nodetypes="cc" + inkscape:connector-curvature="0" + id="path92-3" + d="m 113.32293,4.2048893 v -5.230241" + style="fill:none;fill-rule:evenodd;stroke:url(#linearGradient1407);stroke-width:5.28146696;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:29.63333321;stroke-opacity:1" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.29166651px;line-height:125%;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="115.07632" + y="9.3424692" + id="text96-6" + inkscape:label="min"><tspan + sodipodi:role="line" + id="tspan94-0" + x="115.07632" + y="9.3424692" + style="text-align:end;text-anchor:end;fill:#ff6600;stroke-width:0.26458332px">0</tspan></text> + <text + id="text100-6" + y="-64.195457" + x="113.27539" + style="font-style:normal;font-weight:normal;font-size:5.29166651px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + inkscape:label="max"><tspan + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px" + y="-64.195457" + x="113.27539" + sodipodi:role="line" + id="tspan1409">10</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-24.72547" + y="-121.97556" + id="text104-6" + inkscape:label="value" + transform="rotate(90)"><tspan + sodipodi:role="line" + x="-24.72547" + y="-121.97556" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px" + id="tspan102-1">000</tspan></text> + </g> + <g + id="g4557" + inkscape:label="HMI:Input@/SOMEPLCGLOBAL"> + <text + inkscape:label="value" + transform="scale(1.1201068,0.89277202)" + id="text2398" + y="479.46704" + x="247.53484" + style="font-style:normal;font-weight:normal;font-size:124.08008575px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.10200214px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:3.10200214px" + y="479.46704" + x="247.53484" + id="tspan2396" + sodipodi:role="line">Test</tspan></text> + <rect + style="opacity:0.18600003;fill:#de2cc9;fill-opacity:1;stroke:none;stroke-width:1.11699021" + id="rect4559" + width="323.85489" + height="132.93608" + x="257.10974" + y="328.97858" + inkscape:label="edit" /> + <rect + style="opacity:0;fill:#de2cc9;fill-opacity:1;stroke:none;stroke-width:3.45667744" + id="rect4561" + width="580.42413" + height="339.91623" + x="699.57587" + y="380.08374" + inkscape:label="key_pos" /> + </g> + <g + transform="matrix(1.5213157,0,0,1.4848913,-82.472173,789.79964)" + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4278" + inkscape:label="HMI:Keypad:HMI_STRING"> + <path + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.6;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.16776976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="M 54.211084,1.2654702 H 435.7388 V 230.18209 H 54.211084 Z" + id="rect1006-3" + inkscape:connector-curvature="0" + inkscape:label="Background" + sodipodi:nodetypes="ccccc" /> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path185" + d="m 162,197 h -11 c -2,0 -3,1 -3,3 v 18 c 0,2 1,3 3,3 h 11 168 18 c 0,0 1,-1 1,-3 v -18 c 0,-2 -1,-3 -1,-3 h -18 z" + inkscape:connector-curvature="0" + inkscape:label="Space" /> + <g + id="g4380" + inkscape:label="Keys" + style="stroke-width:0.47631353" + transform="translate(0,-19.076386)"> + <g + id="g4283" + inkscape:label="q Q" + style="stroke-width:0.47631353" + transform="translate(0,-9.5381931)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path41" + d="m 95,121 h 19 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 H 95 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + inkscape:connector-curvature="0" /> + <text + x="99.378708" + y="138.28395" + id="text203" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928514)">Q</text> + </g> + <g + id="g4337" + inkscape:label="w W" + style="stroke-width:0.47631353" + transform="translate(0,-9.5381931)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path43" + d="m 124,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + inkscape:connector-curvature="0" /> + <text + x="127.0709" + y="138.28395" + id="text207" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928514)">W</text> + </g> + <g + id="g4332" + inkscape:label="e E" + style="stroke-width:0.47631353" + transform="translate(0,-9.5381931)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path45" + d="m 154,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + inkscape:connector-curvature="0" /> + <text + x="159.70854" + y="138.28395" + id="text211" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928514)">E</text> + </g> + <g + id="g4326" + inkscape:label="r R" + style="stroke-width:0.47631353" + transform="translate(0,-9.5381931)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path47" + d="m 184,121 h 19 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -19 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + inkscape:connector-curvature="0" /> + <text + x="188.39003" + y="138.28395" + id="text215" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928514)">R</text> + </g> + <g + id="g4321" + inkscape:label="t T" + style="stroke-width:0.47631353" + transform="translate(0,-9.5381931)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path49" + d="m 213,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z" + inkscape:connector-curvature="0" /> + <text + x="219.04961" + y="138.28395" + id="text219" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928514)">T</text> + </g> + <g + id="g4316" + inkscape:label="y Y" + style="stroke-width:0.47631353" + transform="translate(0,-9.5381931)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path51" + d="m 243,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z" + inkscape:connector-curvature="0" /> + <text + x="248.72017" + y="138.28395" + id="text223" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928514)">Y</text> + </g> + <g + id="g4311" + inkscape:label="u U" + style="stroke-width:0.47631353" + transform="translate(0,-9.5381931)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path53" + d="m 273,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z" + inkscape:connector-curvature="0" /> + <text + x="278.39075" + y="138.28395" + id="text227" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928514)">U</text> + </g> + <g + id="g4306" + inkscape:label="i I" + style="stroke-width:0.47631353" + transform="translate(0,-9.5381931)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path55" + d="m 302,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z" + inkscape:connector-curvature="0" /> + <text + x="311.02859" + y="138.28395" + id="text231" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928514)">I</text> + </g> + <g + id="g4301" + inkscape:label="o O" + style="stroke-width:0.47631353" + transform="translate(0,-9.5381931)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path57" + d="m 332,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z" + inkscape:connector-curvature="0" /> + <text + x="336.74319" + y="138.28395" + id="text235" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928514)">O</text> + </g> + <g + id="g4296" + inkscape:label="p P" + style="stroke-width:0.47631353" + transform="translate(0,-9.5381931)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path59" + d="m 362,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z" + inkscape:connector-curvature="0" /> + <text + x="367.40256" + y="138.28395" + id="text239" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928514)">P</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4511" + inkscape:label="a A"> + <path + inkscape:connector-curvature="0" + d="m 103,147 h 19 c 1,0 3,1 3,2 v 19 c 0,1 -2,2 -3,2 h -19 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z" + id="path65" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text243" + y="163.99854" + x="107.29005" + transform="scale(1.0007154,0.99928514)">A</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4516" + inkscape:label="s S"> + <path + inkscape:connector-curvature="0" + d="m 132,147 h 20 c 1,0 3,1 3,2 v 19 c 0,1 -2,2 -3,2 h -20 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z" + id="path67" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text247" + y="163.99854" + x="137.95012" + transform="scale(1.0007154,0.99928514)">S</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4521" + inkscape:label="d D"> + <path + inkscape:connector-curvature="0" + d="m 162,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z" + id="path69" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text251" + y="163.99854" + x="166.63159" + transform="scale(1.0007154,0.99928514)">D</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4526" + inkscape:label="f F"> + <path + inkscape:connector-curvature="0" + d="m 192,147 h 19 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -19 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z" + id="path71" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text255" + y="163.99854" + x="197.29166" + transform="scale(1.0007154,0.99928514)">F</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4531" + inkscape:label="g G"> + <path + inkscape:connector-curvature="0" + d="m 221,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z" + id="path73" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text259" + y="163.99854" + x="225.97284" + transform="scale(1.0007154,0.99928514)">G</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4536" + inkscape:label="h H"> + <path + inkscape:connector-curvature="0" + d="m 251,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z" + id="path75" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text263" + y="163.99854" + x="255.64342" + transform="scale(1.0007154,0.99928514)">H</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4541" + inkscape:label="j J"> + <path + inkscape:connector-curvature="0" + d="m 281,147 h 19 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -19 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z" + id="path77" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text267" + y="163.99854" + x="287.29208" + transform="scale(1.0007154,0.99928514)">J</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4546" + inkscape:label="k K"> + <path + inkscape:connector-curvature="0" + d="m 310,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z" + id="path79" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text271" + y="163.99854" + x="314.98465" + transform="scale(1.0007154,0.99928514)">K</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4551" + inkscape:label="l L"> + <path + inkscape:connector-curvature="0" + d="m 340,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z" + id="path81" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text275" + y="163.99854" + x="345.64444" + transform="scale(1.0007154,0.99928514)">L</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4586" + inkscape:label="z Z" + transform="translate(0,9.5381929)"> + <path + inkscape:connector-curvature="0" + d="m 113,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 z" + id="path87-3" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text279" + y="188.72411" + x="119.15855" + transform="scale(1.0007154,0.99928514)">Z</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4581" + inkscape:label="x X" + transform="translate(0,9.5381929)"> + <path + inkscape:connector-curvature="0" + d="m 143,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 z" + id="path89-6" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text283" + y="188.72411" + x="148.82933" + transform="scale(1.0007154,0.99928514)">X</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4576" + inkscape:label="c C" + transform="translate(0,9.5381929)"> + <path + inkscape:connector-curvature="0" + d="m 173,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 z" + id="path91-7" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text287" + y="188.72411" + x="178.50011" + transform="scale(1.0007154,0.99928514)">C</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4571" + inkscape:label="v V" + transform="translate(0,9.5381929)"> + <path + inkscape:connector-curvature="0" + d="m 202,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c 0,0 -1,-1 -1,-3 v -17 c 0,-1 1,-3 1,-3 z" + id="path195" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text291" + y="188.72411" + x="208.16988" + transform="scale(1.0007154,0.99928514)">V</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4566" + inkscape:label="b B" + transform="translate(0,9.5381929)"> + <path + inkscape:connector-curvature="0" + d="m 233,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z" + id="path93" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text295" + y="188.72411" + x="237.84096" + transform="scale(1.0007154,0.99928514)">B</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4561" + inkscape:label="n N" + transform="translate(0,9.5381929)"> + <path + inkscape:connector-curvature="0" + d="m 263,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z" + id="path95" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text299" + y="188.72411" + x="267.51193" + transform="scale(1.0007154,0.99928514)">N</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4556" + inkscape:label="m M" + transform="translate(0,9.5381929)"> + <path + inkscape:connector-curvature="0" + d="m 293,172 h 19 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -19 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z" + id="path97" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text303" + y="188.72411" + x="296.1933" + transform="scale(1.0007154,0.99928514)">M</text> + </g> + <g + id="g4818" + inkscape:label=". :" + style="stroke-width:0.47631353" + transform="translate(0,9.5381929)"> + <path + inkscape:connector-curvature="0" + d="m 352,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z" + id="path101" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + transform="scale(1.0007154,0.99928513)" + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826" + id="text719" + y="189.66107" + x="359.58276">.</text> + <text + x="359.58276" + y="181.64532" + id="text4834" + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928512)">:</text> + </g> + <g + id="g4813" + inkscape:label=", ;" + style="stroke-width:0.47631353" + transform="translate(0,9.5381929)"> + <path + inkscape:connector-curvature="0" + d="m 322,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z" + id="path99" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826" + id="text727" + y="181.64532" + x="330.00806" + transform="scale(1.0007154,0.99928512)">;</text> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826" + y="189.66107" + x="330.00806" + transform="scale(1.0007154,0.99928512)" + id="text4826">,</text> + </g> + <g + style="stroke-width:0.47631353" + inkscape:label="1" + id="g2845" + transform="translate(-13.353469,-45.783327)"> + <path + inkscape:connector-curvature="0" + d="m 95,121 h 19 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 H 95 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + id="path2839" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text2841" + y="138.28395" + x="101.07153" + transform="scale(1.0007154,0.99928513)">1</text> + </g> + <g + style="stroke-width:0.47631353" + inkscape:label="2" + id="g2853" + transform="translate(-13.353469,-45.783327)"> + <path + inkscape:connector-curvature="0" + d="m 124,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + id="path2847" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text2849" + y="138.28395" + x="130.18704" + transform="scale(1.0007154,0.99928513)">2</text> + </g> + <g + inkscape:label="3" + id="g2861" + style="stroke-width:0.47631353" + transform="translate(-13.353469,-45.783327)"> + <path + inkscape:connector-curvature="0" + d="m 154,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + id="path2855" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text2857" + y="138.28395" + x="159.70854" + transform="scale(1.0007154,0.99928514)">3</text> + </g> + <g + id="g2957" + inkscape:label="4" + transform="translate(0,-19.076386)"> + <path + inkscape:connector-curvature="0" + d="m 170.64653,94.293059 h 19 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -19 c -1,0 -3,-2 -3,-3 V 97.293059 c 0,-2 2,-3 3,-3 z" + id="path2865" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text2867" + y="111.55791" + x="176.39188" + transform="scale(1.0007154,0.99928514)">4</text> + </g> + <g + id="g2962" + inkscape:label="5" + transform="translate(0,-19.076386)"> + <path + inkscape:connector-curvature="0" + d="m 199.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z" + id="path2873" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text2875" + y="111.55791" + x="205.70567" + transform="scale(1.0007154,0.99928514)">5</text> + </g> + <g + id="g2967" + inkscape:label="6" + transform="translate(0,-19.076386)"> + <path + inkscape:connector-curvature="0" + d="m 229.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z" + id="path2881" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text2883" + y="111.55791" + x="236.15851" + transform="scale(1.0007154,0.99928514)">6</text> + </g> + <g + id="g2972" + inkscape:label="7" + transform="translate(0,-19.076386)"> + <path + inkscape:connector-curvature="0" + d="m 259.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z" + id="path2889" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text2891" + y="111.55791" + x="266.06564" + transform="scale(1.0007154,0.99928514)">7</text> + </g> + <g + id="g2977" + inkscape:label="8" + transform="translate(0,-19.076386)"> + <path + inkscape:connector-curvature="0" + d="m 288.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z" + id="path2897" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text2899" + y="111.55791" + x="295.08231" + transform="scale(1.0007154,0.99928514)">8</text> + </g> + <g + id="g2982" + inkscape:label="9 -" + transform="translate(0,-19.076386)"> + <path + inkscape:connector-curvature="0" + d="m 318.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z" + id="path2905" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text2907" + y="111.55791" + x="325.05408" + transform="scale(1.0007154,0.99928514)">9</text> + <text + transform="scale(1.0007154,0.99928511)" + x="335.72681" + y="102.42173" + id="text806" + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826">-</text> + </g> + <g + id="g2987" + inkscape:label="0 +" + transform="translate(0,-19.076386)"> + <path + inkscape:connector-curvature="0" + d="m 348.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z" + id="path2913" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text2915" + y="111.55791" + x="355.05984" + transform="scale(1.0007154,0.99928514)">0</text> + <text + transform="scale(1.0007154,0.99928511)" + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826" + id="text804" + y="102.42173" + x="365.30151">+</text> + </g> + </g> + <g + transform="translate(335.89988,-58.934803)" + id="g3544" + inkscape:label="Esc" + style="stroke-width:0.47631353"> + <path + style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path105" + d="m 47.948645,115.07509 h 39.076386 c 1,0 3,1 3,3 v 18 c 0,1 -2,3 -3,3 H 47.948645 c -2,0 -3,-2 -3,-3 v -18 c 0,-2 1,-3 3,-3 z" + inkscape:connector-curvature="0" + sodipodi:nodetypes="sssssssss" /> + <text + transform="scale(1.0007154,0.99928512)" + style="font-weight:normal;font-size:9.37966251px;font-family:Arial;fill:#ffffff;fill-rule:evenodd;stroke-width:0.36866826" + id="text469" + y="130.02028" + x="59.288635">Esc</text> + </g> + <g + inkscape:label="Enter" + id="g4291" + style="stroke-width:0.47631353" + transform="translate(0,-19.076386)"> + <path + sodipodi:nodetypes="sssssssss" + style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path3616" + d="m 368.68274,170 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 54.24217 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z" + inkscape:connector-curvature="0" /> + <path + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="m -260.23633,1080.8125 v 15.7949 h -38.68555 v -3 l -6.91992,4 6.91992,4 v -3.0019 h 40.6836 v -17.793 z" + transform="matrix(0.47690966,0,0,0.47690966,531.12074,-361.18588)" + id="path6545" + inkscape:connector-curvature="0" /> + </g> + <g + inkscape:label="BackSpace" + id="g4287" + style="fill-rule:evenodd;stroke-width:0.47631353" + transform="translate(2.3648311e-6,-28.614579)"> + <path + sodipodi:nodetypes="sssssssss" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path3624" + d="m 391.97749,144 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 30.94742 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z" + inkscape:connector-curvature="0" /> + <path + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#2b2828;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="m -268.72656,1011.1777 -6.91992,4 6.91992,4 v -3.0019 h 29.18945 v -1.9981 h -29.18945 z" + transform="matrix(0.47690966,0,0,0.47690966,531.12074,-351.64769)" + id="path11623-1-0" + inkscape:connector-curvature="0" /> + </g> + <g + id="g934" + inkscape:label="CapsLock"> + <g + inkscape:label="inactive" + id="g942" + style="display:inline;fill-rule:evenodd;stroke-width:0.47631353" + transform="translate(0,-19.076386)"> + <path + sodipodi:nodetypes="sssssssss" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path936-3" + d="m 67.025031,170 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 H 92 c 2,0 4,1 4,2 v 19 c 0,1 -2,2 -4,2 z" + inkscape:connector-curvature="0" /> + <text + x="69.789322" + y="156.71973" + id="text938-5" + style="font-weight:normal;font-size:8.66233635px;font-family:Arial;fill:#2b2828;stroke-width:0.36866823" + transform="scale(1.0007154,0.99928515)">Caps</text> + <text + x="69.789322" + y="166.5585" + id="text940" + style="font-weight:normal;font-size:8.66233635px;font-family:Arial;fill:#2b2828;stroke-width:0.36866823" + transform="scale(1.0007154,0.99928515)">Lock</text> + </g> + <g + transform="translate(0,-19.076386)" + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4429" + inkscape:label="active"> + <path + inkscape:connector-curvature="0" + d="m 67.025031,170 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 H 92 c 2,0 4,1 4,2 v 19 c 0,1 -2,2 -4,2 z" + id="path199" + style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + sodipodi:nodetypes="sssssssss" /> + <text + transform="scale(1.0007154,0.99928515)" + style="font-weight:normal;font-size:8.66233635px;font-family:Arial;fill:#ffffff;stroke-width:0.36866823" + id="text647" + y="156.71973" + x="69.789322">Caps</text> + <text + transform="scale(1.0007154,0.99928515)" + style="font-weight:normal;font-size:8.66233635px;font-family:Arial;fill:#ffffff;stroke-width:0.36866823" + id="text651" + y="166.5585" + x="69.789322">Lock</text> + </g> + </g> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#fffff5;fill-opacity:1;fill-rule:nonzero;stroke:#202326;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect2130" + width="361.89996" + height="30.150299" + x="64.024956" + y="15.771065" + rx="3.8152773" + ry="3.8152773" + inkscape:label="Field" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.0763855px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.47690967px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="72.50132" + y="38.296417" + id="text1309" + inkscape:label="Value"><tspan + sodipodi:role="line" + id="tspan1307" + x="72.50132" + y="38.296417" + style="text-align:start;text-anchor:start;stroke-width:0.47690967px">text</tspan></text> + <g + id="g437" + inkscape:label="Shift"> + <g + id="g421" + inkscape:label="inactive"> + <path + inkscape:connector-curvature="0" + d="m 379.96247,185.46181 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 42.96244 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z" + id="path910" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + sodipodi:nodetypes="sssssssss" /> + <text + style="font-weight:normal;font-size:8.92098808px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text912" + y="177.90059" + x="392.55679" + transform="scale(1.0007154,0.99928513)">Shift</text> + <path + sodipodi:nodetypes="sssssssss" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path856" + d="m 67.025031,185.46181 c -1,0 -3,-1 -3,-3 v -17 c 0,-1 2,-3 3,-3 H 104 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 z" + inkscape:connector-curvature="0" /> + <text + x="75.85218" + y="177.90059" + id="text858" + style="font-weight:normal;font-size:8.92098808px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928513)">Shift</text> + </g> + <g + id="g413" + inkscape:label="active"> + <path + sodipodi:nodetypes="sssssssss" + style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path551" + d="m 379.96247,185.46181 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 42.96244 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z" + inkscape:connector-curvature="0" /> + <text + transform="scale(1.0007154,0.99928513)" + x="392.55679" + y="177.90059" + id="text629" + style="font-weight:normal;font-size:8.92098808px;font-family:Arial;fill:#ffffff;stroke-width:0.36866826">Shift</text> + <path + inkscape:connector-curvature="0" + d="m 67.025031,185.46181 c -1,0 -3,-1 -3,-3 v -17 c 0,-1 2,-3 3,-3 H 104 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 z" + id="path879" + style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + sodipodi:nodetypes="sssssssss" /> + <text + transform="scale(1.0007154,0.99928513)" + style="font-weight:normal;font-size:8.92098808px;font-family:Arial;fill:#ffffff;fill-rule:evenodd;stroke-width:0.36866826" + id="text881" + y="177.90059" + x="75.85218">Shift</text> + </g> + </g> + <text + transform="scale(0.96824588,1.0327955)" + id="text471" + y="12.333657" + x="252.9579" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.31375408px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.30784383px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + inkscape:label="Info"><tspan + style="stroke-width:0.30784383px" + y="12.333657" + x="252.9579" + id="tspan469" + sodipodi:role="line">information</tspan></text> + <rect + style="opacity:0.18600003;fill:#de2cc9;fill-opacity:1;stroke:none;stroke-width:0.31677353" + id="rect4563" + width="381.45959" + height="14.110301" + x="54.211086" + y="1.2654642" + inkscape:label="position" /> + </g> + <g + inkscape:label="HMI:Slider@/PUMP0/SLOTH" + transform="matrix(7.5590552,0,0,7.5590552,-248.554,584.0829)" + id="g110-0-9"> + <g + inkscape:label="setpoint" + style="opacity:0.5;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:0.76565915" + inkscape:corner7="-0.15304809 : -0.15652183 : 0.051043755 : 1" + inkscape:corner0="-0.13109479 : -0.13697746 : 0 : 1" + inkscape:perspectiveID="#perspective258" + id="g256" + sodipodi:type="inkscape:box3d"> + <path + style="fill:#353564;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" + points="69.054145,5.4029493 71.910946,3.7246414 71.910946,0.053890203 69.054145,1.5165601 " + d="M 69.054145,1.5165601 V 5.4029493 L 71.910946,3.7246414 V 0.0538902 Z" + inkscape:box3dsidetype="6" + id="path244" + sodipodi:type="inkscape:box3dside" /> + <path + style="fill:#afafde;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" + points="72.352867,6.8282124 75.092002,5.0278603 71.910946,3.7246414 69.054145,5.4029493 " + d="M 69.054145,5.4029493 72.352867,6.8282124 75.092002,5.0278603 71.910946,3.7246414 Z" + inkscape:box3dsidetype="13" + id="path246" + sodipodi:type="inkscape:box3dside" /> + <path + style="fill:#e9e9ff;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" + points="75.092002,1.2673703 75.092002,5.0278603 71.910946,3.7246414 71.910946,0.053890203 " + d="m 71.910946,0.0538902 3.181056,1.2134801 v 3.76049 L 71.910946,3.7246414 Z" + inkscape:box3dsidetype="11" + id="path248" + sodipodi:type="inkscape:box3dside" /> + <path + style="fill:#4d4d9f;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" + points="72.352867,2.8410867 75.092002,1.2673703 71.910946,0.053890203 69.054145,1.5165601 " + d="M 69.054145,1.5165601 72.352867,2.8410867 75.092002,1.2673703 71.910946,0.0538902 Z" + inkscape:box3dsidetype="5" + id="path250" + sodipodi:type="inkscape:box3dside" /> + <path + style="fill:#d7d7ff;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" + points="72.352867,6.8282124 75.092002,5.0278603 75.092002,1.2673703 72.352867,2.8410867 " + d="m 72.352867,2.8410867 v 3.9871257 l 2.739135,-1.8003521 v -3.76049 z" + inkscape:box3dsidetype="14" + id="path252" + sodipodi:type="inkscape:box3dside" /> + <path + style="fill:#8686bf;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" + points="72.352867,2.8410867 72.352867,6.8282124 69.054145,5.4029493 69.054145,1.5165601 " + d="m 69.054145,1.5165601 3.298722,1.3245266 V 6.8282124 L 69.054145,5.4029493 Z" + inkscape:box3dsidetype="3" + id="path254" + sodipodi:type="inkscape:box3dside" /> + </g> + <path + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ff0000;stroke-width:0.52375954;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="m 71.94894,3.6581855 79.3256,0.040092" + id="path90-9-3" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" + inkscape:label="range" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.29166651px;line-height:125%;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="68.771873" + y="5.501111" + id="text96-6-0" + inkscape:label="min"><tspan + sodipodi:role="line" + id="tspan94-0-62" + x="68.771873" + y="5.501111" + style="text-align:end;text-anchor:end;fill:#ff6600;stroke-width:0.26458332px">0</tspan></text> + <text + id="text100-6-6" + y="5.501111" + x="159.67337" + style="font-style:normal;font-weight:normal;font-size:5.29166651px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + inkscape:label="max"><tspan + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px" + y="5.501111" + x="159.67337" + sodipodi:role="line" + id="tspan1409-1">1000</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:7.78479624px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.19461991px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-115.32294" + y="-9.0188799" + id="text104-6-8" + inkscape:label="value" + transform="scale(-1)"><tspan + sodipodi:role="line" + x="-115.32294" + y="-9.0188799" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.19461991px" + id="tspan102-1-7">000</tspan></text> + <g + sodipodi:type="inkscape:box3d" + id="g930" + inkscape:perspectiveID="#perspective503" + inkscape:corner0="-0.13109479 : -0.13697746 : 0 : 1" + inkscape:corner7="-0.15304809 : -0.15652183 : 0.051043755 : 1" + style="fill:#ff0000;fill-opacity:1;stroke:none" + inkscape:label="handle" + transform="translate(0.01,0.01)"> + <path + sodipodi:type="inkscape:box3dside" + id="path932" + inkscape:box3dsidetype="6" + d="M 69.751604,1.9575481 V 4.9331975 L 71.93894,3.6481857 V 0.8376415 Z" + points="69.751604,4.9331975 71.93894,3.6481857 71.93894,0.8376415 69.751604,1.9575481 " + style="fill:#353564;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" /> + <path + sodipodi:type="inkscape:box3dside" + id="path940" + inkscape:box3dsidetype="13" + d="M 69.751604,4.9331975 72.2773,6.0244633 74.374544,4.6460073 71.93894,3.6481857 Z" + points="72.2773,6.0244633 74.374544,4.6460073 71.93894,3.6481857 69.751604,4.9331975 " + style="fill:#afafde;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" /> + <path + sodipodi:type="inkscape:box3dside" + id="path942" + inkscape:box3dsidetype="11" + d="m 71.93894,0.8376415 2.435604,0.9291122 V 4.6460073 L 71.93894,3.6481857 Z" + points="74.374544,1.7667537 74.374544,4.6460073 71.93894,3.6481857 71.93894,0.8376415 " + style="fill:#e9e9ff;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" /> + <path + sodipodi:type="inkscape:box3dside" + id="path934" + inkscape:box3dsidetype="5" + d="M 69.751604,1.9575481 72.2773,2.971684 74.374544,1.7667537 71.93894,0.8376415 Z" + points="72.2773,2.971684 74.374544,1.7667537 71.93894,0.8376415 69.751604,1.9575481 " + style="fill:#4d4d9f;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" /> + <path + sodipodi:type="inkscape:box3dside" + id="path938" + inkscape:box3dsidetype="14" + d="m 72.2773,2.971684 v 3.0527793 l 2.097244,-1.378456 V 1.7667537 Z" + points="72.2773,6.0244633 74.374544,4.6460073 74.374544,1.7667537 72.2773,2.971684 " + style="fill:#d7d7ff;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" /> + <path + sodipodi:type="inkscape:box3dside" + id="path936" + inkscape:box3dsidetype="3" + d="M 69.751604,1.9575481 72.2773,2.971684 V 6.0244633 L 69.751604,4.9331975 Z" + points="72.2773,2.971684 72.2773,6.0244633 69.751604,4.9331975 69.751604,1.9575481 " + style="fill:#8686bf;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" /> + </g> + </g> + <g + id="g1292-3" + inkscape:label="HMI:Input@/RADIOSTATE" + transform="matrix(0.94144976,0,0,1.7212489,176.35468,-2117.077)"> + <g + id="g2530" + inkscape:label="=3"> + <rect + style="display:inline;fill:#0009ff;fill-opacity:1;stroke:none;stroke-width:0.24259248" + id="rect1273-6-3" + width="57.391823" + height="24.148804" + x="230.03636" + y="1238.2637" + inkscape:label="3" /> + <g + transform="translate(-213.152,55.750293)" + id="g2520-5" + inkscape:label="HMI:Switch@/RADIOSTATE" + style="fill:#0009ff;fill-opacity:1"> + <rect + inkscape:label="3" + y="1206.6622" + x="443.18835" + height="24.148754" + width="57.39183" + id="rect1273-6-9-9-9" + style="display:inline;fill:#0009ff;fill-opacity:1;stroke:none;stroke-width:0.24259226" /> + </g> + </g> + <g + id="g2527" + inkscape:label="=2"> + <rect + style="display:inline;fill:#00ffed;fill-opacity:1;stroke:none;stroke-width:0.24259254" + id="rect1273-6-56" + width="57.391857" + height="24.148804" + x="313.84549" + y="1238.2637" + inkscape:label="2" /> + <g + transform="translate(-303.62283,32.70105)" + id="g2520-2" + inkscape:label="HMI:Switch@/RADIOSTATE"> + <rect + inkscape:label="2" + y="1229.7114" + x="617.46832" + height="24.148754" + width="57.39183" + id="rect1273-6-9-9-0" + style="display:inline;fill:#00ffed;fill-opacity:1;stroke:none;stroke-width:0.24259226" /> + </g> + </g> + <g + id="g2524" + inkscape:label="=1"> + <rect + style="display:inline;fill:#3eff00;fill-opacity:1;stroke:none;stroke-width:0.24182089" + id="rect1273-6-2" + width="57.027344" + height="24.148796" + x="146.22725" + y="1238.2637" + inkscape:label="1" /> + <g + transform="translate(-213.152,55.750293)" + id="g2520-23" + inkscape:label="HMI:Switch@/RADIOSTATE"> + <rect + inkscape:label="1" + y="1206.6622" + x="359.37924" + height="24.148754" + width="57.39183" + id="rect1273-6-9-9-7" + style="display:inline;fill:#3eff00;fill-opacity:1;stroke:none;stroke-width:0.24259226" /> + </g> + </g> + <g + id="g2501" + inkscape:label="=0" + transform="translate(-260.62575)"> + <rect + inkscape:label="0" + y="1238.2637" + x="323.04385" + height="24.148754" + width="57.39183" + id="rect1273-6-9" + style="display:inline;fill:#ffea00;fill-opacity:1;stroke:none;stroke-width:0.24259225" /> + <g + id="g2520" + inkscape:label="HMI:Switch@/RADIOSTATE"> + <rect + inkscape:label="0" + y="1262.4125" + x="323.04385" + height="24.148754" + width="57.39183" + id="rect1273-6-9-9" + style="display:inline;fill:#ffea00;fill-opacity:1;stroke:none;stroke-width:0.24259226" /> + </g> + </g> + </g> + <g + id="g1047" + inkscape:label="HMI:CircularBar@/PUMP0/SLOTH" + transform="matrix(0.39840034,0,0,0.35920948,-97.955902,106.13488)"> + <path + inkscape:label="range" + sodipodi:open="true" + d="M 1079.626,411.60913 A 184.25998,167.44942 0 0 1 874.51345,308.78336 184.25998,167.44942 0 0 1 946.20137,106.11681 184.25998,167.44942 0 0 1 1178.8257,131.16507" + sodipodi:end="5.5191826" + sodipodi:start="1.3860423" + sodipodi:ry="167.44942" + sodipodi:rx="184.25998" + sodipodi:cy="247.00946" + sodipodi:cx="1045.7766" + sodipodi:type="arc" + id="path1044" + style="opacity:1;fill:none;fill-opacity:1;stroke:#fe00dc;stroke-width:22.07197189;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:90.1384964px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff00ca;fill-opacity:1;stroke:none;stroke-width:2.25346255px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="1046.8701" + y="258.16129" + id="text1051" + transform="scale(0.91814752,1.0891496)" + inkscape:label="value"><tspan + sodipodi:role="line" + id="tspan1049" + x="1046.8701" + y="258.16129" + style="fill:#ff00ca;fill-opacity:1;stroke:none;stroke-width:2.25346255px;stroke-opacity:1">000</tspan></text> + <path + inkscape:label="path" + sodipodi:open="true" + d="M 1083.68,410.87778 A 184.25998,167.44942 0 0 1 875.42544,310.83196 184.25998,167.44942 0 0 1 945.58759,106.47662 184.25998,167.44942 0 0 1 1179.4956,131.8038" + sodipodi:end="5.524452" + sodipodi:start="1.3636114" + sodipodi:ry="167.44942" + sodipodi:rx="184.25998" + sodipodi:cy="247.00946" + sodipodi:cx="1045.7766" + sodipodi:type="arc" + id="path1044-3" + style="opacity:1;fill:none;fill-opacity:1;stroke:#00fff1;stroke-width:40;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + </g> + <g + id="g1047-6" + inkscape:label="HMI:CircularSlider@/PUMP0/SLOTH" + transform="matrix(0.45707797,0,0,0.45707797,33.744118,80.994747)"> + <path + inkscape:label="range" + d="M 970.29569,399.76446 A 184.25998,167.44942 0 0 1 866.26395,284.77467 184.25998,167.44942 0 0 1 904.10823,139.93753" + sodipodi:end="3.8353474" + sodipodi:start="1.9928597" + sodipodi:ry="167.44942" + sodipodi:rx="184.25998" + sodipodi:cy="247.00946" + sodipodi:cx="1045.7766" + sodipodi:type="arc" + id="path1044-7" + style="opacity:1;fill:none;fill-opacity:1;stroke:#fe00dc;stroke-width:22.07197189;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + sodipodi:open="true" /> + <g + sodipodi:type="inkscape:box3d" + id="g930-2" + inkscape:perspectiveID="#perspective503-6" + inkscape:corner0="-0.086129988 : -0.14445971 : 0 : 1" + inkscape:corner7="-0.10808329 : -0.16400408 : 0.051043755 : 1" + style="fill:#ff0000;fill-opacity:1;stroke:none" + inkscape:label="handle" + inkscape:transform-center-x="8" + inkscape:transform-center-y="98"> + <path + sodipodi:type="inkscape:box3dside" + id="path932-9" + inkscape:box3dsidetype="6" + d="m 919.8592,371.09875 v 61.75093 l 51.05152,-25.59855 v -58.48432 z" + points="919.8592,432.84968 970.91072,407.25113 970.91072,348.76681 919.8592,371.09875 " + style="fill:#353564;fill-rule:evenodd;stroke:none;stroke-width:21.82598114px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" /> + <path + sodipodi:type="inkscape:box3dside" + id="path940-1" + inkscape:box3dsidetype="13" + d="m 919.8592,432.84968 49.77112,22.08624 49.54588,-27.39007 -48.26548,-20.29472 z" + points="969.63032,454.93592 1019.1762,427.54585 970.91072,407.25113 919.8592,432.84968 " + style="fill:#afafde;fill-rule:evenodd;stroke:none;stroke-width:21.82598114px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" /> + <path + sodipodi:type="inkscape:box3dside" + id="path942-2" + inkscape:box3dsidetype="11" + d="m 970.91072,348.76681 48.26548,18.93313 v 59.84591 l -48.26548,-20.29472 z" + points="1019.1762,367.69994 1019.1762,427.54585 970.91072,407.25113 970.91072,348.76681 " + style="fill:#e9e9ff;fill-rule:evenodd;stroke:none;stroke-width:21.82598114px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" /> + <path + sodipodi:type="inkscape:box3dside" + id="path934-7" + inkscape:box3dsidetype="5" + d="m 919.8592,371.09875 49.77112,20.56633 49.54588,-23.96514 -48.26548,-18.93313 z" + points="969.63032,391.66508 1019.1762,367.69994 970.91072,348.76681 919.8592,371.09875 " + style="fill:#4d4d9f;fill-rule:evenodd;stroke:none;stroke-width:21.82598114px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" /> + <path + sodipodi:type="inkscape:box3dside" + id="path938-0" + inkscape:box3dsidetype="14" + d="m 969.63032,391.66508 v 63.27084 l 49.54588,-27.39007 v -59.84591 z" + points="969.63032,454.93592 1019.1762,427.54585 1019.1762,367.69994 969.63032,391.66508 " + style="fill:#d7d7ff;fill-rule:evenodd;stroke:none;stroke-width:21.82598114px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" /> + <path + sodipodi:type="inkscape:box3dside" + id="path936-9" + inkscape:box3dsidetype="3" + d="m 919.8592,371.09875 49.77112,20.56633 v 63.27084 L 919.8592,432.84968 Z" + points="969.63032,391.66508 969.63032,454.93592 919.8592,432.84968 919.8592,371.09875 " + style="fill:#8686bf;fill-rule:evenodd;stroke:none;stroke-width:21.82598114px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" /> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:90.1384964px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff00ca;fill-opacity:1;stroke:none;stroke-width:2.25346255px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="1046.8701" + y="258.16129" + id="text1051-5" + transform="scale(0.91814752,1.0891496)" + inkscape:label="value"><tspan + sodipodi:role="line" + id="tspan1049-3" + x="1046.8701" + y="258.16129" + style="fill:#ff00ca;fill-opacity:1;stroke:none;stroke-width:2.25346255px;stroke-opacity:1">000</tspan></text> + </g> + <g + transform="translate(-289.17513,-33.060654)" + id="g4791-6" + inkscape:label="HMI:ToggleButton@/TOGGLE1"> + <rect + inkscape:label="inactive" + y="47.187904" + x="906.51086" + height="44.547726" + width="45.254833" + id="rect4772-5" + style="opacity:1;fill:#ff0015;fill-opacity:1;stroke:none" /> + <rect + inkscape:label="active" + y="47.187904" + x="906.51086" + height="44.547726" + width="45.254833" + id="rect4772-3-7" + style="opacity:1;fill:#00ff03;fill-opacity:1;stroke:none" /> + </g> + <g + transform="translate(-287.05529,41.033314)" + id="g479hgjk" + inkscape:label="HMI:Button@/TOGGLE"> + <rect + inkscape:label="active" + y="46.127251" + x="906.51086" + height="44.547726" + width="45.254833" + id="rect47fuzkj" + style="opacity:1;fill:#00ff03;fill-opacity:1;stroke:none" /> + <rect + inkscape:label="inactive" + y="46.127251" + x="906.51086" + height="44.547726" + width="45.254833" + id="rect477hjoj" + style="opacity:1;fill:#ff0015;fill-opacity:1;stroke:none" /> + </g> + <g + id="g1112" + inkscape:label="HMI:AnimateRotation@/SPEED"> + <circle + r="32.057827" + cy="436.18585" + cx="747.05347" + id="path1380" + style="fill:#ececec;fill-opacity:1;stroke:#ff0000;stroke-width:2.95733476;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + y="286.18585" + x="597.05353" + height="300" + width="300" + id="rect1382" + style="opacity:0;fill:#ececec;fill-opacity:1;stroke:none;stroke-width:3.69000006;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + sodipodi:nodetypes="sssssss" + inkscape:connector-curvature="0" + id="path1388" + d="m 719.75481,403.83452 c 1.9692,9.54564 9.417,-4.37059 26.6751,-4.06174 27.2477,0.48762 30.0401,21.24497 35.5749,12.81174 6.6594,-10.14673 12.6699,-22.7446 14.75,-33.25 13.5509,-68.43783 -46.4736,-97.18589 -72,-91.49999 -40.88858,9.10778 -49.54078,47.21136 -31.99998,71.75 13.16428,18.41615 23.37448,26.67508 26.99998,44.24999 z" + style="fill:#fd0000;fill-opacity:1;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + sodipodi:nodetypes="sssssss" + inkscape:connector-curvature="0" + id="path1388-9" + d="m 789.45321,432.25975 c -8.9783,-3.79302 -1.7422,10.23457 -11.7862,24.27224 -15.8577,22.16324 -34.5364,12.68834 -30.7308,22.03024 4.5788,11.24 11.5443,23.3361 19.0162,31.0083 48.6752,49.9808 106.3992,16.8549 116.1963,-7.3926 15.6932,-38.84015 -10.7791,-67.57972 -40.9378,-67.05341 -22.634,0.39495 -35.2273,4.11873 -51.7577,-2.86477 z" + style="fill:#fd0000;fill-opacity:1;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + sodipodi:nodetypes="sssssss" + inkscape:connector-curvature="0" + id="path1388-9-8" + d="m 730.85671,475.85643 c 7.5732,-6.1355 -8.2092,-6.3552 -15.8654,-21.82523 -12.0882,-24.42445 5.0646,-36.44319 -4.9688,-37.48364 -12.07218,-1.25186 -26.02318,-0.80116 -36.30958,2.17903 -67.0109,19.41388 -64.9607,85.93594 -48.1806,105.99474 26.8787,32.1304 64.6969,22.3051 78.43058,-4.5502 10.3071,-20.1549 12.9505,-33.0184 26.8938,-44.3147 z" + style="fill:#fd0000;fill-opacity:1;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <animateTransform + attributeName="transform" + attributeType="XML" + type="rotate" + from="0 1049 278" + to="360 1049 278" + dur="1s" + repeatCount="indefinite" /> + </g> + <g + id="g1093" + inkscape:label="HMI:CustomHtml"> + <rect + inkscape:label="container" + y="12" + x="818" + height="323" + width="452" + id="rect1072" + style="opacity:0.29800002;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1.11057007" /> + <text + inkscape:label="code" + transform="scale(0.57360572,1.7433578)" + id="text1076" + y="23.059681" + x="1433.04" + style="font-style:normal;font-weight:normal;font-size:9.29032898px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.87096828px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:0.87096828px" + id="tspan1078" + y="23.059681" + x="1433.04" + sodipodi:role="line"> <img xmlns="http://www.w3.org/1999/xhtml" id="img" src="https://thumbs.gfycat.com/ImpoliteSoupyKakapo-size_restricted.gif" width="100%" height="80%" /></tspan><tspan + style="stroke-width:0.87096828px" + id="tspan1080" + y="34.672592" + x="1433.04" + sodipodi:role="line"> <a xmlns="http://www.w3.org/1999/xhtml" href='www.gmail.com'>Gmail</a></tspan><tspan + style="stroke-width:0.87096828px" + id="tspan1082" + y="46.285503" + x="1433.04" + sodipodi:role="line"> <p xmlns="http://www.w3.org/1999/xhtml">Koj kurac to ne dela</p></tspan><tspan + style="stroke-width:0.87096828px" + id="tspan1084" + y="57.898415" + x="1433.04" + sodipodi:role="line" /></text> + </g> +</svg> diff -r 2b00f90c6888 -r d5b2369a103f tests/svghmi_widgets/beremiz.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/svghmi_widgets/beremiz.xml Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,5 @@ +<?xml version='1.0' encoding='utf-8'?> +<BeremizRoot xmlns:xsd="http://www.w3.org/2001/XMLSchema" URI_location="PYRO://127.0.0.1:61284"> + <TargetType/> + <Libraries Enable_SVGHMI_Library="true"/> +</BeremizRoot> diff -r 2b00f90c6888 -r d5b2369a103f tests/svghmi_widgets/plc.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/svghmi_widgets/plc.xml Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,922 @@ +<?xml version='1.0' encoding='utf-8'?> +<project xmlns:ns1="http://www.plcopen.org/xml/tc6_0201" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.plcopen.org/xml/tc6_0201"> + <fileHeader companyName="Unknown" productName="Unnamed" productVersion="1" creationDateTime="2019-08-06T14:23:42"/> + <contentHeader name="Unnamed" modificationDateTime="2020-12-01T09:52:25"> + <coordinateInfo> + <fbd> + <scaling x="5" y="5"/> + </fbd> + <ld> + <scaling x="0" y="0"/> + </ld> + <sfc> + <scaling x="0" y="0"/> + </sfc> + </coordinateInfo> + </contentHeader> + <types> + <dataTypes/> + <pous> + <pou name="MainStuff" pouType="program"> + <interface> + <localVars> + <variable name="TargetPressure"> + <type> + <derived name="HMI_INT"/> + </type> + </variable> + <variable name="selection"> + <type> + <derived name="HMI_INT"/> + </type> + </variable> + <variable name="Pump0"> + <type> + <derived name="PumpControl"/> + </type> + </variable> + <variable name="Pump1"> + <type> + <derived name="PumpControl"/> + </type> + </variable> + <variable name="Pump2"> + <type> + <derived name="PumpControl"/> + </type> + </variable> + <variable name="Pump3"> + <type> + <derived name="PumpControl"/> + </type> + </variable> + <variable name="Pump4"> + <type> + <derived name="PumpControl"/> + </type> + </variable> + <variable name="Pump5"> + <type> + <derived name="PumpControl"/> + </type> + </variable> + <variable name="Pump6"> + <type> + <derived name="PumpControl"/> + </type> + </variable> + <variable name="Pump7"> + <type> + <derived name="PumpControl"/> + </type> + </variable> + </localVars> + </interface> + <body> + <FBD> + <block localId="4" typeName="PumpControl" instanceName="Pump0" executionOrderId="0" height="40" width="127"> + <position x="595" y="50"/> + <inputVariables> + <variable formalParameter="TargetPressure"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="5"> + <position x="595" y="80"/> + <position x="570" y="80"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables/> + </block> + <inVariable localId="5" executionOrderId="0" height="30" width="125" negated="false"> + <position x="445" y="65"/> + <connectionPointOut> + <relPosition x="125" y="15"/> + </connectionPointOut> + <expression>TargetPressure</expression> + </inVariable> + <block localId="1" typeName="PumpControl" instanceName="Pump1" executionOrderId="0" height="40" width="127"> + <position x="595" y="180"/> + <inputVariables> + <variable formalParameter="TargetPressure"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="5"> + <position x="595" y="210"/> + <position x="582" y="210"/> + <position x="582" y="80"/> + <position x="570" y="80"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables/> + </block> + <block localId="2" typeName="PumpControl" instanceName="Pump2" executionOrderId="0" height="40" width="127"> + <position x="595" y="110"/> + <inputVariables> + <variable formalParameter="TargetPressure"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="5"> + <position x="595" y="140"/> + <position x="582" y="140"/> + <position x="582" y="80"/> + <position x="570" y="80"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables/> + </block> + <block localId="3" typeName="PumpControl" instanceName="Pump3" executionOrderId="0" height="40" width="127"> + <position x="595" y="245"/> + <inputVariables> + <variable formalParameter="TargetPressure"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="5"> + <position x="595" y="275"/> + <position x="582" y="275"/> + <position x="582" y="80"/> + <position x="570" y="80"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables/> + </block> + <block localId="6" typeName="PumpControl" instanceName="Pump4" executionOrderId="0" height="40" width="127"> + <position x="595" y="315"/> + <inputVariables> + <variable formalParameter="TargetPressure"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="5"> + <position x="595" y="345"/> + <position x="582" y="345"/> + <position x="582" y="80"/> + <position x="570" y="80"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables/> + </block> + <block localId="7" typeName="PumpControl" instanceName="Pump5" executionOrderId="0" height="40" width="127"> + <position x="595" y="395"/> + <inputVariables> + <variable formalParameter="TargetPressure"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="5"> + <position x="595" y="425"/> + <position x="582" y="425"/> + <position x="582" y="80"/> + <position x="570" y="80"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables/> + </block> + <block localId="8" typeName="PumpControl" instanceName="Pump6" executionOrderId="0" height="40" width="127"> + <position x="595" y="475"/> + <inputVariables> + <variable formalParameter="TargetPressure"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="5"> + <position x="595" y="505"/> + <position x="582" y="505"/> + <position x="582" y="80"/> + <position x="570" y="80"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables/> + </block> + <block localId="9" typeName="PumpControl" instanceName="Pump7" executionOrderId="0" height="40" width="127"> + <position x="595" y="545"/> + <inputVariables> + <variable formalParameter="TargetPressure"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="5"> + <position x="595" y="575"/> + <position x="582" y="575"/> + <position x="582" y="80"/> + <position x="570" y="80"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables/> + </block> + </FBD> + </body> + </pou> + <pou name="PumpControl" pouType="functionBlock"> + <interface> + <localVars> + <variable name="Pump"> + <type> + <derived name="HMI_NODE"/> + </type> + </variable> + <variable name="Pressure"> + <type> + <derived name="HMI_INT"/> + </type> + </variable> + </localVars> + <inputVars> + <variable name="TargetPressure"> + <type> + <INT/> + </type> + </variable> + </inputVars> + <localVars> + <variable name="Sloth"> + <type> + <derived name="HMI_INT"/> + </type> + </variable> + <variable name="boolout"> + <type> + <derived name="HMI_BOOL"/> + </type> + </variable> + <variable name="boolin"> + <type> + <derived name="HMI_BOOL"/> + </type> + <initialValue> + <simpleValue value="True"/> + </initialValue> + </variable> + <variable name="strout"> + <type> + <derived name="HMI_STRING"/> + </type> + </variable> + <variable name="strin"> + <type> + <derived name="HMI_STRING"/> + </type> + <initialValue> + <simpleValue value="blup"/> + </initialValue> + </variable> + <variable name="floating"> + <type> + <derived name="HMI_REAL"/> + </type> + </variable> + </localVars> + </interface> + <body> + <FBD> + <inVariable localId="5" executionOrderId="0" height="30" width="125" negated="false"> + <position x="150" y="100"/> + <connectionPointOut> + <relPosition x="125" y="15"/> + </connectionPointOut> + <expression>TargetPressure</expression> + </inVariable> + <inOutVariable localId="4" executionOrderId="0" height="30" width="60" negatedOut="false" negatedIn="false"> + <position x="510" y="80"/> + <connectionPointIn> + <relPosition x="0" y="15"/> + <connection refLocalId="6" formalParameter="OUT"> + <position x="510" y="95"/> + <position x="470" y="95"/> + </connection> + </connectionPointIn> + <connectionPointOut> + <relPosition x="60" y="15"/> + </connectionPointOut> + <expression>Sloth</expression> + </inOutVariable> + <block localId="6" typeName="ADD" executionOrderId="0" height="60" width="65"> + <position x="405" y="65"/> + <inputVariables> + <variable formalParameter="IN1"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="4"> + <position x="405" y="95"/> + <position x="385" y="95"/> + <position x="385" y="50"/> + <position x="580" y="50"/> + <position x="580" y="95"/> + <position x="570" y="95"/> + </connection> + </connectionPointIn> + </variable> + <variable formalParameter="IN2"> + <connectionPointIn> + <relPosition x="0" y="50"/> + <connection refLocalId="7" formalParameter="OUT"> + <position x="405" y="115"/> + <position x="360" y="115"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables> + <variable formalParameter="OUT"> + <connectionPointOut> + <relPosition x="65" y="30"/> + </connectionPointOut> + </variable> + </outputVariables> + </block> + <inVariable localId="1" executionOrderId="0" height="30" width="75" negated="false"> + <position x="150" y="135"/> + <connectionPointOut> + <relPosition x="75" y="15"/> + </connectionPointOut> + <expression>Pressure</expression> + </inVariable> + <block localId="7" typeName="SUB" executionOrderId="0" height="60" width="65"> + <position x="295" y="85"/> + <inputVariables> + <variable formalParameter="IN1"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="5"> + <position x="295" y="115"/> + <position x="275" y="115"/> + </connection> + </connectionPointIn> + </variable> + <variable formalParameter="IN2"> + <connectionPointIn> + <relPosition x="0" y="50"/> + <connection refLocalId="1"> + <position x="295" y="135"/> + <position x="285" y="135"/> + <position x="285" y="150"/> + <position x="225" y="150"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables> + <variable formalParameter="OUT"> + <connectionPointOut> + <relPosition x="65" y="30"/> + </connectionPointOut> + </variable> + </outputVariables> + </block> + <inVariable localId="2" executionOrderId="0" height="30" width="60" negated="false"> + <position x="240" y="190"/> + <connectionPointOut> + <relPosition x="60" y="15"/> + </connectionPointOut> + <expression>Sloth</expression> + </inVariable> + <outVariable localId="3" executionOrderId="0" height="30" width="75" negated="false"> + <position x="435" y="205"/> + <connectionPointIn> + <relPosition x="0" y="15"/> + <connection refLocalId="8" formalParameter="OUT"> + <position x="435" y="220"/> + <position x="410" y="220"/> + </connection> + </connectionPointIn> + <expression>Pressure</expression> + </outVariable> + <block localId="8" typeName="DIV" executionOrderId="0" height="60" width="65"> + <position x="345" y="190"/> + <inputVariables> + <variable formalParameter="IN1"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="2"> + <position x="345" y="220"/> + <position x="335" y="220"/> + <position x="335" y="205"/> + <position x="300" y="205"/> + </connection> + </connectionPointIn> + </variable> + <variable formalParameter="IN2"> + <connectionPointIn> + <relPosition x="0" y="50"/> + <connection refLocalId="9"> + <position x="345" y="240"/> + <position x="300" y="240"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables> + <variable formalParameter="OUT"> + <connectionPointOut> + <relPosition x="65" y="30"/> + </connectionPointOut> + </variable> + </outputVariables> + </block> + <inVariable localId="9" executionOrderId="0" height="30" width="60" negated="false"> + <position x="240" y="225"/> + <connectionPointOut> + <relPosition x="60" y="15"/> + </connectionPointOut> + <expression>100</expression> + </inVariable> + <block localId="10" typeName="CONCAT" executionOrderId="0" height="60" width="65"> + <position x="360" y="345"/> + <inputVariables> + <variable formalParameter="IN1"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="13" formalParameter="OUT"> + <position x="360" y="375"/> + <position x="330" y="375"/> + <position x="330" y="332"/> + <position x="440" y="332"/> + <position x="440" y="300"/> + <position x="430" y="300"/> + </connection> + </connectionPointIn> + </variable> + <variable formalParameter="IN2"> + <connectionPointIn> + <relPosition x="0" y="50"/> + <connection refLocalId="14"> + <position x="360" y="395"/> + <position x="322" y="395"/> + <position x="322" y="400"/> + <position x="285" y="400"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables> + <variable formalParameter="OUT"> + <connectionPointOut> + <relPosition x="65" y="30"/> + </connectionPointOut> + </variable> + </outputVariables> + </block> + <outVariable localId="11" executionOrderId="0" height="30" width="58" negated="false"> + <position x="495" y="355"/> + <connectionPointIn> + <relPosition x="0" y="15"/> + <connection refLocalId="10" formalParameter="OUT"> + <position x="495" y="370"/> + <position x="450" y="370"/> + <position x="450" y="375"/> + <position x="425" y="375"/> + </connection> + </connectionPointIn> + <expression>strout</expression> + </outVariable> + <inVariable localId="12" executionOrderId="0" height="30" width="125" negated="false"> + <position x="145" y="285"/> + <connectionPointOut> + <relPosition x="125" y="15"/> + </connectionPointOut> + <expression>TargetPressure</expression> + </inVariable> + <block localId="13" typeName="INT_TO_STRING" executionOrderId="0" height="40" width="115"> + <position x="315" y="270"/> + <inputVariables> + <variable formalParameter="IN"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="12"> + <position x="315" y="300"/> + <position x="270" y="300"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables> + <variable formalParameter="OUT"> + <connectionPointOut> + <relPosition x="115" y="30"/> + </connectionPointOut> + </variable> + </outputVariables> + </block> + <inVariable localId="14" executionOrderId="0" height="30" width="50" negated="false"> + <position x="235" y="385"/> + <connectionPointOut> + <relPosition x="50" y="15"/> + </connectionPointOut> + <expression>strin</expression> + </inVariable> + <inVariable localId="15" executionOrderId="0" height="30" width="60" negated="false"> + <position x="690" y="210"/> + <connectionPointOut> + <relPosition x="60" y="15"/> + </connectionPointOut> + <expression>boolin</expression> + </inVariable> + <outVariable localId="16" executionOrderId="0" height="30" width="70" negated="false"> + <position x="915" y="240"/> + <connectionPointIn> + <relPosition x="0" y="15"/> + <connection refLocalId="17" formalParameter="OUT"> + <position x="915" y="255"/> + <position x="880" y="255"/> + </connection> + </connectionPointIn> + <expression>boolout</expression> + </outVariable> + <block localId="17" typeName="AND" executionOrderId="0" height="60" width="65"> + <position x="815" y="225"/> + <inputVariables> + <variable formalParameter="IN1"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="15"> + <position x="815" y="255"/> + <position x="762" y="255"/> + <position x="762" y="225"/> + <position x="750" y="225"/> + </connection> + </connectionPointIn> + </variable> + <variable formalParameter="IN2"> + <connectionPointIn> + <relPosition x="0" y="50"/> + <connection refLocalId="21" formalParameter="OUT"> + <position x="815" y="275"/> + <position x="750" y="275"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables> + <variable formalParameter="OUT"> + <connectionPointOut> + <relPosition x="65" y="30"/> + </connectionPointOut> + </variable> + </outputVariables> + </block> + <inVariable localId="18" executionOrderId="0" height="30" width="75" negated="false"> + <position x="455" y="260"/> + <connectionPointOut> + <relPosition x="75" y="15"/> + </connectionPointOut> + <expression>Pressure</expression> + </inVariable> + <block localId="19" typeName="MOD" executionOrderId="0" height="60" width="65"> + <position x="585" y="245"/> + <inputVariables> + <variable formalParameter="IN1"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="18"> + <position x="585" y="275"/> + <position x="530" y="275"/> + </connection> + </connectionPointIn> + </variable> + <variable formalParameter="IN2"> + <connectionPointIn> + <relPosition x="0" y="50"/> + <connection refLocalId="20"> + <position x="585" y="295"/> + <position x="555" y="295"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables> + <variable formalParameter="OUT"> + <connectionPointOut> + <relPosition x="65" y="30"/> + </connectionPointOut> + </variable> + </outputVariables> + </block> + <inVariable localId="20" executionOrderId="0" height="30" width="20" negated="false"> + <position x="535" y="280"/> + <connectionPointOut> + <relPosition x="20" y="15"/> + </connectionPointOut> + <expression>2</expression> + </inVariable> + <block localId="21" typeName="EQ" executionOrderId="0" height="60" width="65"> + <position x="685" y="245"/> + <inputVariables> + <variable formalParameter="IN1"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="19" formalParameter="OUT"> + <position x="685" y="275"/> + <position x="650" y="275"/> + </connection> + </connectionPointIn> + </variable> + <variable formalParameter="IN2"> + <connectionPointIn> + <relPosition x="0" y="50"/> + <connection refLocalId="22"> + <position x="685" y="295"/> + <position x="670" y="295"/> + <position x="670" y="330"/> + <position x="650" y="330"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables> + <variable formalParameter="OUT"> + <connectionPointOut> + <relPosition x="65" y="30"/> + </connectionPointOut> + </variable> + </outputVariables> + </block> + <inVariable localId="22" executionOrderId="0" height="30" width="20" negated="false"> + <position x="630" y="315"/> + <connectionPointOut> + <relPosition x="20" y="15"/> + </connectionPointOut> + <expression>0</expression> + </inVariable> + <outVariable localId="23" executionOrderId="0" height="25" width="75" negated="false"> + <position x="935" y="120"/> + <connectionPointIn> + <relPosition x="0" y="10"/> + <connection refLocalId="25" formalParameter="OUT"> + <position x="935" y="130"/> + <position x="922" y="130"/> + <position x="922" y="110"/> + <position x="910" y="110"/> + </connection> + </connectionPointIn> + <expression>floating</expression> + </outVariable> + <inVariable localId="24" executionOrderId="0" height="30" width="60" negated="false"> + <position x="615" y="65"/> + <connectionPointOut> + <relPosition x="60" y="15"/> + </connectionPointOut> + <expression>Sloth</expression> + </inVariable> + <block localId="25" typeName="DIV" executionOrderId="0" height="60" width="65"> + <position x="845" y="80"/> + <inputVariables> + <variable formalParameter="IN1"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="27" formalParameter="OUT"> + <position x="845" y="110"/> + <position x="822" y="110"/> + <position x="822" y="80"/> + <position x="800" y="80"/> + </connection> + </connectionPointIn> + </variable> + <variable formalParameter="IN2"> + <connectionPointIn> + <relPosition x="0" y="50"/> + <connection refLocalId="26"> + <position x="845" y="130"/> + <position x="810" y="130"/> + <position x="810" y="135"/> + <position x="800" y="135"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables> + <variable formalParameter="OUT"> + <connectionPointOut> + <relPosition x="65" y="30"/> + </connectionPointOut> + </variable> + </outputVariables> + </block> + <inVariable localId="26" executionOrderId="0" height="30" width="90" negated="false"> + <position x="710" y="120"/> + <connectionPointOut> + <relPosition x="90" y="15"/> + </connectionPointOut> + <expression>REAL#100.0</expression> + </inVariable> + <block localId="27" typeName="INT_TO_REAL" executionOrderId="0" height="40" width="100"> + <position x="700" y="50"/> + <inputVariables> + <variable formalParameter="IN"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="24"> + <position x="700" y="80"/> + <position x="675" y="80"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables> + <variable formalParameter="OUT"> + <connectionPointOut> + <relPosition x="100" y="30"/> + </connectionPointOut> + </variable> + </outputVariables> + </block> + <block localId="28" typeName="EQ" executionOrderId="0" height="60" width="65"> + <position x="410" y="430"/> + <inputVariables> + <variable formalParameter="IN1"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="36"> + <position x="418" y="460"/> + <position x="401" y="460"/> + <position x="401" y="435"/> + <position x="380" y="435"/> + </connection> + </connectionPointIn> + </variable> + <variable formalParameter="IN2"> + <connectionPointIn> + <relPosition x="0" y="50"/> + <connection refLocalId="29"> + <position x="410" y="480"/> + <position x="367" y="480"/> + <position x="367" y="475"/> + <position x="325" y="475"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables> + <variable formalParameter="OUT"> + <connectionPointOut> + <relPosition x="65" y="30"/> + </connectionPointOut> + </variable> + </outputVariables> + </block> + <inVariable localId="29" executionOrderId="0" height="30" width="20" negated="false"> + <position x="305" y="460"/> + <connectionPointOut> + <relPosition x="20" y="15"/> + </connectionPointOut> + <expression>0</expression> + </inVariable> + <inVariable localId="32" executionOrderId="0" height="30" width="20" negated="false"> + <position x="765" y="505"/> + <connectionPointOut> + <relPosition x="20" y="15"/> + </connectionPointOut> + <expression>0</expression> + </inVariable> + <outVariable localId="31" executionOrderId="0" height="30" width="75" negated="false"> + <position x="925" y="460"/> + <connectionPointIn> + <relPosition x="0" y="15"/> + <connection refLocalId="33" formalParameter="OUT"> + <position x="925" y="475"/> + <position x="890" y="475"/> + </connection> + </connectionPointIn> + <expression>Sloth</expression> + </outVariable> + <block localId="33" typeName="MUX" executionOrderId="0" height="80" width="65"> + <position x="825" y="445"/> + <inputVariables> + <variable formalParameter="K"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="34" formalParameter="OUT"> + <position x="825" y="475"/> + <position x="685" y="475"/> + <position x="685" y="465"/> + <position x="675" y="465"/> + </connection> + </connectionPointIn> + </variable> + <variable formalParameter="IN0"> + <connectionPointIn> + <relPosition x="0" y="50"/> + <connection refLocalId="30"> + <position x="825" y="495"/> + <position x="800" y="495"/> + <position x="800" y="485"/> + <position x="790" y="485"/> + </connection> + </connectionPointIn> + </variable> + <variable formalParameter="IN1"> + <connectionPointIn> + <relPosition x="0" y="70"/> + <connection refLocalId="32"> + <position x="825" y="515"/> + <position x="795" y="515"/> + <position x="795" y="520"/> + <position x="785" y="520"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables> + <variable formalParameter="OUT"> + <connectionPointOut> + <relPosition x="65" y="30"/> + </connectionPointOut> + </variable> + </outputVariables> + </block> + <inVariable localId="30" executionOrderId="0" height="30" width="75" negated="false"> + <position x="715" y="470"/> + <connectionPointOut> + <relPosition x="75" y="15"/> + </connectionPointOut> + <expression>Sloth</expression> + </inVariable> + <block localId="34" typeName="BOOL_TO_SINT" executionOrderId="0" height="40" width="110"> + <position x="565" y="435"/> + <inputVariables> + <variable formalParameter="IN"> + <connectionPointIn> + <relPosition x="0" y="30"/> + <connection refLocalId="28" formalParameter="OUT"> + <position x="565" y="465"/> + <position x="520" y="465"/> + <position x="520" y="460"/> + <position x="475" y="460"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables> + <variable formalParameter="OUT"> + <connectionPointOut> + <relPosition x="110" y="30"/> + </connectionPointOut> + </variable> + </outputVariables> + </block> + <connector name="Connection0" localId="35" height="25" width="125"> + <position x="400" y="140"/> + <connectionPointIn> + <relPosition x="0" y="10"/> + <connection refLocalId="7" formalParameter="OUT"> + <position x="400" y="150"/> + <position x="375" y="150"/> + <position x="375" y="115"/> + <position x="360" y="115"/> + </connection> + </connectionPointIn> + </connector> + <continuation name="Connection0" localId="36" height="25" width="125"> + <position x="255" y="425"/> + <connectionPointOut> + <relPosition x="125" y="10"/> + </connectionPointOut> + </continuation> + </FBD> + </body> + </pou> + </pous> + </types> + <instances> + <configurations> + <configuration name="config"> + <resource name="resource1"> + <task name="task0" priority="0" interval="T#20ms"> + <pouInstance name="instance0" typeName="MainStuff"/> + </task> + </resource> + </configuration> + </configurations> + </instances> +</project> diff -r 2b00f90c6888 -r d5b2369a103f tests/svghmi_widgets/py_ext_0@py_ext/baseconfnode.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/svghmi_widgets/py_ext_0@py_ext/baseconfnode.xml Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,2 @@ +<?xml version='1.0' encoding='utf-8'?> +<BaseParams xmlns:xsd="http://www.w3.org/2001/XMLSchema" IEC_Channel="1" Name="py_ext_0"/> diff -r 2b00f90c6888 -r d5b2369a103f tests/svghmi_widgets/py_ext_0@py_ext/pyfile.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/svghmi_widgets/py_ext_0@py_ext/pyfile.xml Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,93 @@ +<?xml version='1.0' encoding='utf-8'?> +<PyFile xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <variables> + <variable name="AlarmNotify" type="HMI_INT"/> + <variable name="SendAlarm" type="HMI_INT" onchange="TriggerAlarm"/> + <variable name="AlarmText" type="HMI_STRING" initial="'POS'"/> + <variable name="AlarmStatus" type="HMI_STRING" initial="'alarm'"/> + </variables> + <globals> + <xhtml:p><![CDATA[ +from twisted.web.resource import Resource +import json, time, random, collections + +Alarms = [] +AlarmIndex = {} +lastid = 0 + +def TriggerAlarm(changed_var_name): + global Alarms, lastid + new_entry = [time.time(), PLCGlobals.AlarmText, PLCGlobals.AlarmStatus, lastid] + Alarms.append(new_entry) + AlarmIndex[lastid] = new_entry + lastid = lastid + 1 + PLCGlobals.AlarmNotify = random.randint(0, 4294967296) + +class AlarmJsonResource(Resource): + def render_GET(self, request): + return '' + + def render_POST(self, request): + newstr = request.content.getvalue() + newdata = json.loads(newstr) + args = newdata[u'args'] + range_feedback = newdata[u'range'] + slider_position = newdata[u'position'] + visible = newdata[u'visible'] + extra = newdata[u'extra'] + options = newdata[u'options'] + + if len(options) == 2 : + action, alarmid = options + if action == "onClick[acknowledge]": + AlarmIndex[int(alarmid)][2] = "ack" + + answer = self.renderTable(range_feedback, slider_position, visible, extra) + janswer = json.dumps(answer) + return janswer + + def renderTable(self, old_range, old_position, visible, extra): + if len(extra) > 0 and extra[0] != "": + fAlarms = [alrm for alrm in Alarms if alrm[1].find(extra[0])!=-1] + else: + fAlarms = Alarms + new_range = len(fAlarms) + delta = new_range - visible + new_position = 0 if delta <= 0 else delta if old_position > delta else old_position + new_visible = new_range if delta <= 0 else visible + + visible_alarms = [] + for ts, text, status, alarmid in fAlarms[new_position:new_position + new_visible]: + visible_alarms.append({ + "time": time.ctime(ts), + "text": text, # TODO translate text + "status": status, + "alarmid": alarmid + }) + + return new_range, new_position, visible_alarms + + +]]></xhtml:p> + </globals> + <init> + <xhtml:p><![CDATA[ +]]></xhtml:p> + </init> + <cleanup> + <xhtml:p><![CDATA[ +]]></xhtml:p> + </cleanup> + <start> + <xhtml:p><![CDATA[ + +svghmi_root.putChild("alarms", AlarmJsonResource()) + + +]]></xhtml:p> + </start> + <stop> + <xhtml:p><![CDATA[ +]]></xhtml:p> + </stop> +</PyFile> diff -r 2b00f90c6888 -r d5b2369a103f tests/svghmi_widgets/svghmi_0@svghmi/baseconfnode.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/svghmi_widgets/svghmi_0@svghmi/baseconfnode.xml Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,2 @@ +<?xml version='1.0' encoding='utf-8'?> +<BaseParams xmlns:xsd="http://www.w3.org/2001/XMLSchema" IEC_Channel="0" Name="svghmi_0"/> diff -r 2b00f90c6888 -r d5b2369a103f tests/svghmi_widgets/svghmi_0@svghmi/confnode.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/svghmi_widgets/svghmi_0@svghmi/confnode.xml Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,2 @@ +<?xml version='1.0' encoding='utf-8'?> +<SVGHMI xmlns:xsd="http://www.w3.org/2001/XMLSchema" OnWatchdog="echo Watchdog for {name} !" OnStart="chromium http://127.0.0.1:{port}/{name}" OnStop="echo Closing {name}" WatchdogInitial="10" WatchdogInterval="5"/> diff -r 2b00f90c6888 -r d5b2369a103f tests/svghmi_widgets/svghmi_0@svghmi/svghmi.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/svghmi_widgets/svghmi_0@svghmi/svghmi.svg Fri Apr 09 09:47:06 2021 +0200 @@ -0,0 +1,13525 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:osb="http://www.openswatchbook.org/uri/2009/osb" + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)" + sodipodi:docname="svghmi.svg" + id="hmi0" + version="1.1" + viewBox="0 0 1280 720" + height="720" + width="1280"> + <metadata + id="metadata4542"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title /> + </cc:Work> + </rdf:RDF> + </metadata> + <defs + id="defs2"> + <linearGradient + id="linearGradient48067" + inkscape:collect="always"> + <stop + style="stop-color:#ffffff;stop-opacity:1" + offset="0" + id="stop48065" /> + <stop + style="stop-color:#000000;stop-opacity:1" + offset="1" + id="stop48063" /> + </linearGradient> + <marker + style="overflow:visible" + id="marker47537" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Lend" + inkscape:isstock="true"> + <path + inkscape:connector-curvature="0" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + style="fill:#464646;fill-opacity:1;fill-rule:evenodd;stroke:#464646;stroke-width:1.00000003pt;stroke-opacity:1" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + id="path47535" /> + </marker> + <marker + style="overflow:visible" + id="marker35048" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Lend" + inkscape:isstock="true"> + <path + inkscape:connector-curvature="0" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + style="fill:#4d4d4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.00000003pt;stroke-opacity:1" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + id="path35046" /> + </marker> + <linearGradient + id="linearGradient34303" + osb:paint="solid"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop34301" /> + </linearGradient> + <marker + style="overflow:visible" + id="marker33393" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Lend" + inkscape:isstock="true"> + <path + inkscape:connector-curvature="0" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + style="fill:#4d4d4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.00000003pt;stroke-opacity:1" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + id="path33391" /> + </marker> + <pattern + inkscape:collect="always" + xlink:href="#pattern33040" + id="pattern33045" + patternTransform="matrix(0.3402725,0,0,0.3402725,3541.9168,2783.1968)" /> + <pattern + inkscape:collect="always" + xlink:href="#pattern32315" + id="pattern33036" + patternTransform="matrix(0.3402725,0,0,0.3402725,2860.2482,2779.1427)" /> + <marker + inkscape:isstock="true" + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0" + refX="0" + id="marker30413" + style="overflow:visible"> + <path + id="path30411" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:isstock="true" + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0" + refX="0" + id="marker27950" + style="overflow:visible"> + <path + id="path27948" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="marker26128" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Lend" + inkscape:isstock="true" + inkscape:collect="always"> + <path + inkscape:connector-curvature="0" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + id="path26126" /> + </marker> + <marker + inkscape:isstock="true" + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0" + refX="0" + id="marker25626" + style="overflow:visible" + inkscape:collect="always"> + <path + id="path25624" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="marker25174" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Lend" + inkscape:isstock="true" + inkscape:collect="always"> + <path + inkscape:connector-curvature="0" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + id="path25172" /> + </marker> + <marker + inkscape:isstock="true" + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0" + refX="0" + id="marker22786" + style="overflow:visible" + inkscape:collect="always"> + <path + id="path22784" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:isstock="true" + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0" + refX="0" + id="marker21366" + style="overflow:visible"> + <path + id="path21364" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="marker20902" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Lend" + inkscape:isstock="true"> + <path + inkscape:connector-curvature="0" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + id="path20900" /> + </marker> + <linearGradient + id="linearGradient20537" + osb:paint="solid"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop20535" /> + </linearGradient> + <marker + style="overflow:visible" + id="marker15089" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Lend" + inkscape:isstock="true" + inkscape:collect="always"> + <path + inkscape:connector-curvature="0" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + id="path15087" /> + </marker> + <marker + inkscape:isstock="true" + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0" + refX="0" + id="marker14681" + style="overflow:visible" + inkscape:collect="always"> + <path + id="path14679" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="marker14281" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Lend" + inkscape:isstock="true"> + <path + inkscape:connector-curvature="0" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + id="path14279" /> + </marker> + <marker + inkscape:isstock="true" + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0" + refX="0" + id="marker13869" + style="overflow:visible" + inkscape:collect="always"> + <path + id="path13867" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:isstock="true" + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0" + refX="0" + id="marker13481" + style="overflow:visible"> + <path + id="path13479" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:isstock="true" + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0" + refX="0" + id="marker13093" + style="overflow:visible"> + <path + id="path13091" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:isstock="true" + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0" + refX="0" + id="marker12717" + style="overflow:visible" + inkscape:collect="always"> + <path + id="path12715" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0.0" + refX="0.0" + id="marker30978" + style="overflow:visible;" + inkscape:isstock="true"> + <path + id="path30976" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#ff6600;stroke-width:1pt;stroke-opacity:1;fill:#ff6600;fill-opacity:1" + transform="scale(0.4) rotate(180) translate(10,0)" /> + </marker> + <marker + inkscape:stockid="DotM" + orient="auto" + refY="0.0" + refX="0.0" + id="marker30668" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path30666" + d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z " + style="fill-rule:evenodd;stroke:#ff6600;stroke-width:1pt;stroke-opacity:1;fill:#ff6600;fill-opacity:1" + transform="scale(0.4) translate(7.4, 1)" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible;" + id="marker30310" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Mend" + inkscape:collect="always"> + <path + transform="scale(0.4) rotate(180) translate(10,0)" + style="fill-rule:evenodd;stroke:#ff6600;stroke-width:1pt;stroke-opacity:1;fill:#ff6600;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path30308" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker30012" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="DotM" + inkscape:collect="always"> + <path + transform="scale(0.4) translate(7.4, 1)" + style="fill-rule:evenodd;stroke:#ff6600;stroke-width:1pt;stroke-opacity:1;fill:#ff6600;fill-opacity:1" + d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z " + id="path30010" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible;" + id="marker29562" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Mend"> + <path + transform="scale(0.4) rotate(180) translate(10,0)" + style="fill-rule:evenodd;stroke:#3ee800;stroke-width:1pt;stroke-opacity:1;fill:#3ee800;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path29560" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0.0" + refX="0.0" + id="marker29276" + style="overflow:visible;" + inkscape:isstock="true"> + <path + id="path29274" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#3ee800;stroke-width:1pt;stroke-opacity:1;fill:#3ee800;fill-opacity:1" + transform="scale(0.4) rotate(180) translate(10,0)" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible;" + id="marker28710" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Mend"> + <path + transform="scale(0.4) rotate(180) translate(10,0)" + style="fill-rule:evenodd;stroke:#3ee800;stroke-width:1pt;stroke-opacity:1;fill:#3ee800;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path28708" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0.0" + refX="0.0" + id="marker28436" + style="overflow:visible;" + inkscape:isstock="true"> + <path + id="path28434" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#3ee800;stroke-width:1pt;stroke-opacity:1;fill:#3ee800;fill-opacity:1" + transform="scale(0.4) rotate(180) translate(10,0)" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible;" + id="marker27764" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Mend"> + <path + transform="scale(0.4) rotate(180) translate(10,0)" + style="fill-rule:evenodd;stroke:#ff6600;stroke-width:1pt;stroke-opacity:1;fill:#ff6600;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path27762" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker27514" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="DotM"> + <path + transform="scale(0.4) translate(7.4, 1)" + style="fill-rule:evenodd;stroke:#ff6600;stroke-width:1pt;stroke-opacity:1;fill:#ff6600;fill-opacity:1" + d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z " + id="path27512" /> + </marker> + <marker + inkscape:stockid="DotM" + orient="auto" + refY="0.0" + refX="0.0" + id="DotM" + style="overflow:visible" + inkscape:isstock="true" + inkscape:collect="always"> + <path + id="path8269" + d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z " + style="fill-rule:evenodd;stroke:#ff6600;stroke-width:1pt;stroke-opacity:1;fill:#ff6600;fill-opacity:1" + transform="scale(0.4) translate(7.4, 1)" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0.0" + refX="0.0" + id="marker26099" + style="overflow:visible;" + inkscape:isstock="true" + inkscape:collect="always"> + <path + id="path26097" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#ff6600;stroke-width:1pt;stroke-opacity:1;fill:#ff6600;fill-opacity:1" + transform="scale(0.4) rotate(180) translate(10,0)" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker25879" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="SquareL"> + <path + transform="scale(0.8)" + style="fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:#ff6600;stroke-width:1.00000003pt;stroke-opacity:1" + d="M -5,-5 V 5 H 5 V -5 Z" + id="path25877" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0.0" + refX="0.0" + id="marker25117" + style="overflow:visible;" + inkscape:isstock="true" + inkscape:collect="always"> + <path + id="path25115" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#3ee800;stroke-width:1pt;stroke-opacity:1;fill:#3ee800;fill-opacity:1" + transform="scale(0.4) rotate(180) translate(10,0)" /> + </marker> + <marker + inkscape:stockid="Arrow2Lend" + orient="auto" + refY="0.0" + refX="0.0" + id="marker24867" + style="overflow:visible;" + inkscape:isstock="true"> + <path + id="path8226" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#3ee800;stroke-opacity:1;fill:#3ee800;fill-opacity:1" + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " + transform="scale(1.1) rotate(180) translate(1,0)" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible;" + id="marker23223" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Mend" + inkscape:collect="always"> + <path + transform="scale(0.4) rotate(180) translate(10,0)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path23221" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0.0" + refX="0.0" + id="marker22799" + style="overflow:visible;" + inkscape:isstock="true" + inkscape:collect="always"> + <path + id="path22797" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + transform="scale(0.4) rotate(180) translate(10,0)" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible;" + id="marker22543" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow2Lend"> + <path + transform="scale(1.1) rotate(180) translate(1,0)" + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1" + id="path22541" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker21870" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Lend"> + <path + transform="matrix(-0.8,0,0,-0.8,-10,0)" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + id="path21868" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker21674" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="SquareL"> + <path + transform="scale(0.8)" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + d="M -5,-5 V 5 H 5 V -5 Z" + id="path21672" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="SquareL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker20566" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path20564" + d="M -5.0,-5.0 L -5.0,5.0 L 5.0,5.0 L 5.0,-5.0 L -5.0,-5.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0.0" + refX="0.0" + id="marker20382" + style="overflow:visible;" + inkscape:isstock="true"> + <path + id="path20380" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + transform="scale(0.8) rotate(180) translate(12.5,0)" /> + </marker> + <marker + inkscape:stockid="SquareL" + orient="auto" + refY="0.0" + refX="0.0" + id="SquareL" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path8275" + d="M -5.0,-5.0 L -5.0,5.0 L 5.0,5.0 L 5.0,-5.0 L -5.0,-5.0 z " + style="fill-rule:evenodd;stroke:#ff3000;stroke-width:1pt;stroke-opacity:1;fill:#ff3000;fill-opacity:1" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="Arrow1Lstart" + orient="auto" + refY="0.0" + refX="0.0" + id="marker19998" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path19996" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#ff3000;stroke-width:1pt;stroke-opacity:1;fill:#ff3000;fill-opacity:1" + transform="scale(0.8) translate(12.5,0)" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible;" + id="marker19820" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Mend" + inkscape:collect="always"> + <path + transform="scale(0.4) rotate(180) translate(10,0)" + style="fill-rule:evenodd;stroke:#3ee800;stroke-width:1pt;stroke-opacity:1;fill:#3ee800;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path19818" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker19672" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Mstart"> + <path + transform="scale(0.4) translate(10,0)" + style="fill-rule:evenodd;stroke:#ff3000;stroke-width:1pt;stroke-opacity:1;fill:#ff3000;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path19670" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker19488" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="DiamondMend"> + <path + transform="scale(0.4) translate(-6.5,0)" + style="fill-rule:evenodd;stroke:none;stroke-width:1pt;stroke-opacity:1;fill:none;fill-opacity:1" + d="M 0,-7.0710768 L -7.0710894,0 L 0,7.0710589 L 7.0710462,0 L 0,-7.0710768 z " + id="path19486" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker19352" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="DiamondMend"> + <path + transform="scale(0.4) translate(-6.5,0)" + style="fill-rule:evenodd;stroke:none;stroke-width:1pt;stroke-opacity:1;fill:none;fill-opacity:1" + d="M 0,-7.0710768 L -7.0710894,0 L 0,7.0710589 L 7.0710462,0 L 0,-7.0710768 z " + id="path19350" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible;" + id="marker17321" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Mend"> + <path + transform="scale(0.4) rotate(180) translate(10,0)" + style="fill-rule:evenodd;stroke:#ff3000;stroke-width:1pt;stroke-opacity:1;fill:#ff3000;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path17319" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker17197" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Mstart"> + <path + transform="scale(0.4) translate(10,0)" + style="fill-rule:evenodd;stroke:#ff3000;stroke-width:1pt;stroke-opacity:1;fill:#ff3000;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path17195" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker16921" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="DiamondMend"> + <path + transform="scale(0.4) translate(-6.5,0)" + style="fill-rule:evenodd;stroke:#3ee800;stroke-width:1pt;stroke-opacity:1;fill:#3ee800;fill-opacity:1" + d="M 0,-7.0710768 L -7.0710894,0 L 0,7.0710589 L 7.0710462,0 L 0,-7.0710768 z " + id="path16919" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker16821" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="DiamondMend"> + <path + transform="scale(0.4) translate(-6.5,0)" + style="fill-rule:evenodd;stroke:#3ee800;stroke-width:1pt;stroke-opacity:1;fill:#3ee800;fill-opacity:1" + d="M 0,-7.0710768 L -7.0710894,0 L 0,7.0710589 L 7.0710462,0 L 0,-7.0710768 z " + id="path16819" /> + </marker> + <marker + inkscape:stockid="Arrow1Lstart" + orient="auto" + refY="0.0" + refX="0.0" + id="Arrow1Lstart" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path8205" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#ff3000;stroke-width:1pt;stroke-opacity:1;fill:#ff3000;fill-opacity:1" + transform="scale(0.8) translate(12.5,0)" /> + </marker> + <marker + inkscape:stockid="Arrow2Lstart" + orient="auto" + refY="0.0" + refX="0.0" + id="Arrow2Lstart" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path8223" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#ff3000;stroke-opacity:1;fill:#ff3000;fill-opacity:1" + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " + transform="scale(1.1) translate(1,0)" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker10905" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Lend"> + <path + transform="matrix(-1.1,0,0,-1.1,-1.1,0)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:#ff3000;fill-opacity:1;fill-rule:evenodd;stroke:#ff3000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + id="path10903" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0.0" + refX="0.0" + id="Arrow1Lend" + style="overflow:visible;" + inkscape:isstock="true"> + <path + id="path8208" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + transform="scale(0.8) rotate(180) translate(12.5,0)" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker1971" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Lend"> + <path + transform="matrix(-1.1,0,0,-1.1,-1.1,0)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:#ff3000;fill-opacity:1;fill-rule:evenodd;stroke:#ff3000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + id="path1969" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker1536" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Lend"> + <path + transform="matrix(-1.1,0,0,-1.1,-1.1,0)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + id="path1534" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker1656" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Lend"> + <path + transform="matrix(-1.1,0,0,-1.1,-1.1,0)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:#ff3000;fill-opacity:1;fill-rule:evenodd;stroke:#ff3000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + id="path1654" + inkscape:connector-curvature="0" /> + </marker> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="1454.3019 : 921.18786 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="2782.3019 : 507.18786 : 1" + inkscape:persp3d-origin="2094.3019 : 801.18786 : 1" + id="perspective1372" /> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="1424.3019 : 863.18786 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="2800.3019 : 891.18786 : 1" + inkscape:persp3d-origin="2064.3019 : 743.18786 : 1" + id="perspective1370" /> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="73.983557 : 377.52255 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="1401.9836 : -36.477445 : 1" + inkscape:persp3d-origin="713.98356 : 257.52255 : 1" + id="perspective503" /> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="43.983597 : 319.52255 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="1419.9836 : 347.52255 : 1" + inkscape:persp3d-origin="683.98356 : 199.52255 : 1" + id="perspective445" /> + <inkscape:tag + id="Set 1" + inkscape:label="HMI:AccessList@Admin" + inkscape:expanded="true"> + <inkscape:tagref + xlink:href="#text995" + id="tagref192" /> + <inkscape:tagref + xlink:href="#g991" + id="tagref194" /> + </inkscape:tag> + <linearGradient + inkscape:collect="always" + id="linearGradient962"> + <stop + style="stop-color:#ff3000;stop-opacity:1;" + offset="0" + id="stop958" /> + <stop + style="stop-color:#0022ff;stop-opacity:1" + offset="1" + id="stop960" /> + </linearGradient> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker926" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Lend"> + <path + transform="matrix(-1.1,0,0,-1.1,-1.1,0)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:#ff3000;fill-opacity:1;fill-rule:evenodd;stroke:#ff3000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + id="path924" + inkscape:connector-curvature="0" /> + </marker> + <inkscape:tag + id="Set 3" + inkscape:expanded="true" + inkscape:label="HMI:Translate"> + <inkscape:tagref + xlink:href="#text831" + id="tagref1085" /> + <inkscape:tagref + xlink:href="#text827" + id="tagref1087" /> + <inkscape:tagref + xlink:href="#text4497" + id="tagref1089" /> + <inkscape:tagref + xlink:href="#home_jmp" + id="tagref1091" /> + <inkscape:tagref + xlink:href="#setting_jmp" + id="tagref1093" /> + </inkscape:tag> + <marker + inkscape:stockid="Arrow2Lend" + orient="auto" + refY="0" + refX="0" + id="Arrow2Lend" + style="overflow:visible" + inkscape:isstock="true" + inkscape:collect="always"> + <path + inkscape:connector-curvature="0" + id="path895" + style="fill:#ff3000;fill-opacity:1;fill-rule:evenodd;stroke:#ff3000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="matrix(-1.1,0,0,-1.1,-1.1,0)" /> + </marker> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient962" + id="linearGradient964" + x1="113.38908" + y1="-62.210247" + x2="113.38908" + y2="4.0725975" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.5,0,0,0.5,73.144796,-1.4471993)" /> + <linearGradient + id="linearGradient4428" + y2="315.91" + gradientUnits="userSpaceOnUse" + x2="486.78" + y1="279.85001" + x1="452.26001" + inkscape:collect="always" + gradientTransform="matrix(2.1333334,0,0,2.1333334,-3540.3373,-2618.8351)"> + <stop + id="stop3842" + style="stop-color:#5e5e5e" + offset="0" /> + <stop + id="stop3844" + style="stop-color:#5e5e5e;stop-opacity:0" + offset="1" /> + </linearGradient> + <linearGradient + id="linearGradient3919" + inkscape:collect="always"> + <stop + id="stop3921" + style="stop-color:#ffffff" + offset="0" /> + <stop + id="stop3923" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /> + </linearGradient> + <linearGradient + id="linearGradient3862"> + <stop + id="stop3864" + style="stop-color:#414141" + offset="0" /> + <stop + id="stop3868" + style="stop-color:#41433f" + offset=".15789" /> + <stop + id="stop3866" + style="stop-color:#000000" + offset="1" /> + </linearGradient> + <radialGradient + id="radialGradient4436" + gradientUnits="userSpaceOnUse" + cy="336.42001" + cx="491.09" + gradientTransform="matrix(1.1429,0,0,1.1429,-73.994,-53.898)" + r="42.073002" + inkscape:collect="always"> + <stop + id="stop3894" + style="stop-color:#ddcf1b" + offset="0" /> + <stop + id="stop3898" + style="stop-color:#ccd21b" + offset=".5" /> + <stop + id="stop3896" + style="stop-color:#2bb733" + offset="1" /> + </radialGradient> + <radialGradient + id="radialGradient4440" + gradientUnits="userSpaceOnUse" + cy="325.29001" + cx="477.91" + gradientTransform="matrix(5.2310528,-3.8736755,1.0272215,1.565962,-362.40903,3218.8585)" + r="26.870001" + inkscape:collect="always"> + <stop + id="stop3876" + style="stop-color:#333333" + offset="0" /> + <stop + id="stop3878" + style="stop-color:#333333;stop-opacity:0" + offset="1" /> + </radialGradient> + <linearGradient + id="linearGradient4442" + y2="364.53" + gradientUnits="userSpaceOnUse" + x2="510.54001" + y1="300.89001" + x1="460.44" + inkscape:collect="always" + gradientTransform="matrix(2.1333334,0,0,2.1333334,1460.1239,1204.5844)"> + <stop + id="stop3911" + style="stop-color:#ffffff" + offset="0" /> + <stop + id="stop3913" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /> + </linearGradient> + <radialGradient + id="radialGradient4401" + xlink:href="#linearGradient3862" + gradientUnits="userSpaceOnUse" + cy="271.12" + cx="488.75" + gradientTransform="matrix(1.2669,-2.1673e-7,1.919e-7,1.0468,-130.57,-2.7383)" + r="57.629002" + inkscape:collect="always" /> + <linearGradient + id="linearGradient4403" + y2="274.60001" + xlink:href="#linearGradient3994" + gradientUnits="userSpaceOnUse" + x2="461.51001" + y1="378.48001" + x1="460.51001" + inkscape:collect="always" /> + <linearGradient + id="linearGradient3994"> + <stop + id="stop3996" + style="stop-color:#626262" + offset="0" /> + <stop + id="stop4000" + style="stop-color:#919191" + offset=".74085" /> + <stop + id="stop3998" + style="stop-color:#ceced2" + offset="1" /> + </linearGradient> + <filter + id="filter4030" + inkscape:collect="always" + style="color-interpolation-filters:sRGB"> + <feGaussianBlur + id="feGaussianBlur4032" + stdDeviation="3.9987611" + inkscape:collect="always" /> + </filter> + <radialGradient + id="radialGradient4405" + gradientUnits="userSpaceOnUse" + cy="276.20999" + cx="489.59" + gradientTransform="matrix(1.8965,-0.037037,0.020439,1.0466,-444.48,15.45)" + r="57.629002" + inkscape:collect="always"> + <stop + id="stop4044" + style="stop-color:#414141" + offset="0" /> + <stop + id="stop4046" + style="stop-color:#41433f" + offset=".17350" /> + <stop + id="stop4048" + style="stop-color:#000000" + offset="1" /> + </radialGradient> + <linearGradient + id="linearGradient4407" + y2="274.60001" + gradientUnits="userSpaceOnUse" + x2="461.51001" + y1="378.48001" + x1="460.51001" + inkscape:collect="always"> + <stop + id="stop4036" + style="stop-color:#1b1b1d" + offset="0" /> + <stop + id="stop4038" + style="stop-color:#262828" + offset=".54558" /> + <stop + id="stop4040" + style="stop-color:#ceced2" + offset="1" /> + </linearGradient> + <linearGradient + id="linearGradient4108"> + <stop + id="stop4110" + style="stop-color:#ddcf1b" + offset="0" /> + <stop + id="stop4112" + style="stop-color:#ccd21b" + offset="0.28542241" /> + <stop + id="stop4114" + style="stop-color:#2bb733" + offset="1" /> + </linearGradient> + <radialGradient + id="radialGradient4372" + xlink:href="#linearGradient3862" + gradientUnits="userSpaceOnUse" + cy="271.12" + cx="488.75" + gradientTransform="matrix(-1.1814,2.021e-7,-1.7895e-7,-0.97615,1072.1,866.87)" + r="57.629002" + inkscape:collect="always" /> + <linearGradient + id="linearGradient4374" + y2="274.60001" + xlink:href="#linearGradient3994" + gradientUnits="userSpaceOnUse" + x2="461.51001" + gradientTransform="matrix(-0.93252,0,0,-0.93252,950.38,864.32)" + y1="378.48001" + x1="460.51001" + inkscape:collect="always" /> + <linearGradient + id="linearGradient4376" + y2="603.70001" + xlink:href="#linearGradient4292" + gradientUnits="userSpaceOnUse" + x2="505.57999" + y1="526.63" + x1="504.87" + inkscape:collect="always" + gradientTransform="matrix(2.1333334,0,0,2.1333334,893.33419,706.77548)" /> + <linearGradient + id="linearGradient4292"> + <stop + id="stop4294" + style="stop-color:#666666" + offset="0" /> + <stop + id="stop4296" + style="stop-color:#c3c3c5" + offset="1" /> + </linearGradient> + <linearGradient + id="linearGradient4378" + y2="585.34003" + xlink:href="#linearGradient3919" + gradientUnits="userSpaceOnUse" + x2="493.29999" + y1="596.53003" + x1="486.85001" + inkscape:collect="always" + gradientTransform="matrix(3.5063468,0,0,3.5063468,198.4947,-3883.2624)" /> + <radialGradient + id="radialGradient9759" + xlink:href="#linearGradient3862" + gradientUnits="userSpaceOnUse" + cy="271.12" + cx="488.75" + gradientTransform="matrix(-1.1814,2.021e-7,-1.7895e-7,-0.97615,1072.1,866.87)" + r="57.629002" + inkscape:collect="always" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4292" + id="linearGradient10071" + gradientUnits="userSpaceOnUse" + x1="504.87" + y1="526.63" + x2="505.57999" + y2="603.70001" + gradientTransform="matrix(3.5063468,0,0,3.5063468,198.4947,-3883.2624)" /> + <marker + inkscape:stockid="DiamondMend" + orient="auto" + refY="0" + refX="0" + id="DiamondMend-9" + style="overflow:visible" + inkscape:isstock="true"> + <path + inkscape:connector-curvature="0" + id="path8305-2" + d="M 0,-7.0710768 -7.0710894,0 0,7.0710589 7.0710462,0 Z" + style="fill:#3ee800;fill-opacity:1;fill-rule:evenodd;stroke:#3ee800;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(0.4,0,0,0.4,-2.6,0)" /> + </marker> + <marker + inkscape:stockid="DiamondMend" + orient="auto" + refY="0" + refX="0" + id="marker16719" + style="overflow:visible" + inkscape:isstock="true"> + <path + inkscape:connector-curvature="0" + id="path16717" + d="M 0,-7.0710768 -7.0710894,0 0,7.0710589 7.0710462,0 Z" + style="fill:#3ee800;fill-opacity:1;fill-rule:evenodd;stroke:#3ee800;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(0.4,0,0,0.4,-2.6,0)" /> + </marker> + <marker + inkscape:stockid="Arrow1Mstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mstart-2" + style="overflow:visible" + inkscape:isstock="true"> + <path + inkscape:connector-curvature="0" + id="path8211-3" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill:#ff3000;fill-opacity:1;fill-rule:evenodd;stroke:#ff3000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(0.4,0,0,0.4,4,0)" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mend-7" + style="overflow:visible" + inkscape:isstock="true"> + <path + inkscape:connector-curvature="0" + id="path8214-5" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill:#ff3000;fill-opacity:1;fill-rule:evenodd;stroke:#ff3000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(-0.4,0,0,-0.4,-4,0)" /> + </marker> + <filter + id="filter5708" + inkscape:collect="always" + style="color-interpolation-filters:sRGB"> + <feGaussianBlur + id="feGaussianBlur5710" + stdDeviation="28.132071" + inkscape:collect="always" /> + </filter> + <linearGradient + id="linearGradient7109" + y2="276.98999" + xlink:href="#linearGradient5712" + gradientUnits="userSpaceOnUse" + x2="298.10999" + gradientTransform="translate(1979.8,858.86)" + y1="-906.90997" + x1="-914.59003" + inkscape:collect="always" /> + <linearGradient + id="linearGradient5712"> + <stop + id="stop5714" + style="stop-color:#cccccc" + offset="0" /> + <stop + id="stop5716" + style="stop-color:#ffffff;stop-opacity:0" + offset=".12299" /> + <stop + id="stop5718" + style="stop-color:#999999;stop-opacity:.63813" + offset="1" /> + </linearGradient> + <marker + inkscape:stockid="SquareL" + orient="auto" + refY="0" + refX="0" + id="marker20566-2" + style="overflow:visible" + inkscape:isstock="true" + inkscape:collect="always"> + <path + inkscape:connector-curvature="0" + id="path20564-8" + d="M -5,-5 V 5 H 5 V -5 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker23223-1" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Mend"> + <path + inkscape:connector-curvature="0" + transform="matrix(-0.4,0,0,-0.4,-4,0)" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + id="path23221-2" /> + </marker> + <marker + inkscape:stockid="DotM" + orient="auto" + refY="0" + refX="0" + id="DotM-2" + style="overflow:visible" + inkscape:isstock="true"> + <path + inkscape:connector-curvature="0" + id="path8269-0" + d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z" + style="fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:#ff6600;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(0.4,0,0,0.4,2.96,0.4)" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="marker26099-6" + style="overflow:visible" + inkscape:isstock="true"> + <path + inkscape:connector-curvature="0" + id="path26097-1" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:#ff6600;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(-0.4,0,0,-0.4,-4,0)" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker19820-5" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Mend"> + <path + inkscape:connector-curvature="0" + transform="matrix(-0.4,0,0,-0.4,-4,0)" + style="fill:#3ee800;fill-opacity:1;fill-rule:evenodd;stroke:#3ee800;stroke-width:1.00000003pt;stroke-opacity:1" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + id="path19818-4" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="marker25117-7" + style="overflow:visible" + inkscape:isstock="true"> + <path + inkscape:connector-curvature="0" + id="path25115-6" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill:#3ee800;fill-opacity:1;fill-rule:evenodd;stroke:#3ee800;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(-0.4,0,0,-0.4,-4,0)" /> + </marker> + <linearGradient + inkscape:collect="always" + xlink:href="#radialGradient4436" + id="linearGradient31386" + x1="1094.1289" + y1="489.64468" + x2="1008.9722" + y2="209.67311" + gradientUnits="userSpaceOnUse" /> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter31680" + x="-0.066705994" + width="1.133412" + y="-0.075436398" + height="1.1508728"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="10.428525" + id="feGaussianBlur31682" /> + </filter> + <marker + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Lend-3" + style="overflow:visible" + inkscape:isstock="true"> + <path + inkscape:connector-curvature="0" + id="path8208-5" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#fffffc;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(-0.8,0,0,-0.8,-10,0)" /> + </marker> + <radialGradient + id="radialGradient4432-9" + xlink:href="#linearGradient3862" + gradientUnits="userSpaceOnUse" + cy="331.47" + cx="487.54999" + gradientTransform="matrix(1.7799744,-9.2806384e-8,9.900727e-8,1.6752735,-3368.2885,-2467.2504)" + r="57.629002" + inkscape:collect="always" /> + <radialGradient + inkscape:collect="always" + xlink:href="#radialGradient4436-7" + id="radialGradient2918-3" + cx="1043.1659" + cy="285.35944" + fx="1043.1659" + fy="285.35944" + r="192.22134" + gradientTransform="matrix(0.93659677,-0.44854394,0.32346083,0.67732006,-26.162515,540.12207)" + gradientUnits="userSpaceOnUse" /> + <radialGradient + id="radialGradient4436-7" + gradientUnits="userSpaceOnUse" + cy="336.42001" + cx="491.09" + gradientTransform="matrix(1.1429,0,0,1.1429,-73.994,-53.898)" + r="42.073002" + inkscape:collect="always"> + <stop + id="stop3894-5" + style="stop-color:#ddcf1b" + offset="0" /> + <stop + id="stop3898-9" + style="stop-color:#ccd21b" + offset=".5" /> + <stop + id="stop3896-2" + style="stop-color:#2bb733" + offset="1" /> + </radialGradient> + <radialGradient + id="radialGradient4438-2" + xlink:href="#linearGradient3919" + gradientUnits="userSpaceOnUse" + cy="379.03" + cx="520.47998" + gradientTransform="matrix(2.5227749,-1.8142535,0.87409912,1.2348725,-4090.1248,-1355.5321)" + r="57.629002" + inkscape:collect="always" /> + <radialGradient + id="radialGradient5322" + xlink:href="#linearGradient3862" + gradientUnits="userSpaceOnUse" + cy="331.47" + cx="487.54999" + gradientTransform="matrix(1.7799744,-9.2806384e-8,9.900727e-8,1.6752735,-3368.2885,-2467.2504)" + r="57.629002" + inkscape:collect="always" /> + <radialGradient + inkscape:collect="always" + xlink:href="#radialGradient4436-7" + id="radialGradient5340" + cx="1043.1659" + cy="285.35944" + fx="1043.1659" + fy="285.35944" + r="192.22134" + gradientTransform="matrix(0.93659677,-0.44854394,0.32346083,0.67732006,-26.162515,540.12207)" + gradientUnits="userSpaceOnUse" /> + <radialGradient + id="radialGradient5350" + xlink:href="#linearGradient3919" + gradientUnits="userSpaceOnUse" + cy="379.03" + cx="520.47998" + gradientTransform="matrix(2.5227749,-1.8142535,0.87409912,1.2348725,-4090.1248,-1355.5321)" + r="57.629002" + inkscape:collect="always" /> + <marker + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Lend-3-9" + style="overflow:visible" + inkscape:isstock="true"> + <path + inkscape:connector-curvature="0" + id="path8208-5-3" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#fffffc;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(-0.8,0,0,-0.8,-10,0)" /> + </marker> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3862" + id="radialGradient8154-3" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.7799744,-9.2806384e-8,9.900727e-8,1.6752735,-3368.2885,-2467.2504)" + cx="487.54999" + cy="331.47" + r="57.629002" /> + <radialGradient + inkscape:collect="always" + xlink:href="#radialGradient4436-5" + id="radialGradient8158-1" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.93659677,-0.44854394,0.32346083,0.67732006,-26.162515,540.12207)" + cx="1043.1659" + cy="285.35944" + fx="1043.1659" + fy="285.35944" + r="192.22134" /> + <radialGradient + id="radialGradient4436-5" + gradientUnits="userSpaceOnUse" + cy="336.42001" + cx="491.09" + gradientTransform="matrix(1.1429,0,0,1.1429,-73.994,-53.898)" + r="42.073002" + inkscape:collect="always"> + <stop + id="stop3894-54" + style="stop-color:#ddcf1b" + offset="0" /> + <stop + id="stop3898-7" + style="stop-color:#ccd21b" + offset=".5" /> + <stop + id="stop3896-6" + style="stop-color:#2bb733" + offset="1" /> + </radialGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3919" + id="radialGradient8160-5" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.5227749,-1.8142535,0.87409912,1.2348725,-4090.1248,-1355.5321)" + cx="520.47998" + cy="379.03" + r="57.629002" /> + <radialGradient + inkscape:collect="always" + xlink:href="#radialGradient4440-9" + id="radialGradient8162-6" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(5.2310528,-3.8736755,1.0272215,1.565962,-362.40903,3218.8585)" + cx="477.91" + cy="325.29001" + r="26.870001" /> + <radialGradient + id="radialGradient4440-9" + gradientUnits="userSpaceOnUse" + cy="325.29001" + cx="477.91" + gradientTransform="matrix(5.2310528,-3.8736755,1.0272215,1.565962,-362.40903,3218.8585)" + r="26.870001" + inkscape:collect="always"> + <stop + id="stop3876-3" + style="stop-color:#333333" + offset="0" /> + <stop + id="stop3878-7" + style="stop-color:#333333;stop-opacity:0" + offset="1" /> + </radialGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3862" + id="radialGradient8996" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.7799744,-9.2806384e-8,9.900727e-8,1.6752735,-3368.2885,-2467.2504)" + cx="487.54999" + cy="331.47" + r="57.629002" /> + <radialGradient + inkscape:collect="always" + xlink:href="#radialGradient4436-5" + id="radialGradient9014" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.93659677,-0.44854394,0.32346083,0.67732006,-26.162515,540.12207)" + cx="1043.1659" + cy="285.35944" + fx="1043.1659" + fy="285.35944" + r="192.22134" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3919" + id="radialGradient9024" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.5227749,-1.8142535,0.87409912,1.2348725,-4090.1248,-1355.5321)" + cx="520.47998" + cy="379.03" + r="57.629002" /> + <radialGradient + inkscape:collect="always" + xlink:href="#radialGradient4440-9" + id="radialGradient9032" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(5.2310528,-3.8736755,1.0272215,1.565962,-362.40903,3218.8585)" + cx="477.91" + cy="325.29001" + r="26.870001" /> + <linearGradient + inkscape:collect="always" + xlink:href="#radialGradient4436" + id="linearGradient10485" + gradientUnits="userSpaceOnUse" + x1="1094.1289" + y1="489.64468" + x2="1008.9722" + y2="209.67311" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4428" + id="linearGradient10487" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.1333334,0,0,2.1333334,-3540.3373,-2618.8351)" + x1="452.26001" + y1="279.85001" + x2="486.78" + y2="315.91" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3919" + id="linearGradient10489" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.1333334,0,0,2.1333334,1460.1239,1202.4511)" + x1="462.14999" + y1="275.60999" + x2="493.85001" + y2="326.51999" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3862" + id="radialGradient10491" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.7799744,-9.2806384e-8,9.900727e-8,1.6752735,-3368.2885,-2467.2504)" + cx="487.54999" + cy="331.47" + r="57.629002" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3919" + id="linearGradient10493" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.8846721,0,0,1.9108481,-3418.46,-2542.9311)" + x1="452.26001" + y1="279.85001" + x2="486.78" + y2="315.91" /> + <radialGradient + inkscape:collect="always" + xlink:href="#radialGradient4436" + id="radialGradient10495" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.93659677,-0.44854394,0.32346083,0.67732006,-26.162515,540.12207)" + cx="1043.1659" + cy="285.35944" + fx="1043.1659" + fy="285.35944" + r="192.22134" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3919" + id="radialGradient10497" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.5227749,-1.8142535,0.87409912,1.2348725,-4090.1248,-1355.5321)" + cx="520.47998" + cy="379.03" + r="57.629002" /> + <radialGradient + inkscape:collect="always" + xlink:href="#radialGradient4440" + id="radialGradient10499" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(5.2310528,-3.8736755,1.0272215,1.565962,-362.40903,3218.8585)" + cx="477.91" + cy="325.29001" + r="26.870001" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4442" + id="linearGradient10501" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.1333334,0,0,2.1333334,1460.1239,1204.5844)" + x1="460.44" + y1="300.89001" + x2="510.54001" + y2="364.53" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5712" + id="linearGradient10503" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-266.78,858.86)" + x1="-914.59003" + y1="-906.90997" + x2="298.10999" + y2="276.98999" /> + <marker + style="overflow:visible" + id="marker1197" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Lend" + inkscape:isstock="true" + inkscape:collect="always"> + <path + inkscape:connector-curvature="0" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + id="path1195" /> + </marker> + <marker + style="overflow:visible" + id="marker1207" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Lend" + inkscape:isstock="true" + inkscape:collect="always"> + <path + inkscape:connector-curvature="0" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + id="path1205" /> + </marker> + <marker + style="overflow:visible" + id="marker1187" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Lend" + inkscape:isstock="true" + inkscape:collect="always"> + <path + inkscape:connector-curvature="0" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + id="path1185" /> + </marker> + <marker + style="overflow:visible" + id="marker1177" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Lend" + inkscape:isstock="true" + inkscape:collect="always"> + <path + inkscape:connector-curvature="0" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + id="path1175" /> + </marker> + <marker + style="overflow:visible" + id="marker1167" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Lend" + inkscape:isstock="true" + inkscape:collect="always"> + <path + inkscape:connector-curvature="0" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + id="path1165" /> + </marker> + <marker + style="overflow:visible" + id="marker1157" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Lend" + inkscape:isstock="true" + inkscape:collect="always"> + <path + inkscape:connector-curvature="0" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + id="path1155" /> + </marker> + <marker + inkscape:isstock="true" + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0" + refX="0" + id="marker22786-9" + style="overflow:visible"> + <path + id="path22784-6" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:isstock="true" + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0" + refX="0" + id="marker22786-3" + style="overflow:visible"> + <path + id="path22784-3" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:isstock="true" + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0" + refX="0" + id="marker22786-8" + style="overflow:visible"> + <path + id="path22784-60" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + inkscape:connector-curvature="0" /> + </marker> + <pattern + patternUnits="userSpaceOnUse" + width="1280" + height="720" + patternTransform="translate(-120,1560)" + id="pattern32315"> + <use + height="100%" + width="100%" + transform="translate(4.4804112e-6,-1560)" + id="use32313" + xlink:href="#g4278" + y="0" + x="0" /> + </pattern> + <pattern + patternUnits="userSpaceOnUse" + width="1280" + height="720" + patternTransform="translate(4.5843587e-5,2340)" + id="pattern33040"> + <use + id="use33038" + xlink:href="#g2432" + y="0" + x="0" + transform="translate(-4.5843587e-5,-2340)" + width="100%" + height="100%" /> + </pattern> + <marker + style="overflow:visible" + id="marker33393-6" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Lend" + inkscape:isstock="true"> + <path + inkscape:connector-curvature="0" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + style="fill:#4d4d4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.00000003pt;stroke-opacity:1" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + id="path33391-4" /> + </marker> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4108" + id="linearGradient35598" + x1="3282.1479" + y1="3490.5305" + x2="3302.1479" + y2="3565.5305" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4108" + id="linearGradient35602" + gradientUnits="userSpaceOnUse" + x1="3282.1479" + y1="3530.5305" + x2="3302.1479" + y2="3565.5305" + gradientTransform="translate(0,-246)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4108" + id="linearGradient35607" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,-1,0,7302.061)" + x1="3282.1479" + y1="3565.5305" + x2="3302.1479" + y2="3530.5305" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient48067" + id="radialGradient48061" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.01927641,3.0508146,-1.339822,0.00867105,4122.7241,-10076.708)" + cx="4437.8638" + cy="432.34897" + fx="4437.8638" + fy="432.34897" + r="35.250397" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient48067" + id="radialGradient48061-9" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.02836882,4.436331,-1.9717971,0.01260898,731.53273,-19692.285)" + cx="4437.6318" + cy="434.84348" + fx="4437.6318" + fy="434.84348" + r="35.250397" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient48067" + id="radialGradient48094" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.6218841e-6,-15.394244,1.33985,-0.00103654,3136.5425,73759.406)" + cx="4544.9692" + cy="400.71506" + fx="4544.9692" + fy="400.71506" + r="35.250397" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:document-units="px" + inkscape:current-layer="hmi0" + showgrid="false" + units="px" + inkscape:zoom="0.29824219" + inkscape:cx="6031.6643" + inkscape:cy="-3206.0412" + inkscape:window-width="3840" + inkscape:window-height="2123" + inkscape:window-x="1600" + inkscape:window-y="0" + inkscape:window-maximized="1" + showguides="true" + inkscape:guide-bbox="true" + inkscape:snap-global="true" + inkscape:snap-bbox="true" + inkscape:bbox-nodes="true"> + <sodipodi:guide + position="2769.4073,-860.03335" + orientation="0,1" + id="guide6495" + inkscape:locked="false" + inkscape:label="" + inkscape:color="rgb(0,0,255)" /> + <sodipodi:guide + position="5344.8616,-2420" + orientation="0,1" + id="guide6497" + inkscape:locked="false" + inkscape:label="" + inkscape:color="rgb(0,0,255)" /> + <sodipodi:guide + position="2760,-1640" + orientation="0,1" + id="guide6501" + inkscape:locked="false" + inkscape:label="" + inkscape:color="rgb(0,0,255)" /> + </sodipodi:namedview> + <use + x="0" + y="0" + xlink:href="#g7994" + id="use7996" + transform="translate(1480,800)" + width="100%" + height="100%" + inkscape:label="HMI:Page:RelativePageTest@/PUMP0" /> + <rect + sodipodi:insensitive="true" + inkscape:label="HMI:Page:Conf" + y="780" + x="0" + height="720" + width="1280" + id="rect1016" + style="color:#000000;fill:#000000" /> + <g + id="g1082" + inkscape:label="HMI:Jump:Home" + transform="translate(-940,-558)"> + <g + id="g1152" + inkscape:label="button"> + <path + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="m 1217.4113,1410.4016 -22,24.5657 c -10.7925,12.0511 6.1317,35.5791 -13.5791,35.5791 h -174.2877 c -19.71078,0 -2.7866,-23.528 -13.57905,-35.5791 l -22,-24.5657 127.74845,-48.4334 z" + id="rect1022" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cssssccc" /> + </g> + <g + id="g1149" + inkscape:label="text"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="1090.7626" + y="1436.9814" + id="home_jmp" + inkscape:label="home_jmp"><tspan + sodipodi:role="line" + id="tspan1028" + x="1090.7626" + y="1436.9814" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px">Home</tspan></text> + </g> + </g> + <rect + style="color:#000000;fill:#4d4d4d" + id="page0" + width="1280" + height="720" + x="0" + y="0" + inkscape:label="HMI:Page:Home" /> + <g + id="g1077" + inkscape:label="HMI:Jump:Conf" + transform="matrix(0.57180538,0,0,0.57180538,-373.64055,248.51305)"> + <g + id="g1159" + inkscape:label="button"> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect1020" + width="245.44583" + height="95.723877" + x="971.96545" + y="594.82263" + ry="35.579063" + inkscape:label="button" /> + </g> + <g + id="g1156" + inkscape:label="text"> + <text + inkscape:label="setting_jmp" + id="setting_jmp" + y="656.98151" + x="1090.7626" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px" + y="656.98151" + x="1090.7626" + id="tspan1024" + sodipodi:role="line">Settings</tspan></text> + </g> + </g> + <g + id="g84" + inkscape:label="HMI:Input@/TARGETPRESSURE,0,100" + transform="matrix(0.35865594,0,0,0.35865594,22.072155,63.074421)"> + <text + inkscape:label="value" + id="text5151" + y="218.24219" + x="136.32812" + style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:1px" + y="218.24219" + x="136.32812" + id="tspan5149" + sodipodi:role="line">8888</tspan></text> + <path + transform="scale(1,-1)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path89" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="-216.2599" + sodipodi:r1="59.825443" + sodipodi:r2="29.912722" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z" + inkscape:transform-center-y="14.956363" + inkscape:label="-100" /> + <path + inkscape:label="-10" + inkscape:transform-center-y="7.4781812" + d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="14.956361" + sodipodi:r1="29.912722" + sodipodi:cy="-184.98808" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path88" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" + transform="scale(1,-1)" /> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect85" + width="407.7037" + height="128" + x="139.85185" + y="95.40741" + onclick="" + inkscape:label="edit" /> + <path + inkscape:label="+100" + inkscape:transform-center-y="-14.956361" + d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="29.912722" + sodipodi:r1="59.825443" + sodipodi:cy="105.17262" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path87" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" /> + <path + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path86" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="136.44444" + sodipodi:r1="29.912722" + sodipodi:r2="14.956361" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z" + inkscape:transform-center-y="-7.4781804" + inkscape:label="+10" /> + <path + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path91" + sodipodi:sides="4" + sodipodi:cx="80.740723" + sodipodi:cy="165.17262" + sodipodi:r1="57.015106" + sodipodi:r2="29.912722" + sodipodi:arg1="0.77793027" + sodipodi:arg2="1.5633284" + inkscape:flatsided="true" + inkscape:rounded="-0.65084865" + inkscape:randomized="0" + d="M 121.35644,205.1862 C 158.18649,167.80191 3.342862,168.95829 40.72715,205.78834 78.111437,242.61839 76.95506,87.774762 40.125008,125.15905 3.2949549,162.54334 158.13858,161.38696 120.7543,124.55691 83.370008,87.726855 84.526385,242.57048 121.35644,205.1862 Z" + inkscape:transform-center-y="-14.956361" + inkscape:label="=0" /> + </g> + <text + inkscape:label="HMI:Display@/PUMP0/PRESSURE" + id="text823" + y="141.34827" + x="293.33374" + style="font-style:normal;font-weight:normal;font-size:57.38494873px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.35865593px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="fill:#ffffff;fill-opacity:1;stroke-width:0.35865593px" + y="141.34827" + x="293.33374" + id="tspan821" + sodipodi:role="line">8888</tspan></text> + <g + id="g4523" + transform="matrix(2.1611542,0,0,2.1611542,142.76714,468.92423)" + inkscape:label="HMI:Meter@/PUMP0/SLOTH"> + <path + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#3ee800;stroke-width:26.45833397;stroke-miterlimit:4;stroke-dasharray:2.64583333, 2.64583333;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path4499" + sodipodi:type="arc" + sodipodi:cx="128.02208" + sodipodi:cy="2.2017097" + sodipodi:rx="64.411957" + sodipodi:ry="64.411957" + sodipodi:start="3.1415927" + sodipodi:end="4.712389" + d="M 63.610123,2.2017068 A 64.411957,64.411957 0 0 1 128.02208,-62.210247" + sodipodi:open="true" + inkscape:label="range" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#ff3000;stroke-width:2.96333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0, 32.59666667;stroke-dashoffset:29.63333321;stroke-opacity:1;marker-end:url(#Arrow2Lend)" + d="M 130.96206,4.0725977 79.111776,-41.363223" + id="path4501" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" + inkscape:label="needle" /> + <text + inkscape:label="min" + id="text4505" + y="4.9187088" + x="49.132977" + style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="text-align:end;text-anchor:end;fill:#ff6600;stroke-width:0.26458332px" + y="4.9187088" + x="49.132977" + id="tspan4503" + sodipodi:role="line">0</tspan></text> + <text + inkscape:label="max" + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="127.48073" + y="-78.144218" + id="text4509"><tspan + sodipodi:role="line" + id="tspan4507" + x="127.48073" + y="-78.144218" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px">10000</tspan></text> + <text + inkscape:label="value" + id="text4517" + y="-6.1937833" + x="113.53007" + style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + id="tspan4515" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px" + y="-6.1937833" + x="113.53007" + sodipodi:role="line">000</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:7.5467205px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="124.77896" + y="1.1408259" + id="text4521" + inkscape:label="unit"><tspan + sodipodi:role="line" + x="124.77896" + y="1.1408259" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px" + id="tspan4519">bar</tspan></text> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:14.34623718px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:0.35865593px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="114.11434" + y="90.742165" + id="text827" + inkscape:label="setpoint_label"><tspan + sodipodi:role="line" + id="tspan825" + x="114.11434" + y="90.742165" + style="stroke-width:0.35865593px">SetPoint</tspan></text> + <text + id="text831" + y="90.742165" + x="344.50876" + style="font-style:normal;font-weight:normal;font-size:14.34623718px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.35865593px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + inkscape:label="actual_label"><tspan + y="90.742165" + x="344.50876" + id="tspan829" + sodipodi:role="line" + style="stroke-width:0.35865593px">Actual</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:22.87221527px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.57180536px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="206.73413" + y="336.90073" + id="text4497" + inkscape:label="pressure_label"><tspan + sodipodi:role="line" + id="tspan4495" + x="206.73413" + y="336.90073" + style="fill:#ff6600;stroke-width:0.57180536px">Pressure</tspan></text> + <g + id="layer4" + inkscape:label="HMI:Lang:cn" + style="display:none" + inkscape:groupmode="layer"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:80px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:vertical-lr;text-anchor:middle;display:inline;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="83.669571" + y="136.78285" + id="text948-6" + inkscape:label="setpoint_label"><tspan + sodipodi:role="line" + id="tspan946-2" + x="136.78285" + y="83.669571" + style="stroke-width:1px">设定值</tspan></text> + <text + id="text952-9" + y="137.16286" + x="703.711" + style="font-style:normal;font-weight:normal;font-size:80px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;writing-mode:vertical-lr;display:inline;fill:#008000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + inkscape:label="actual_label"><tspan + y="703.711" + x="137.16286" + id="tspan950-1" + sodipodi:role="line" + style="text-align:center;writing-mode:vertical-lr;text-anchor:middle;stroke-width:1px">当å‰å€¼</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:80px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;writing-mode:vertical-lr;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="480.61847" + y="278.37503" + id="text956-2" + inkscape:label="pressure_label"><tspan + sodipodi:role="line" + id="tspan954-7" + x="278.37503" + y="480.61847" + style="writing-mode:vertical-lr;fill:#ff6600;stroke-width:0.99999994px">压力</tspan></text> + <text + inkscape:label="setting_jmp" + id="text1097" + y="656.98151" + x="1090.7626" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px" + y="656.98151" + x="1090.7626" + id="tspan1095" + sodipodi:role="line">设置</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="1090.7626" + y="1436.9814" + id="text1101" + inkscape:label="home_jmp"><tspan + sodipodi:role="line" + x="1090.7626" + y="1436.9814" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px" + id="tspan1107">家</tspan></text> + </g> + <g + id="layer2" + inkscape:label="HMI:Lang:fr" + style="display:none" + inkscape:groupmode="layer"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="340.9082" + y="77.142853" + id="text948" + inkscape:label="setpoint_label"><tspan + sodipodi:role="line" + id="tspan946" + x="340.9082" + y="77.142853">Valeur de consigne</tspan></text> + <text + id="text952" + y="77.142853" + x="960.9082" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#008000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + inkscape:label="actual_label"><tspan + y="77.142853" + x="960.9082" + id="tspan950" + sodipodi:role="line" + style="text-align:center;text-anchor:middle">Valeur courante</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="420.37848" + y="399.41504" + id="text956" + inkscape:label="pressure_label"><tspan + sodipodi:role="line" + id="tspan954" + x="420.37848" + y="399.41504" + style="fill:#ff6600;stroke-width:0.99999994px">Pression</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="1090.7626" + y="656.98151" + id="setting_jmp-0" + inkscape:label="setting_jmp"><tspan + sodipodi:role="line" + id="tspan1024-9" + x="1090.7626" + y="656.98151" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px">Settings</tspan></text> + <text + inkscape:label="home_jmp" + id="home_jmp-3" + y="1436.9814" + x="1090.7626" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px" + y="1436.9814" + x="1090.7626" + id="tspan1028-6" + sodipodi:role="line">Home</tspan></text> + </g> + <g + id="layer3" + inkscape:label="HMI:Lang:si" + style="display:inline" + inkscape:groupmode="layer"> + <text + id="text930" + y="77.142853" + x="338.67188" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + inkscape:label="setpoint_label"><tspan + y="77.142853" + x="338.67188" + id="tspan928" + sodipodi:role="line">nastavljena vrednost</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#008000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="959.38477" + y="77.142853" + id="text934" + inkscape:label="actual_label"><tspan + sodipodi:role="line" + id="tspan932" + x="959.38477" + y="77.142853">dejanska vrednost</tspan></text> + <text + id="text938" + y="399.41504" + x="420.37848" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + inkscape:label="pressure_label"><tspan + style="fill:#ff6600;stroke-width:0.99999994px" + y="399.41504" + x="420.37848" + id="tspan936" + sodipodi:role="line">pritisk</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="1090.7626" + y="656.98151" + id="setting_jmp-06" + inkscape:label="setting_jmp"><tspan + sodipodi:role="line" + id="tspan1024-2" + x="1090.7626" + y="656.98151" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px">Settings</tspan></text> + <text + inkscape:label="home_jmp" + id="home_jmp-6" + y="1436.9814" + x="1090.7626" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px" + y="1436.9814" + x="1090.7626" + id="tspan1028-1" + sodipodi:role="line">Home</tspan></text> + </g> + <g + inkscape:label="HMI:Meter@/PUMP0/SLOTH" + transform="matrix(7.5590552,0,0,7.5590552,-244.3956,1321.2434)" + id="g110"> + <path + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="M 113.38908,2.2017068 V -62.210247" + id="path90" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" + inkscape:label="range" /> + <path + inkscape:label="needle" + sodipodi:nodetypes="cc" + inkscape:connector-curvature="0" + id="path92" + d="M 113.38908,4.0725977 V -62.210247" + style="fill:none;fill-rule:evenodd;stroke:url(#linearGradient964);stroke-width:13.22916698;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:29.63333321;stroke-opacity:1" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.29166651px;line-height:125%;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="115.07632" + y="9.3424692" + id="text96" + inkscape:label="min"><tspan + sodipodi:role="line" + id="tspan94" + x="115.07632" + y="9.3424692" + style="text-align:end;text-anchor:end;fill:#ff6600;stroke-width:0.26458332px">0</tspan></text> + <text + id="text100" + y="-64.195457" + x="113.27539" + style="font-style:normal;font-weight:normal;font-size:5.29166651px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + inkscape:label="max"><tspan + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px" + y="-64.195457" + x="113.27539" + id="tspan98" + sodipodi:role="line">10000</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-20.624428" + y="-109.67243" + id="text104" + inkscape:label="value" + transform="rotate(90)"><tspan + sodipodi:role="line" + x="-20.624428" + y="-109.67243" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px" + id="tspan102">000</tspan></text> + <text + inkscape:label="unit" + id="text108" + y="-9.4425077" + x="140.65398" + style="font-style:normal;font-weight:normal;font-size:7.5467205px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + id="tspan106" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px" + y="-9.4425077" + x="140.65398" + sodipodi:role="line">€£$Â¥</tspan></text> + </g> + <g + inkscape:label="HMI:Input@/TARGETPRESSURE" + id="g991" + transform="matrix(0.5,0,0,0.5,230.11026,885.7162)" + style="stroke-width:2"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="136.32812" + y="218.24219" + id="text977" + inkscape:label="value"><tspan + sodipodi:role="line" + id="tspan975" + x="136.32812" + y="218.24219" + style="stroke-width:2px">8888</tspan></text> + <rect + inkscape:label="edit" + onclick="" + y="95.40741" + x="139.85185" + height="128" + width="407.7037" + id="rect983" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <g + id="g1086" + inkscape:label="=0" + transform="translate(-416.52022,170.47452)" + style="stroke-width:2"> + <path + inkscape:connector-curvature="0" + id="path989" + d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z" + inkscape:transform-center-y="-14.956361" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <text + id="text1048" + y="111.05016" + x="733.58197" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:1px" + y="111.05016" + x="733.58197" + id="tspan1046" + sodipodi:role="line">→0â†</tspan></text> + </g> + <g + id="g1091" + inkscape:label="-10" + transform="translate(-416.52022,170.47452)" + style="stroke-width:2"> + <path + inkscape:transform-center-x="14.956371" + inkscape:transform-center-y="-3.6154501e-05" + d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="14.956361" + sodipodi:r1="29.912722" + sodipodi:cy="-184.98808" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path981" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" + transform="matrix(0,-2.0000001,1.9999999,0,1034.195,1298.6541)" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="633.09552" + y="111.05016" + id="text1059"><tspan + sodipodi:role="line" + id="tspan1057" + x="633.09552" + y="111.05016" + style="stroke-width:1px">-10</tspan></text> + </g> + <g + id="g1096" + inkscape:label="-100" + transform="translate(-416.52022,170.47452)" + style="stroke-width:2"> + <path + inkscape:transform-center-x="14.956364" + transform="rotate(-90,746.45698,-44.543641)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path979" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="-216.2599" + sodipodi:r1="59.825443" + sodipodi:r2="29.912722" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z" + inkscape:transform-center-y="-5.9989963e-06" /> + <text + id="text1063" + y="111.05016" + x="537.25018" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:1px" + y="111.05016" + x="537.25018" + id="tspan1061" + sodipodi:role="line">-100</tspan></text> + </g> + <g + id="g1076" + inkscape:label="+100" + transform="translate(-416.52022,170.47452)" + style="stroke-width:2"> + <path + inkscape:transform-center-x="-14.956365" + transform="matrix(0,-1,-1,0,1043.9134,701.91334)" + inkscape:transform-center-y="-5.5023185e-06" + d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="29.912722" + sodipodi:r1="59.825443" + sodipodi:cy="105.17262" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path985" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" /> + <text + id="text1067" + y="111.05016" + x="925.82605" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:1px" + y="111.05016" + x="925.82605" + id="tspan1065" + sodipodi:role="line">+100</tspan></text> + </g> + <g + id="g1081" + inkscape:label="+10" + transform="translate(-416.52022,170.47452)" + style="stroke-width:2"> + <path + inkscape:transform-center-x="-14.956349" + transform="matrix(0,-2.0000001,-1.9999999,0,1122.1514,1298.6541)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path987" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="136.44444" + sodipodi:r1="29.912722" + sodipodi:r2="14.956361" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z" + inkscape:transform-center-y="-3.3040441e-05" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="842.71497" + y="111.05016" + id="text1071"><tspan + sodipodi:role="line" + id="tspan1069" + x="842.71497" + y="111.05016" + style="stroke-width:1px">+10</tspan></text> + </g> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#82ff77;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;" + x="736.32812" + y="1478.2422" + id="text995" + inkscape:label="HMI:Display@/PUMP0/PRESSURE"><tspan + sodipodi:role="line" + id="tspan993" + x="736.32812" + y="1478.2422" + style="fill:#82ff77;fill-opacity:1;stroke-width:1px;">8888</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:45.74443054px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.28590268px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="28.181862" + y="365.32291" + id="text134" + inkscape:label="HMI:Display@/PUMP0/STROUT"><tspan + sodipodi:role="line" + id="tspan132" + x="28.181862" + y="365.32291" + style="fill:#ffffff;fill-opacity:1;stroke-width:0.28590268px">8888</tspan></text> + <text + inkscape:label="HMI:Display@/PUMP0/BOOLOUT" + id="text138" + y="422.50345" + x="28.181862" + style="font-style:normal;font-weight:normal;font-size:45.74443054px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.28590268px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="fill:#ffffff;fill-opacity:1;stroke-width:0.28590268px" + y="422.50345" + x="28.181862" + id="tspan136" + sodipodi:role="line">8888</tspan></text> + <g + transform="matrix(0.28590269,0,0,0.28590269,0.70444171,226.1427)" + id="g208-1" + inkscape:label="HMI:Input@/PUMP0/STRIN" + style="stroke-width:2"> + <text + inkscape:label="value" + id="text164" + y="218.24219" + x="136.32812" + style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:2px" + y="218.24219" + x="136.32812" + id="tspan162" + sodipodi:role="line">8888</tspan></text> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect166" + width="407.7037" + height="128" + x="139.85185" + y="95.40741" + onclick="" + inkscape:label="edit" /> + <g + transform="translate(-416.52022,170.47452)" + inkscape:label="+"dhu"" + id="g174" + style="stroke-width:2"> + <path + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + inkscape:transform-center-y="-14.956361" + d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z" + id="path168" + inkscape:connector-curvature="0" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="733.58197" + y="111.05016" + id="text172"><tspan + sodipodi:role="line" + id="tspan170" + x="733.58197" + y="111.05016" + style="stroke-width:1px">dhu</tspan></text> + </g> + <g + transform="translate(-416.52022,170.47452)" + inkscape:label="="plop"" + id="g182" + style="stroke-width:2"> + <path + transform="matrix(0,-2.0000001,1.9999999,0,1034.195,1298.6541)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path176" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="-184.98808" + sodipodi:r1="29.912722" + sodipodi:r2="14.956361" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z" + inkscape:transform-center-y="-3.6154501e-05" + inkscape:transform-center-x="14.956371" /> + <text + id="text180" + y="111.05016" + x="633.09552" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:1px" + y="111.05016" + x="633.09552" + id="tspan178" + sodipodi:role="line">plop</tspan></text> + </g> + <g + transform="translate(-416.52022,170.47452)" + inkscape:label="="mhoo"" + id="g190" + style="stroke-width:2"> + <path + inkscape:transform-center-y="-5.9989963e-06" + d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="29.912722" + sodipodi:r1="59.825443" + sodipodi:cy="-216.2599" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path184" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" + transform="rotate(-90,746.45698,-44.543641)" + inkscape:transform-center-x="14.956364" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="537.25018" + y="111.05016" + id="text188"><tspan + sodipodi:role="line" + id="tspan186" + x="537.25018" + y="111.05016" + style="stroke-width:1px">mhoo</tspan></text> + </g> + <g + transform="translate(-416.52022,170.47452)" + inkscape:label="="yodl"" + id="g198" + style="stroke-width:2"> + <path + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path192" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="105.17262" + sodipodi:r1="59.825443" + sodipodi:r2="29.912722" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z" + inkscape:transform-center-y="-5.5023185e-06" + transform="matrix(0,-1,-1,0,1043.9134,701.91334)" + inkscape:transform-center-x="-14.956365" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="925.82605" + y="111.05016" + id="text196"><tspan + sodipodi:role="line" + id="tspan194" + x="925.82605" + y="111.05016" + style="stroke-width:1px">yodl</tspan></text> + </g> + <g + transform="translate(-416.52022,170.47452)" + inkscape:label="="mhe"" + id="g206-1" + style="stroke-width:2"> + <path + inkscape:transform-center-y="-3.3040441e-05" + d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="14.956361" + sodipodi:r1="29.912722" + sodipodi:cy="136.44444" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path200" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" + transform="matrix(0,-2.0000001,-1.9999999,0,1122.1514,1298.6541)" + inkscape:transform-center-x="-14.956349" /> + <text + id="text204" + y="111.05016" + x="842.71497" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:1px" + y="111.05016" + x="842.71497" + id="tspan202" + sodipodi:role="line">mhe</tspan></text> + </g> + </g> + <g + inkscape:label="HMI:Keypad:HMI_INT:HMI_REAL" + id="g2432" + style="fill-rule:evenodd;stroke-width:0.47631353" + transform="matrix(3.3549332,0,0,3.14525,-181.87457,2336.0198)"> + <path + sodipodi:nodetypes="ccccc" + inkscape:label="Background" + inkscape:connector-curvature="0" + id="path2136" + d="M 54.211099,1.2654702 H 435.73881 V 230.18209 H 54.211099 Z" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.6;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.16776976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <rect + ry="3.8152773" + rx="3.8152773" + y="15.77106" + x="64.024963" + height="30.150299" + width="361.89996" + id="rect2426" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#fffff5;fill-opacity:1;fill-rule:nonzero;stroke:#202326;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + inkscape:label="Field" /> + <text + id="text2430" + y="37.408375" + x="72.50132" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.0763855px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.47690967px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + inkscape:label="Value"><tspan + style="text-align:start;text-anchor:start;stroke-width:0.47690967px" + y="37.408375" + x="72.50132" + id="tspan2428" + sodipodi:role="line">number</tspan></text> + <g + style="fill-rule:evenodd;stroke-width:0.13585199" + inkscape:label="Enter" + id="g4947" + transform="matrix(1.6700128,0,0,1.6700128,-826.83854,-145.60855)"> + <path + style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.10074362;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path193" + d="m 750,175 c 0,-2 -1,-3 -3,-3 h -20 c -1,0 -3,1 -3,3 v 43 c 0,1 2,2 3,2 h 20 c 2,0 3,-1 3,-2 z" + inkscape:connector-curvature="0" /> + <path + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="m -1244.2949,1166.5938 v 15.791 h -38.6875 v -2.9981 l -6.9199,4 6.9199,4 v -2.998 h 40.6836 v -17.7949 z" + transform="matrix(0.28557246,0,0,0.28557246,1098.7155,-140.51013)" + id="path6545-4" + inkscape:connector-curvature="0" /> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.13585199" + inkscape:label="Keys" + id="g4993" + transform="matrix(1.6700128,0,0,1.6700128,-826.83854,-145.60855)"> + <g + style="stroke-width:0.13585199" + inkscape:label="7" + id="g4892"> + <path + inkscape:connector-curvature="0" + d="m 638,120 h 20 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z" + id="path163" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text331" + y="129.38269" + x="636.4165" + transform="scale(1.0007154,0.99928514)">7</text> + </g> + <g + style="stroke-width:0.13585199" + inkscape:label="4" + id="g4907"> + <path + inkscape:connector-curvature="0" + d="m 638,146 h 20 c 2,0 3,1 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + id="path169" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text335" + y="154.10822" + x="636.4165" + transform="scale(1.0007154,0.99928514)">4</text> + </g> + <g + style="stroke-width:0.13585199" + inkscape:label="1" + id="g4922"> + <path + inkscape:connector-curvature="0" + d="m 638,172 h 20 c 2,0 3,1 3,3 v 17 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -17 c 0,-2 2,-3 3,-3 z" + id="path175" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text339" + y="179.82285" + x="636.4165" + transform="scale(1.0007154,0.99928514)">1</text> + </g> + <g + style="stroke-width:0.13585199" + inkscape:label="8" + id="g4897"> + <path + inkscape:connector-curvature="0" + d="m 668,120 h 19 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -19 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z" + id="path165" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text347" + y="129.38269" + x="667.07562" + transform="scale(1.0007154,0.99928514)">8</text> + </g> + <g + style="stroke-width:0.13585199" + inkscape:label="5" + id="g4912"> + <path + inkscape:connector-curvature="0" + d="m 668,146 h 19 c 2,0 3,1 3,3 v 18 c 0,2 -1,3 -3,3 h -19 c -1,0 -3,-1 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + id="path171" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text351" + y="154.10822" + x="667.07562" + transform="scale(1.0007154,0.99928514)">5</text> + </g> + <g + style="stroke-width:0.13585199" + inkscape:label="2" + id="g4927"> + <path + inkscape:connector-curvature="0" + d="m 668,172 h 19 c 2,0 3,1 3,3 v 17 c 0,1 -1,3 -3,3 h -19 c -1,0 -3,-2 -3,-3 v -17 c 0,-2 2,-3 3,-3 z" + id="path177" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text355" + y="179.82285" + x="667.07562" + transform="scale(1.0007154,0.99928514)">2</text> + </g> + <g + style="stroke-width:0.13585199" + inkscape:label="9" + id="g4902"> + <path + inkscape:connector-curvature="0" + d="m 697,120 h 20 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z" + id="path167" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text363" + y="129.38269" + x="695.75708" + transform="scale(1.0007154,0.99928514)">9</text> + </g> + <g + style="stroke-width:0.13585199" + inkscape:label="6" + id="g4917"> + <path + inkscape:connector-curvature="0" + d="m 697,146 h 20 c 2,0 3,1 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + id="path173" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text367" + y="154.10822" + x="695.75708" + transform="scale(1.0007154,0.99928514)">6</text> + </g> + <g + style="stroke-width:0.13585199" + inkscape:label="3" + id="g4932"> + <path + inkscape:connector-curvature="0" + d="m 697,172 h 20 c 2,0 3,1 3,3 v 17 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -17 c 0,-2 2,-3 3,-3 z" + id="path179" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text371" + y="179.82285" + x="695.75708" + transform="scale(1.0007154,0.99928514)">3</text> + </g> + <g + style="stroke-width:0.13585199" + inkscape:label="0" + id="g4937"> + <path + inkscape:connector-curvature="0" + d="m 638,220 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 h 49 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 z" + id="path373" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text377" + y="205.53712" + x="636.4165" + transform="scale(1.0007154,0.99928514)">0</text> + </g> + </g> + <g + id="g3113" + inkscape:label="Esc" + transform="translate(-318.22576)"> + <path + style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path167-3" + d="m 387.26079,54.792986 h 33.40019 c 3.34,0 5.01006,3.34003 5.01006,5.010045 v 30.060225 c 0,3.340029 -1.67006,5.010032 -5.01006,5.010032 h -33.40019 c -1.67006,0 -5.01007,-1.670003 -5.01007,-5.010032 V 59.803031 c 0,-1.670015 3.34001,-5.010045 5.01007,-5.010045 z" + inkscape:connector-curvature="0" /> + <text + x="394.42801" + y="78.632088" + id="text469-4" + style="font-weight:normal;font-size:10.63882256px;font-family:Arial;fill:#ffffff;fill-rule:evenodd;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928511)">Esc</text> + </g> + <g + id="g3109" + inkscape:label="BackSpace" + transform="translate(0,-43.420332)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path173-1" + d="m 387.26079,98.213318 h 33.40019 c 3.34,0 5.01006,1.670013 5.01006,5.010032 v 30.06024 c 0,3.34002 -1.67006,5.01003 -5.01006,5.01003 h -33.40019 c -1.67006,0 -5.01007,-1.67001 -5.01007,-5.01003 v -30.06024 c 0,-3.340019 3.34001,-5.010032 5.01007,-5.010032 z" + inkscape:connector-curvature="0" /> + <path + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#2b2828;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="m -1278.9668,1041.3047 -6.9199,4 6.9199,4 v -3 h 33.416 v -1.9981 h -33.416 z" + transform="matrix(0.47690966,0,0,0.47690966,1008.0304,-380.26227)" + id="path11623-1-0-2" + inkscape:connector-curvature="0" /> + </g> + <g + id="g787" + inkscape:label="Sign" + style="fill-rule:evenodd;stroke-width:0.13585199" + transform="matrix(1.6700128,0,0,1.6700128,-678.20742,-102.18822)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path781" + d="m 638,120 h 20 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z" + inkscape:connector-curvature="0" /> + <text + x="642.1239" + y="135.09822" + id="text783" + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + transform="scale(1.0007154,0.99928514)">+/-</text> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.31375408px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.30784383px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="252.9579" + y="12.333653" + id="text509" + transform="scale(0.96824589,1.0327955)" + inkscape:label="Info"><tspan + sodipodi:role="line" + id="tspan507" + x="252.9579" + y="12.333653" + style="stroke-width:0.30784383px">information</tspan></text> + <g + transform="matrix(1.6700128,0,0,1.6700128,-826.83854,-145.60856)" + style="fill-rule:evenodd;stroke-width:0.13585199" + id="g4942" + inkscape:label="NumDot"> + <path + inkscape:connector-curvature="0" + d="m 697,197 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z" + id="path181" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:6.96602964px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989" + id="text771" + y="204.54802" + x="696.7464" + transform="scale(1.0007154,0.99928514)">.</text> + </g> + </g> + <g + transform="matrix(3.3549332,0,0,3.14525,-181.87457,1556.0198)" + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4278" + inkscape:label="HMI:Keypad:HMI_STRING:HMI_LOCAL:PAGE_LOCAL"> + <path + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.6;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.16776976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="M 54.211084,1.2654702 H 435.7388 V 230.18209 H 54.211084 Z" + id="rect1006-3" + inkscape:connector-curvature="0" + inkscape:label="Background" + sodipodi:nodetypes="ccccc" /> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path185" + d="m 162,197 h -11 c -2,0 -3,1 -3,3 v 18 c 0,2 1,3 3,3 h 11 168 18 c 0,0 1,-1 1,-3 v -18 c 0,-2 -1,-3 -1,-3 h -18 z" + inkscape:connector-curvature="0" + inkscape:label="Space" /> + <g + id="g4380" + inkscape:label="Keys" + style="stroke-width:0.47631353" + transform="translate(0,-19.076386)"> + <g + id="g4283" + inkscape:label="q Q" + style="stroke-width:0.47631353" + transform="translate(0,-9.5381931)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path41" + d="m 95,121 h 19 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 H 95 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + inkscape:connector-curvature="0" /> + <text + x="99.378708" + y="138.28395" + id="text203" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928514)">Q</text> + </g> + <g + id="g4337" + inkscape:label="w W" + style="stroke-width:0.47631353" + transform="translate(0,-9.5381931)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path43" + d="m 124,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + inkscape:connector-curvature="0" /> + <text + x="127.0709" + y="138.28395" + id="text207" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928514)">W</text> + </g> + <g + id="g4332" + inkscape:label="e E" + style="stroke-width:0.47631353" + transform="translate(0,-9.5381931)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path45" + d="m 154,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + inkscape:connector-curvature="0" /> + <text + x="159.70854" + y="138.28395" + id="text211" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928514)">E</text> + </g> + <g + id="g4326" + inkscape:label="r R" + style="stroke-width:0.47631353" + transform="translate(0,-9.5381931)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path47" + d="m 184,121 h 19 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -19 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + inkscape:connector-curvature="0" /> + <text + x="188.39003" + y="138.28395" + id="text215" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928514)">R</text> + </g> + <g + id="g4321" + inkscape:label="t T" + style="stroke-width:0.47631353" + transform="translate(0,-9.5381931)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path49" + d="m 213,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z" + inkscape:connector-curvature="0" /> + <text + x="219.04961" + y="138.28395" + id="text219" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928514)">T</text> + </g> + <g + id="g4316" + inkscape:label="y Y" + style="stroke-width:0.47631353" + transform="translate(0,-9.5381931)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path51" + d="m 243,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z" + inkscape:connector-curvature="0" /> + <text + x="248.72017" + y="138.28395" + id="text223" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928514)">Y</text> + </g> + <g + id="g4311" + inkscape:label="u U" + style="stroke-width:0.47631353" + transform="translate(0,-9.5381931)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path53" + d="m 273,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z" + inkscape:connector-curvature="0" /> + <text + x="278.39075" + y="138.28395" + id="text227" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928514)">U</text> + </g> + <g + id="g4306" + inkscape:label="i I" + style="stroke-width:0.47631353" + transform="translate(0,-9.5381931)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path55" + d="m 302,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z" + inkscape:connector-curvature="0" /> + <text + x="311.02859" + y="138.28395" + id="text231" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928514)">I</text> + </g> + <g + id="g4301" + inkscape:label="o O" + style="stroke-width:0.47631353" + transform="translate(0,-9.5381931)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path57" + d="m 332,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z" + inkscape:connector-curvature="0" /> + <text + x="336.74319" + y="138.28395" + id="text235" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928514)">O</text> + </g> + <g + id="g4296" + inkscape:label="p P" + style="stroke-width:0.47631353" + transform="translate(0,-9.5381931)"> + <path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path59" + d="m 362,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z" + inkscape:connector-curvature="0" /> + <text + x="367.40256" + y="138.28395" + id="text239" + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928514)">P</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4511" + inkscape:label="a A"> + <path + inkscape:connector-curvature="0" + d="m 103,147 h 19 c 1,0 3,1 3,2 v 19 c 0,1 -2,2 -3,2 h -19 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z" + id="path65" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text243" + y="163.99854" + x="107.29005" + transform="scale(1.0007154,0.99928514)">A</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4516" + inkscape:label="s S"> + <path + inkscape:connector-curvature="0" + d="m 132,147 h 20 c 1,0 3,1 3,2 v 19 c 0,1 -2,2 -3,2 h -20 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z" + id="path67" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text247" + y="163.99854" + x="137.95012" + transform="scale(1.0007154,0.99928514)">S</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4521" + inkscape:label="d D"> + <path + inkscape:connector-curvature="0" + d="m 162,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z" + id="path69" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text251" + y="163.99854" + x="166.63159" + transform="scale(1.0007154,0.99928514)">D</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4526" + inkscape:label="f F"> + <path + inkscape:connector-curvature="0" + d="m 192,147 h 19 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -19 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z" + id="path71" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text255" + y="163.99854" + x="197.29166" + transform="scale(1.0007154,0.99928514)">F</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4531" + inkscape:label="g G"> + <path + inkscape:connector-curvature="0" + d="m 221,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z" + id="path73" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text259" + y="163.99854" + x="225.97284" + transform="scale(1.0007154,0.99928514)">G</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4536" + inkscape:label="h H"> + <path + inkscape:connector-curvature="0" + d="m 251,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z" + id="path75" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text263" + y="163.99854" + x="255.64342" + transform="scale(1.0007154,0.99928514)">H</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4541" + inkscape:label="j J"> + <path + inkscape:connector-curvature="0" + d="m 281,147 h 19 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -19 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z" + id="path77" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text267" + y="163.99854" + x="287.29208" + transform="scale(1.0007154,0.99928514)">J</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4546" + inkscape:label="k K"> + <path + inkscape:connector-curvature="0" + d="m 310,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z" + id="path79" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text271" + y="163.99854" + x="314.98465" + transform="scale(1.0007154,0.99928514)">K</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4551" + inkscape:label="l L"> + <path + inkscape:connector-curvature="0" + d="m 340,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z" + id="path81" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text275" + y="163.99854" + x="345.64444" + transform="scale(1.0007154,0.99928514)">L</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4586" + inkscape:label="z Z" + transform="translate(0,9.5381929)"> + <path + inkscape:connector-curvature="0" + d="m 113,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 z" + id="path87-3" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text279" + y="188.72411" + x="119.15855" + transform="scale(1.0007154,0.99928514)">Z</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4581" + inkscape:label="x X" + transform="translate(0,9.5381929)"> + <path + inkscape:connector-curvature="0" + d="m 143,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 z" + id="path89-6" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text283" + y="188.72411" + x="148.82933" + transform="scale(1.0007154,0.99928514)">X</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4576" + inkscape:label="c C" + transform="translate(0,9.5381929)"> + <path + inkscape:connector-curvature="0" + d="m 173,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 z" + id="path91-7" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text287" + y="188.72411" + x="178.50011" + transform="scale(1.0007154,0.99928514)">C</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4571" + inkscape:label="v V" + transform="translate(0,9.5381929)"> + <path + inkscape:connector-curvature="0" + d="m 202,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c 0,0 -1,-1 -1,-3 v -17 c 0,-1 1,-3 1,-3 z" + id="path195" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text291" + y="188.72411" + x="208.16988" + transform="scale(1.0007154,0.99928514)">V</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4566" + inkscape:label="b B" + transform="translate(0,9.5381929)"> + <path + inkscape:connector-curvature="0" + d="m 233,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z" + id="path93" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text295" + y="188.72411" + x="237.84096" + transform="scale(1.0007154,0.99928514)">B</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4561" + inkscape:label="n N" + transform="translate(0,9.5381929)"> + <path + inkscape:connector-curvature="0" + d="m 263,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z" + id="path95" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text299" + y="188.72411" + x="267.51193" + transform="scale(1.0007154,0.99928514)">N</text> + </g> + <g + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4556" + inkscape:label="m M" + transform="translate(0,9.5381929)"> + <path + inkscape:connector-curvature="0" + d="m 293,172 h 19 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -19 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z" + id="path97" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text303" + y="188.72411" + x="296.1933" + transform="scale(1.0007154,0.99928514)">M</text> + </g> + <g + id="g4818" + inkscape:label=". :" + style="stroke-width:0.47631353" + transform="translate(0,9.5381929)"> + <path + inkscape:connector-curvature="0" + d="m 352,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z" + id="path101" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + transform="scale(1.0007154,0.99928513)" + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826" + id="text719" + y="189.66107" + x="359.58276">.</text> + <text + x="359.58276" + y="181.64532" + id="text4834" + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928512)">:</text> + </g> + <g + id="g4813" + inkscape:label=", ;" + style="stroke-width:0.47631353" + transform="translate(0,9.5381929)"> + <path + inkscape:connector-curvature="0" + d="m 322,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z" + id="path99" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826" + id="text727" + y="181.64532" + x="330.00806" + transform="scale(1.0007154,0.99928512)">;</text> + <text + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826" + y="189.66107" + x="330.00806" + transform="scale(1.0007154,0.99928512)" + id="text4826">,</text> + </g> + <g + style="stroke-width:0.47631353" + inkscape:label="1" + id="g2845" + transform="translate(-13.353469,-45.783327)"> + <path + inkscape:connector-curvature="0" + d="m 95,121 h 19 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 H 95 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + id="path2839" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text2841" + y="138.28395" + x="101.07153" + transform="scale(1.0007154,0.99928513)">1</text> + </g> + <g + style="stroke-width:0.47631353" + inkscape:label="2" + id="g2853" + transform="translate(-13.353469,-45.783327)"> + <path + inkscape:connector-curvature="0" + d="m 124,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + id="path2847" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text2849" + y="138.28395" + x="130.18704" + transform="scale(1.0007154,0.99928513)">2</text> + </g> + <g + inkscape:label="3" + id="g2861" + style="stroke-width:0.47631353" + transform="translate(-13.353469,-45.783327)"> + <path + inkscape:connector-curvature="0" + d="m 154,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + id="path2855" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text2857" + y="138.28395" + x="159.70854" + transform="scale(1.0007154,0.99928514)">3</text> + </g> + <g + id="g2957" + inkscape:label="4" + transform="translate(0,-19.076386)"> + <path + inkscape:connector-curvature="0" + d="m 170.64653,94.293059 h 19 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -19 c -1,0 -3,-2 -3,-3 V 97.293059 c 0,-2 2,-3 3,-3 z" + id="path2865" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text2867" + y="111.55791" + x="176.39188" + transform="scale(1.0007154,0.99928514)">4</text> + </g> + <g + id="g2962" + inkscape:label="5" + transform="translate(0,-19.076386)"> + <path + inkscape:connector-curvature="0" + d="m 199.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z" + id="path2873" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text2875" + y="111.55791" + x="205.70567" + transform="scale(1.0007154,0.99928514)">5</text> + </g> + <g + id="g2967" + inkscape:label="6" + transform="translate(0,-19.076386)"> + <path + inkscape:connector-curvature="0" + d="m 229.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z" + id="path2881" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text2883" + y="111.55791" + x="236.15851" + transform="scale(1.0007154,0.99928514)">6</text> + </g> + <g + id="g2972" + inkscape:label="7" + transform="translate(0,-19.076386)"> + <path + inkscape:connector-curvature="0" + d="m 259.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z" + id="path2889" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text2891" + y="111.55791" + x="266.06564" + transform="scale(1.0007154,0.99928514)">7</text> + </g> + <g + id="g2977" + inkscape:label="8" + transform="translate(0,-19.076386)"> + <path + inkscape:connector-curvature="0" + d="m 288.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z" + id="path2897" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text2899" + y="111.55791" + x="295.08231" + transform="scale(1.0007154,0.99928514)">8</text> + </g> + <g + id="g2982" + inkscape:label="9 -" + transform="translate(0,-19.076386)"> + <path + inkscape:connector-curvature="0" + d="m 318.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z" + id="path2905" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text2907" + y="111.55791" + x="325.05408" + transform="scale(1.0007154,0.99928514)">9</text> + <text + transform="scale(1.0007154,0.99928511)" + x="335.72681" + y="102.42173" + id="text806" + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826">-</text> + </g> + <g + id="g2987" + inkscape:label="0 +" + transform="translate(0,-19.076386)"> + <path + inkscape:connector-curvature="0" + d="m 348.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z" + id="path2913" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text2915" + y="111.55791" + x="355.05984" + transform="scale(1.0007154,0.99928514)">0</text> + <text + transform="scale(1.0007154,0.99928511)" + style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826" + id="text804" + y="102.42173" + x="365.30151">+</text> + </g> + </g> + <g + transform="translate(335.89988,-58.934803)" + id="g3544" + inkscape:label="Esc" + style="stroke-width:0.47631353"> + <path + style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path105" + d="m 47.948645,115.07509 h 39.076386 c 1,0 3,1 3,3 v 18 c 0,1 -2,3 -3,3 H 47.948645 c -2,0 -3,-2 -3,-3 v -18 c 0,-2 1,-3 3,-3 z" + inkscape:connector-curvature="0" + sodipodi:nodetypes="sssssssss" /> + <text + transform="scale(1.0007154,0.99928512)" + style="font-weight:normal;font-size:9.37966251px;font-family:Arial;fill:#ffffff;fill-rule:evenodd;stroke-width:0.36866826" + id="text469" + y="130.02028" + x="59.288635">Esc</text> + </g> + <g + inkscape:label="Enter" + id="g4291" + style="stroke-width:0.47631353" + transform="translate(0,-19.076386)"> + <path + sodipodi:nodetypes="sssssssss" + style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path3616" + d="m 368.68274,170 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 54.24217 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z" + inkscape:connector-curvature="0" /> + <path + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="m -260.23633,1080.8125 v 15.7949 h -38.68555 v -3 l -6.91992,4 6.91992,4 v -3.0019 h 40.6836 v -17.793 z" + transform="matrix(0.47690966,0,0,0.47690966,531.12074,-361.18588)" + id="path6545" + inkscape:connector-curvature="0" /> + </g> + <g + inkscape:label="BackSpace" + id="g4287" + style="fill-rule:evenodd;stroke-width:0.47631353" + transform="translate(2.3648311e-6,-28.614579)"> + <path + sodipodi:nodetypes="sssssssss" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path3624" + d="m 391.97749,144 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 30.94742 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z" + inkscape:connector-curvature="0" /> + <path + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#2b2828;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="m -268.72656,1011.1777 -6.91992,4 6.91992,4 v -3.0019 h 29.18945 v -1.9981 h -29.18945 z" + transform="matrix(0.47690966,0,0,0.47690966,531.12074,-351.64769)" + id="path11623-1-0" + inkscape:connector-curvature="0" /> + </g> + <g + id="g934" + inkscape:label="CapsLock"> + <g + inkscape:label="inactive" + id="g942" + style="display:inline;fill-rule:evenodd;stroke-width:0.47631353" + transform="translate(0,-19.076386)"> + <path + sodipodi:nodetypes="sssssssss" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path936" + d="m 67.025031,170 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 H 92 c 2,0 4,1 4,2 v 19 c 0,1 -2,2 -4,2 z" + inkscape:connector-curvature="0" /> + <text + x="69.789322" + y="156.71973" + id="text938-5" + style="font-weight:normal;font-size:8.66233635px;font-family:Arial;fill:#2b2828;stroke-width:0.36866823" + transform="scale(1.0007154,0.99928515)">Caps</text> + <text + x="69.789322" + y="166.5585" + id="text940" + style="font-weight:normal;font-size:8.66233635px;font-family:Arial;fill:#2b2828;stroke-width:0.36866823" + transform="scale(1.0007154,0.99928515)">Lock</text> + </g> + <g + transform="translate(0,-19.076386)" + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g4429" + inkscape:label="active"> + <path + inkscape:connector-curvature="0" + d="m 67.025031,170 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 H 92 c 2,0 4,1 4,2 v 19 c 0,1 -2,2 -4,2 z" + id="path199" + style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + sodipodi:nodetypes="sssssssss" /> + <text + transform="scale(1.0007154,0.99928515)" + style="font-weight:normal;font-size:8.66233635px;font-family:Arial;fill:#ffffff;stroke-width:0.36866823" + id="text647" + y="156.71973" + x="69.789322">Caps</text> + <text + transform="scale(1.0007154,0.99928515)" + style="font-weight:normal;font-size:8.66233635px;font-family:Arial;fill:#ffffff;stroke-width:0.36866823" + id="text651" + y="166.5585" + x="69.789322">Lock</text> + </g> + </g> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#fffff5;fill-opacity:1;fill-rule:nonzero;stroke:#202326;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect2130" + width="361.89996" + height="30.150299" + x="64.024956" + y="15.771065" + rx="3.8152773" + ry="3.8152773" + inkscape:label="Field" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.0763855px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.47690967px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="72.50132" + y="38.296417" + id="text1309" + inkscape:label="Value"><tspan + sodipodi:role="line" + id="tspan1307" + x="72.50132" + y="38.296417" + style="text-align:start;text-anchor:start;stroke-width:0.47690967px">text</tspan></text> + <g + id="g437" + inkscape:label="Shift"> + <g + id="g421" + inkscape:label="inactive"> + <path + inkscape:connector-curvature="0" + d="m 379.96247,185.46181 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 42.96244 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z" + id="path910" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + sodipodi:nodetypes="sssssssss" /> + <text + style="font-weight:normal;font-size:8.92098808px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" + id="text912" + y="177.90059" + x="392.55679" + transform="scale(1.0007154,0.99928513)">Shift</text> + <path + sodipodi:nodetypes="sssssssss" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path856" + d="m 67.025031,185.46181 c -1,0 -3,-1 -3,-3 v -17 c 0,-1 2,-3 3,-3 H 104 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 z" + inkscape:connector-curvature="0" /> + <text + x="75.85218" + y="177.90059" + id="text858" + style="font-weight:normal;font-size:8.92098808px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826" + transform="scale(1.0007154,0.99928513)">Shift</text> + </g> + <g + id="g413" + inkscape:label="active"> + <path + sodipodi:nodetypes="sssssssss" + style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path551" + d="m 379.96247,185.46181 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 42.96244 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z" + inkscape:connector-curvature="0" /> + <text + transform="scale(1.0007154,0.99928513)" + x="392.55679" + y="177.90059" + id="text629" + style="font-weight:normal;font-size:8.92098808px;font-family:Arial;fill:#ffffff;stroke-width:0.36866826">Shift</text> + <path + inkscape:connector-curvature="0" + d="m 67.025031,185.46181 c -1,0 -3,-1 -3,-3 v -17 c 0,-1 2,-3 3,-3 H 104 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 z" + id="path879" + style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + sodipodi:nodetypes="sssssssss" /> + <text + transform="scale(1.0007154,0.99928513)" + style="font-weight:normal;font-size:8.92098808px;font-family:Arial;fill:#ffffff;fill-rule:evenodd;stroke-width:0.36866826" + id="text881" + y="177.90059" + x="75.85218">Shift</text> + </g> + </g> + <text + transform="scale(0.96824588,1.0327955)" + id="text471" + y="12.333657" + x="252.9579" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.31375408px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.30784383px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + inkscape:label="Info"><tspan + style="stroke-width:0.30784383px" + y="12.333657" + x="252.9579" + id="tspan469" + sodipodi:role="line">information</tspan></text> + </g> + <g + id="g14237" + inkscape:label="HMI:DropDown:1:2:3:4:5:6:7:8:9:10:11:12:13:14:15:16:17:18:19:20:21:22:23:24:25:26:27@/SELECTION" + transform="matrix(0.81491208,0,0,0.81491208,243.6641,-510.30491)" + style="stroke-width:0.35083869"> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#53676c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.75419343;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect14212" + width="391.99988" + height="130.9433" + x="864.00842" + y="923.98993" + rx="2.4558709" + ry="2.4558709" + inkscape:label="box" /> + <rect + inkscape:label="highlight" + ry="2.4558709" + rx="2.4558709" + y="943.10553" + x="864.00842" + height="92.71212" + width="391.99988" + id="rect5497" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.75419331;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <text + id="text14183" + y="1011.9975" + x="881.44226" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:80px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#d42aff;fill-opacity:1;stroke:none;stroke-width:0.35083869px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + inkscape:label="text"><tspan + style="text-align:start;text-anchor:start;fill:#d42aff;stroke-width:0.35083869px" + y="1011.9975" + x="881.44226" + sodipodi:role="line" + id="tspan421">sel_0</tspan></text> + <path + sodipodi:type="star" + style="opacity:1;vector-effect:none;fill:#a7a5a6;fill-opacity:1;stroke:none;stroke-width:0.12376806;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path424" + sodipodi:sides="3" + sodipodi:cx="1200.5" + sodipodi:cy="975" + sodipodi:r1="43.683521" + sodipodi:r2="21.841761" + sodipodi:arg1="1.5707963" + sodipodi:arg2="2.6179939" + inkscape:flatsided="false" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 1200.5,1018.6835 -18.9155,-32.76262 -18.9155,-32.76264 37.831,0 37.831,0 -18.9155,32.76264 z" + inkscape:transform-center-y="10.92088" + inkscape:label="button" /> + </g> + <g + id="g14274" + inkscape:label="HMI:List:HoodNames:ForEach:HOOD:NAME@/" /> + <g + inkscape:label="HMI:Input@/SELECTION" + id="g446" + transform="matrix(0.28590269,0,0,0.28590269,85.246911,560.98603)"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="216.32812" + y="218.24219" + id="text432" + inkscape:label="value"><tspan + sodipodi:role="line" + id="tspan430" + x="216.32812" + y="218.24219" + style="text-align:end;text-anchor:end;stroke-width:1px">8</tspan></text> + <path + transform="scale(1,-1)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path436" + sodipodi:sides="3" + sodipodi:cx="276.74072" + sodipodi:cy="-224.98808" + sodipodi:r1="29.912722" + sodipodi:r2="14.956361" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 302.6459,-210.03172 -51.81035,0 25.90517,-44.86908 z" + inkscape:transform-center-y="7.4781812" + inkscape:label="-1" /> + <rect + inkscape:label="edit" + onclick="" + y="95.40741" + x="-174.94055" + height="128" + width="407.7037" + id="rect438" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <path + inkscape:label="+1" + inkscape:transform-center-y="-7.4781804" + d="m 302.6459,111.4008 -51.81035,0 25.90517,-44.869079 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="14.956361" + sodipodi:r1="29.912722" + sodipodi:cy="96.444443" + sodipodi:cx="276.74072" + sodipodi:sides="3" + id="path442" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" /> + <path + inkscape:label="=0" + inkscape:transform-center-y="-10.828983" + d="m 306.14807,189.68763 -58.37872,0.43598 -0.43597,-58.37872 58.37871,-0.43597 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5633284" + sodipodi:arg1="0.77793027" + sodipodi:r2="21.657967" + sodipodi:r1="41.281136" + sodipodi:cy="160.71626" + sodipodi:cx="276.74072" + sodipodi:sides="4" + id="path444" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" + inkscape:transform-center-x="1.0089177e-06" /> + </g> + <g + transform="matrix(0.57180538,0,0,0.57180538,-522.96165,161.69266)" + id="g443" + inkscape:label="HMI:Button@/SELECTION" + style="stroke-width:1"> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect5492" + width="245.44583" + height="95.723877" + x="971.96545" + y="594.82263" + ry="23.930969" + inkscape:label="inactive" + rx="23.930969" /> + <rect + rx="23.930969" + inkscape:label="active" + ry="23.930969" + y="594.82263" + x="971.96545" + height="95.723877" + width="245.44583" + id="rect433" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#fdfdfd;fill-opacity:1;fill-rule:nonzero;stroke:#ffd0b2;stroke-width:28.60938263;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <g + style="stroke-width:1" + inkscape:label="text" + id="g952"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="1090.7626" + y="656.98151" + id="text950" + inkscape:label="setting_jmp"><tspan + sodipodi:role="line" + id="tspan948" + x="1090.7626" + y="656.98151" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px">up</tspan></text> + </g> + </g> + <g + id="g5053" + inkscape:label="HMI:Switch@/PUMP0/BOOLOUT" + transform="translate(43.983597,40.477445)"> + <g + id="g473" + style="fill:#ff0000;stroke:#ff00ff" + inkscape:label="true"> + <path + d="M 825.90067,963.24473 V 1105.042 L 960.08282,916.47893 V 809.26931 Z" + style="fill:#353564;fill-rule:evenodd;stroke:none;stroke-linejoin:round" + id="path3451" + inkscape:connector-curvature="0" /> + <path + d="m 825.90067,1105.042 90.50966,81.6485 121.15167,-225.30346 -77.47918,-44.90811 z" + style="fill:#afafde;fill-rule:evenodd;stroke:none;stroke-linejoin:round" + id="path3453" + inkscape:connector-curvature="0" /> + <path + d="m 960.08282,809.26931 77.47918,36.25625 v 115.86148 l -77.47918,-44.90811 z" + style="fill:#e9e9ff;fill-rule:evenodd;stroke:none;stroke-linejoin:round" + id="path3455" + inkscape:connector-curvature="0" /> + <path + d="M 825.90067,963.24473 916.41033,1029.3537 1037.562,845.52556 960.08282,809.26931 Z" + style="fill:#4d4d9f;fill-rule:evenodd;stroke:none;stroke-linejoin:round" + id="path3457" + inkscape:connector-curvature="0" /> + <path + d="m 916.41033,1029.3537 v 157.3368 L 1037.562,961.38704 V 845.52556 Z" + style="fill:#d7d7ff;fill-rule:evenodd;stroke:none;stroke-linejoin:round" + id="path3459" + inkscape:connector-curvature="0" /> + <path + d="m 825.90067,963.24473 90.50966,66.10897 v 157.3368 l -90.50966,-81.6485 z" + style="fill:#8686bf;fill-rule:evenodd;stroke:none;stroke-linejoin:round" + id="path3461" + inkscape:connector-curvature="0" /> + </g> + <g + id="g501" + style="fill:#ff0000;stroke:#ff00ff" + inkscape:label="false"> + <path + d="M 855.90069,905.24473 V 1047.042 L 978.3745,966.29311 V 859.0835 Z" + style="fill:#353564;fill-rule:evenodd;stroke:none;stroke-linejoin:round" + id="path3437" + inkscape:connector-curvature="0" /> + <path + d="m 855.90069,1047.042 90.50966,81.6485 108.49845,-108.7886 -76.5343,-53.60879 z" + style="fill:#afafde;fill-rule:evenodd;stroke:none;stroke-linejoin:round" + id="path3439" + inkscape:connector-curvature="0" /> + <path + d="m 978.3745,859.0835 76.5343,44.95689 v 115.86151 l -76.5343,-53.60879 z" + style="fill:#e9e9ff;fill-rule:evenodd;stroke:none;stroke-linejoin:round" + id="path3441" + inkscape:connector-curvature="0" /> + <path + d="m 855.90069,905.24473 90.50966,66.10901 108.49845,-67.31335 -76.5343,-44.95689 z" + style="fill:#4d389f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linejoin:round" + id="path3443" + inkscape:connector-curvature="0" /> + <path + d="M 946.41035,971.35374 V 1128.6905 L 1054.9088,1019.9019 V 904.04039 Z" + style="fill:#d78bff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linejoin:round" + id="path3445" + inkscape:connector-curvature="0" /> + <path + d="m 855.90069,905.24473 90.50966,66.10901 v 157.33676 l -90.50966,-81.6485 z" + style="fill:#8667bf;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linejoin:round" + id="path3447" + inkscape:connector-curvature="0" /> + </g> + </g> + <g + transform="matrix(3.3549332,0,0,3.14525,-181.87457,3116.0198)" + style="fill-rule:evenodd;stroke-width:0.47631353" + id="g1490" + inkscape:label="HMI:ModalOKDialog"> + <path + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.6;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.16776976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="M 54.211099,1.2654702 H 435.73881 V 230.18209 H 54.211099 Z" + id="path1386" + inkscape:connector-curvature="0" + inkscape:label="Background" + sodipodi:nodetypes="ccccc" /> + <rect + inkscape:label="Field" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#fffff5;fill-opacity:1;fill-rule:nonzero;stroke:#202326;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect1388" + width="314.68832" + height="68.369255" + x="87.630791" + y="56.041908" + rx="3.8152773" + ry="3.8152773" /> + <text + inkscape:label="Message" + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.0763855px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.47690967px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="243.24242" + y="94.637527" + id="text1392"><tspan + sodipodi:role="line" + id="tspan1390" + x="243.24242" + y="94.637527" + style="text-align:center;text-anchor:middle;stroke-width:0.47690967px">message</tspan></text> + <g + transform="translate(-158.98593,95.381925)" + inkscape:label="OK" + id="g1466"> + <path + inkscape:connector-curvature="0" + d="m 363.41531,54.792986 h 81.09115 c 3.34,0 5.01006,3.34003 5.01006,5.010045 v 30.060225 c 0,3.340029 -1.67006,5.010032 -5.01006,5.010032 h -81.09115 c -1.67006,0 -5.01007,-1.670003 -5.01007,-5.010032 V 59.803031 c 0,-1.670015 3.34001,-5.010045 5.01007,-5.010045 z" + id="path1462" + style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + sodipodi:nodetypes="sssssssss" /> + <text + transform="scale(1.0007154,0.99928511)" + style="font-weight:normal;font-size:10.63882256px;font-family:Arial;fill:#ffffff;fill-rule:evenodd;stroke-width:0.36866826" + id="text1464" + y="78.632088" + x="402.71881"> + <tspan + style="text-align:center;text-anchor:middle" + id="tspan5195">OK</tspan> + </text> + </g> + <text + inkscape:label="Info" + transform="scale(0.96824589,1.0327955)" + id="text1482" + y="12.333653" + x="252.9579" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.31375408px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.30784383px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:0.30784383px" + y="12.333653" + x="252.9579" + id="tspan1480" + sodipodi:role="line">information</tspan></text> + </g> + <g + inkscape:label="HMI:Meter@/PUMP0/SLOTH" + transform="matrix(3.7795276,0,0,3.7795276,1628.51,630.30393)" + id="g1338"> + <path + inkscape:label="range" + sodipodi:open="true" + d="M 63.610123,2.2017068 A 64.411957,64.411957 0 0 1 128.02208,-62.210247" + sodipodi:end="4.712389" + sodipodi:start="3.1415927" + sodipodi:ry="64.411957" + sodipodi:rx="64.411957" + sodipodi:cy="2.2017097" + sodipodi:cx="128.02208" + sodipodi:type="arc" + id="path1318" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#3ee800;stroke-width:26.45833397;stroke-miterlimit:4;stroke-dasharray:2.64583333, 2.64583333;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <path + inkscape:label="needle" + sodipodi:nodetypes="cc" + inkscape:connector-curvature="0" + id="path1320" + d="M 130.96206,4.0725977 79.111776,-41.363223" + style="fill:none;fill-rule:evenodd;stroke:#ff3000;stroke-width:2.96333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:29.63333321;stroke-opacity:1;marker-end:url(#marker1656)" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="49.132977" + y="4.9187088" + id="text1324" + inkscape:label="min"><tspan + sodipodi:role="line" + id="tspan1322" + x="49.132977" + y="4.9187088" + style="text-align:end;text-anchor:end;fill:#ff6600;stroke-width:0.26458332px">0</tspan></text> + <text + id="text1328" + y="-78.144218" + x="127.48073" + style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + inkscape:label="max"><tspan + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px" + y="-78.144218" + x="127.48073" + id="tspan1326" + sodipodi:role="line">10000</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="113.53007" + y="-6.1937833" + id="text1332" + inkscape:label="value"><tspan + sodipodi:role="line" + x="113.53007" + y="-6.1937833" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px" + id="tspan1330">000</tspan></text> + <text + inkscape:label="unit" + id="text1336" + y="1.1408259" + x="124.77896" + style="font-style:normal;font-weight:normal;font-size:7.5467205px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + id="tspan1334" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px" + y="1.1408259" + x="124.77896" + sodipodi:role="line">bar</tspan></text> + </g> + <g + inkscape:label="HMI:Switch@/PUMP0/BOOLOUT" + id="g1368" + transform="translate(1424.3019,-503.18786)"> + <g + id="g1352" + style="fill:#ff0000;stroke:#ff00ff" + inkscape:label="true"> + <path + d="M 825.90072,963.24473 V 1105.042 L 960.08286,916.47892 V 809.26931 Z" + style="fill:#353564;fill-rule:evenodd;stroke:none;stroke-linejoin:round" + id="path3479" + inkscape:connector-curvature="0" /> + <path + d="m 825.90072,1105.042 90.50967,81.6485 121.15161,-225.30347 -77.47914,-44.90811 z" + style="fill:#afafde;fill-rule:evenodd;stroke:none;stroke-linejoin:round" + id="path3481" + inkscape:connector-curvature="0" /> + <path + d="m 960.08286,809.26931 77.47914,36.25624 v 115.86148 l -77.47914,-44.90811 z" + style="fill:#e9e9ff;fill-rule:evenodd;stroke:none;stroke-linejoin:round" + id="path3483" + inkscape:connector-curvature="0" /> + <path + d="M 825.90072,963.24473 916.41039,1029.3537 1037.562,845.52555 960.08286,809.26931 Z" + style="fill:#4d4d9f;fill-rule:evenodd;stroke:none;stroke-linejoin:round" + id="path3485" + inkscape:connector-curvature="0" /> + <path + d="m 916.41039,1029.3537 v 157.3368 L 1037.562,961.38703 V 845.52555 Z" + style="fill:#d7d7ff;fill-rule:evenodd;stroke:none;stroke-linejoin:round" + id="path3487" + inkscape:connector-curvature="0" /> + <path + d="m 825.90072,963.24473 90.50967,66.10897 v 157.3368 l -90.50967,-81.6485 z" + style="fill:#8686bf;fill-rule:evenodd;stroke:none;stroke-linejoin:round" + id="path3489" + inkscape:connector-curvature="0" /> + </g> + <g + id="g1366" + style="fill:#ff0000;stroke:#ff00ff" + inkscape:label="false"> + <path + d="M 855.90072,905.24473 V 1047.042 L 978.37453,966.29311 V 859.08349 Z" + style="fill:#353564;fill-rule:evenodd;stroke:none;stroke-linejoin:round" + id="path3465" + inkscape:connector-curvature="0" /> + <path + d="m 855.90072,1047.042 90.50967,81.6485 108.49841,-108.7886 -76.53427,-53.60879 z" + style="fill:#afafde;fill-rule:evenodd;stroke:none;stroke-linejoin:round" + id="path3467" + inkscape:connector-curvature="0" /> + <path + d="m 978.37453,859.08349 76.53427,44.9569 v 115.86151 l -76.53427,-53.60879 z" + style="fill:#e9e9ff;fill-rule:evenodd;stroke:none;stroke-linejoin:round" + id="path3469" + inkscape:connector-curvature="0" /> + <path + d="m 855.90072,905.24473 90.50967,66.109 108.49841,-67.31334 -76.53427,-44.9569 z" + style="fill:#4d389f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linejoin:round" + id="path3471" + inkscape:connector-curvature="0" /> + <path + d="M 946.41039,971.35373 V 1128.6905 L 1054.9088,1019.9019 V 904.04039 Z" + style="fill:#d78bff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linejoin:round" + id="path3473" + inkscape:connector-curvature="0" /> + <path + d="m 855.90072,905.24473 90.50967,66.109 v 157.33677 l -90.50967,-81.6485 z" + style="fill:#8667bf;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linejoin:round" + id="path3475" + inkscape:connector-curvature="0" /> + </g> + </g> + <g + transform="matrix(0.63690435,0,0,0.63690435,1576.4961,80.355376)" + inkscape:label="HMI:Input@/PUMP0/PRESSURE" + id="g1394"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="136.32812" + y="218.24219" + id="text1380" + inkscape:label="value"><tspan + sodipodi:role="line" + id="tspan1378" + x="136.32812" + y="218.24219" + style="stroke-width:1px">8888</tspan></text> + <path + inkscape:label="-100" + inkscape:transform-center-y="14.956363" + d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="29.912722" + sodipodi:r1="59.825443" + sodipodi:cy="-216.2599" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path1382" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" + transform="scale(1,-1)" /> + <path + transform="scale(1,-1)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path1384" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="-184.98808" + sodipodi:r1="29.912722" + sodipodi:r2="14.956361" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z" + inkscape:transform-center-y="7.4781812" + inkscape:label="-10" /> + <rect + inkscape:label="edit" + onclick="" + y="95.40741" + x="139.85185" + height="128" + width="407.7037" + id="rect1386" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <path + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path1388" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="105.17262" + sodipodi:r1="59.825443" + sodipodi:r2="29.912722" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z" + inkscape:transform-center-y="-14.956361" + inkscape:label="+100" /> + <path + inkscape:label="+10" + inkscape:transform-center-y="-7.4781804" + d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="14.956361" + sodipodi:r1="29.912722" + sodipodi:cy="136.44444" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path1390" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" /> + <path + inkscape:label="=0" + inkscape:transform-center-y="-14.956361" + d="M 121.35644,205.1862 C 158.18649,167.80191 3.342862,168.95829 40.72715,205.78834 78.111437,242.61839 76.95506,87.774762 40.125008,125.15905 3.2949549,162.54334 158.13858,161.38696 120.7543,124.55691 83.370008,87.726855 84.526385,242.57048 121.35644,205.1862 Z" + inkscape:randomized="0" + inkscape:rounded="-0.65084865" + inkscape:flatsided="true" + sodipodi:arg2="1.5633284" + sodipodi:arg1="0.77793027" + sodipodi:r2="29.912722" + sodipodi:r1="57.015106" + sodipodi:cy="165.17262" + sodipodi:cx="80.740723" + sodipodi:sides="4" + id="path1392" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" /> + </g> + <g + style="stroke-width:2" + inkscape:label="HMI:Input@/PUMP0/STRIN" + id="g1442" + transform="matrix(0.5,0,0,0.5,1470.1103,205.71623)"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="136.32812" + y="218.24219" + id="text1398" + inkscape:label="value"><tspan + sodipodi:role="line" + id="tspan1396" + x="136.32812" + y="218.24219" + style="stroke-width:2px">8888</tspan></text> + <rect + inkscape:label="edit" + onclick="" + y="95.40741" + x="139.85185" + height="128" + width="407.7037" + id="rect1400" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <g + style="stroke-width:2" + id="g1408" + inkscape:label="+"dhu"" + transform="translate(-416.52022,170.47452)"> + <path + inkscape:connector-curvature="0" + id="path1402" + d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z" + inkscape:transform-center-y="-14.956361" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <text + id="text1406" + y="111.05016" + x="733.58197" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:1px" + y="111.05016" + x="733.58197" + id="tspan1404" + sodipodi:role="line">dhu</tspan></text> + </g> + <g + style="stroke-width:2" + id="g1416" + inkscape:label="="plop"" + transform="translate(-416.52022,170.47452)"> + <path + inkscape:transform-center-x="14.956371" + inkscape:transform-center-y="-3.6154501e-05" + d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="14.956361" + sodipodi:r1="29.912722" + sodipodi:cy="-184.98808" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path1410" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" + transform="matrix(0,-2.0000001,1.9999999,0,1034.195,1298.6541)" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="633.09552" + y="111.05016" + id="text1414"><tspan + sodipodi:role="line" + id="tspan1412" + x="633.09552" + y="111.05016" + style="stroke-width:1px">plop</tspan></text> + </g> + <g + style="stroke-width:2" + id="g1424" + inkscape:label="="mhoo"" + transform="translate(-416.52022,170.47452)"> + <path + inkscape:transform-center-x="14.956364" + transform="rotate(-90,746.45698,-44.543641)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path1418" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="-216.2599" + sodipodi:r1="59.825443" + sodipodi:r2="29.912722" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z" + inkscape:transform-center-y="-5.9989963e-06" /> + <text + id="text1422" + y="111.05016" + x="537.25018" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:1px" + y="111.05016" + x="537.25018" + id="tspan1420" + sodipodi:role="line">mhoo</tspan></text> + </g> + <g + style="stroke-width:2" + id="g1432" + inkscape:label="="yodl"" + transform="translate(-416.52022,170.47452)"> + <path + inkscape:transform-center-x="-14.956365" + transform="matrix(0,-1,-1,0,1043.9134,701.91334)" + inkscape:transform-center-y="-5.5023185e-06" + d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="29.912722" + sodipodi:r1="59.825443" + sodipodi:cy="105.17262" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path1426" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" /> + <text + id="text1430" + y="111.05016" + x="925.82605" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:1px" + y="111.05016" + x="925.82605" + id="tspan1428" + sodipodi:role="line">yodl</tspan></text> + </g> + <g + style="stroke-width:2" + id="g1440" + inkscape:label="="mhe"" + transform="translate(-416.52022,170.47452)"> + <path + inkscape:transform-center-x="-14.956349" + transform="matrix(0,-2.0000001,-1.9999999,0,1122.1514,1298.6541)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path1434" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="136.44444" + sodipodi:r1="29.912722" + sodipodi:r2="14.956361" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z" + inkscape:transform-center-y="-3.3040441e-05" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="842.71497" + y="111.05016" + id="text1438"><tspan + sodipodi:role="line" + id="tspan1436" + x="842.71497" + y="111.05016" + style="stroke-width:1px">mhe</tspan></text> + </g> + </g> + <text + inkscape:label="HMI:Display@/PUMP0/STROUT" + id="text1446" + y="469.12109" + x="1578.1641" + style="font-style:normal;font-weight:normal;font-size:80px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="fill:#ffffff;fill-opacity:1;stroke-width:0.5px" + y="469.12109" + x="1578.1641" + id="tspan1444" + sodipodi:role="line">8888</tspan></text> + <g + transform="matrix(0.57180538,0,0,0.57180538,-153.64055,248.51305)" + inkscape:label="HMI:Jump:RelativePageTest@/PUMP0" + id="g1458"> + <g + inkscape:label="button" + id="g1450"> + <rect + inkscape:label="button" + ry="35.579063" + y="594.82263" + x="971.96545" + height="95.723877" + width="245.44583" + id="rect1448" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + </g> + <g + inkscape:label="text" + id="g1456"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="1090.7626" + y="656.98151" + id="text1454" + inkscape:label="setting_jmp"><tspan + sodipodi:role="line" + x="1090.7626" + y="656.98151" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px" + id="tspan1460">Pump 0</tspan></text> + </g> + </g> + <g + id="g1475" + inkscape:label="HMI:Jump:RelativePageTest@/PUMP1" + transform="matrix(0.57180538,0,0,0.57180538,6.35945,248.51305)"> + <g + id="g1467" + inkscape:label="button"> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect1464" + width="245.44583" + height="95.723877" + x="971.96545" + y="594.82263" + ry="35.579063" + inkscape:label="button" /> + </g> + <g + id="g1473" + inkscape:label="text"> + <text + inkscape:label="setting_jmp" + id="text1471" + y="656.98151" + x="1090.7626" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + id="tspan1469" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px" + y="656.98151" + x="1090.7626" + sodipodi:role="line">Pump 1</tspan><tspan + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px" + y="706.98151" + x="1090.7626" + sodipodi:role="line" + id="tspan1477" /></text> + </g> + </g> + <g + transform="matrix(0.57180538,0,0,0.57180538,166.35945,248.51305)" + inkscape:label="HMI:Jump:RelativePageTest@/PUMP2" + id="g1491"> + <g + inkscape:label="button" + id="g1481"> + <rect + inkscape:label="button" + ry="35.579063" + y="594.82263" + x="971.96545" + height="95.723877" + width="245.44583" + id="rect1479" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + </g> + <g + inkscape:label="text" + id="g1489"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="1090.7626" + y="656.98151" + id="text1487" + inkscape:label="setting_jmp"><tspan + sodipodi:role="line" + x="1090.7626" + y="656.98151" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px" + id="tspan1493">Pump 2</tspan><tspan + id="tspan1485" + sodipodi:role="line" + x="1090.7626" + y="706.98151" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px" /></text> + </g> + </g> + <g + id="g1509" + inkscape:label="HMI:Jump:RelativePageTest@/PUMP3" + transform="matrix(0.57180538,0,0,0.57180538,326.35945,248.51305)"> + <g + id="g1499" + inkscape:label="button"> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect1497" + width="245.44583" + height="95.723877" + x="971.96545" + y="594.82263" + ry="35.579063" + inkscape:label="button" /> + </g> + <g + id="g1507" + inkscape:label="text"> + <text + inkscape:label="setting_jmp" + id="text1505" + y="656.98151" + x="1090.7626" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px" + y="656.98151" + x="1090.7626" + sodipodi:role="line" + id="tspan1511">Pump 3</tspan><tspan + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px" + y="706.98151" + x="1090.7626" + sodipodi:role="line" + id="tspan1503" /></text> + </g> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:55.09014511px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.34431386px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="403.8551" + y="700.05371" + id="text1517" + inkscape:label="HMI:Display@/PUMP0/STROUT"><tspan + sodipodi:role="line" + id="tspan1515" + x="403.8551" + y="700.05371" + style="fill:#ffffff;fill-opacity:1;stroke-width:0.34431386px">8888</tspan></text> + <text + inkscape:label="HMI:Display@/PUMP1/STROUT" + id="text1521" + y="700.05371" + x="563.8551" + style="font-style:normal;font-weight:normal;font-size:55.09014511px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.34431386px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="fill:#ffffff;fill-opacity:1;stroke-width:0.34431386px" + y="700.05371" + x="563.8551" + id="tspan1519" + sodipodi:role="line">8888</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:55.09014511px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.34431386px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="723.8551" + y="700.05371" + id="text1525" + inkscape:label="HMI:Display@/PUMP2/STROUT"><tspan + sodipodi:role="line" + id="tspan1523" + x="723.8551" + y="700.05371" + style="fill:#ffffff;fill-opacity:1;stroke-width:0.34431386px">8888</tspan></text> + <text + inkscape:label="HMI:Display@/PUMP3/STROUT" + id="text1529" + y="700.05371" + x="883.8551" + style="font-style:normal;font-weight:normal;font-size:55.09014511px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.34431386px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="fill:#ffffff;fill-opacity:1;stroke-width:0.34431386px" + y="700.05371" + x="883.8551" + id="tspan1527" + sodipodi:role="line">8888</tspan></text> + <g + id="g6077" + inkscape:label="HMI:ForEach:PUMP@/"> + <g + id="g6130" + inkscape:label="PUMP:1"> + <g + transform="matrix(0.57180538,0,0,0.57180538,1024.0513,-317.49049)" + inkscape:label="HMI:Jump:RelativePageTest@/PUMP0" + id="g1458-8"> + <g + inkscape:label="button" + id="g1450-4"> + <rect + inkscape:label="button" + ry="35.579063" + y="594.82263" + x="971.96545" + height="95.723877" + width="245.44583" + id="rect1448-8" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + </g> + <g + inkscape:label="text" + id="g1456-1"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="1038.2972" + y="635.99542" + id="text1454-0" + inkscape:label="setting_jmp"><tspan + sodipodi:role="line" + x="1038.2972" + y="635.99542" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px" + id="tspan1460-3">Pump</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:39.32668304px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.24579209px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="992.45087" + y="674.76117" + id="text1517-8" + inkscape:label="HMI:Display@/PUMP0/STROUT"><tspan + sodipodi:role="line" + id="tspan1515-5" + x="992.45087" + y="674.76117" + style="fill:#000000;fill-opacity:1;stroke-width:0.24579209px">8888</tspan></text> + </g> + </g> + </g> + <g + id="g6122" + inkscape:label="PUMP:2"> + <g + id="g1475-0" + inkscape:label="HMI:Jump:RelativePageTest@/PUMP1" + transform="matrix(0.57180538,0,0,0.57180538,1184.0513,-317.49049)"> + <g + id="g1467-4" + inkscape:label="button"> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect1464-4" + width="245.44583" + height="95.723877" + x="971.96545" + y="594.82263" + ry="35.579063" + inkscape:label="button" /> + </g> + <g + id="g1473-4" + inkscape:label="text"> + <text + inkscape:label="setting_jmp" + id="text1471-4" + y="635.99542" + x="1038.2972" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px" + y="635.99542" + x="1038.2972" + sodipodi:role="line" + id="tspan1477-6">Pump</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:39.32668304px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.24579208px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="992.8111" + y="674.76117" + id="text1517-8-5" + inkscape:label="HMI:Display@/PUMP1/STROUT"><tspan + sodipodi:role="line" + id="tspan1515-5-3" + x="992.8111" + y="674.76117" + style="fill:#000000;fill-opacity:1;stroke-width:0.24579208px">8888</tspan></text> + </g> + </g> + </g> + <g + id="g6113" + inkscape:label="PUMP:3"> + <g + transform="matrix(0.57180538,0,0,0.57180538,1344.0513,-317.49049)" + inkscape:label="HMI:Jump:RelativePageTest@/PUMP2" + id="g1491-3"> + <g + inkscape:label="button" + id="g1481-1"> + <rect + inkscape:label="button" + ry="35.579063" + y="594.82263" + x="971.96545" + height="95.723877" + width="245.44583" + id="rect1479-7" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + </g> + <g + inkscape:label="text" + id="g1489-5"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="1038.2972" + y="635.99542" + id="text1487-9" + inkscape:label="setting_jmp"><tspan + id="tspan1485-2" + sodipodi:role="line" + x="1038.2972" + y="635.99542" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px">Pump</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:39.32668304px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.24579208px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="993.17108" + y="674.76117" + id="text1517-8-8" + inkscape:label="HMI:Display@/PUMP2/STROUT"><tspan + sodipodi:role="line" + id="tspan1515-5-8" + x="993.17108" + y="674.76117" + style="fill:#000000;fill-opacity:1;stroke-width:0.24579208px">8888</tspan></text> + </g> + </g> + </g> + <g + id="g6104" + inkscape:label="PUMP:4"> + <g + id="g1509-1" + inkscape:label="HMI:Jump:RelativePageTest@/PUMP3" + transform="matrix(0.57180538,0,0,0.57180538,1504.0513,-317.49049)"> + <g + id="g1499-7" + inkscape:label="button"> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect1497-8" + width="245.44583" + height="95.723877" + x="971.96545" + y="594.82263" + ry="35.579063" + inkscape:label="button" /> + </g> + <g + id="g1507-5" + inkscape:label="text"> + <text + inkscape:label="setting_jmp" + id="text1505-7" + y="635.99542" + x="1038.2972" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px" + y="635.99542" + x="1038.2972" + sodipodi:role="line" + id="tspan1511-4">Pump</tspan><tspan + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px" + y="685.99542" + x="1038.2972" + sodipodi:role="line" + id="tspan1503-1" /></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:39.32668304px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.24579208px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="993.53101" + y="674.76117" + id="text1517-8-3" + inkscape:label="HMI:Display@/PUMP3/STROUT"><tspan + sodipodi:role="line" + id="tspan1515-5-1" + x="993.53101" + y="674.76117" + style="fill:#000000;fill-opacity:1;stroke-width:0.24579208px">8888</tspan></text> + </g> + </g> + </g> + <g + inkscape:label="PUMP:+1" + id="g6241" + transform="matrix(0.57180538,0,0,0.57180538,1461.2541,-321.48847)"> + <rect + style="fill:#000000;fill-opacity:1;stroke:#ff0000;stroke-width:1.74884677" + id="rect6235" + width="89.036743" + height="79.143768" + x="1326.8333" + y="612.41589" + rx="22.385239" + ry="20.986162" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:42.81540298px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.0703851" + x="1340.5292" + y="663.73657" + id="text6239"><tspan + sodipodi:role="line" + id="tspan6237" + x="1340.5292" + y="663.73657" + style="fill:#ffffff;stroke-width:1.0703851">+1</tspan></text> + </g> + <g + transform="matrix(0.57180538,0,0,0.57180538,752.02604,-322.19558)" + id="g6209" + inkscape:label="PUMP:-1"> + <rect + ry="20.986162" + rx="22.385239" + y="612.41589" + x="1326.8333" + height="79.143768" + width="89.036743" + id="rect6200" + style="fill:#000000;fill-opacity:1;stroke:#ff0000;stroke-width:1.74884677" /> + <text + id="text6204" + y="663.73657" + x="1340.5292" + style="font-style:normal;font-weight:normal;font-size:42.81540298px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.0703851" + xml:space="preserve"><tspan + style="fill:#ffffff;stroke-width:1.0703851" + y="663.73657" + x="1340.5292" + id="tspan6202" + sodipodi:role="line">-1</tspan></text> + </g> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:59.01374435px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#82ff77;fill-opacity:1;stroke:none;stroke-width:0.3688359px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="689.9715" + y="539.24927" + id="text995-6" + inkscape:label="HMI:Display:Ploc %d (%d) grmbl !@/PUMP0/PRESSURE@/PUMP0/SLOTH"><tspan + sodipodi:role="line" + id="tspan993-3" + x="689.9715" + y="539.24927" + style="text-align:center;text-anchor:middle;fill:#82ff77;fill-opacity:1;stroke-width:0.3688359px">8888</tspan></text> + <text + id="text831-1" + y="477.76758" + x="581.62634" + style="font-style:normal;font-weight:normal;font-size:25.4761734px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.63690436px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + inkscape:label="actual_label"><tspan + y="477.76758" + x="581.62634" + id="tspan829-7" + sodipodi:role="line" + style="stroke-width:0.63690436px">Multiple variables</tspan></text> + <text + inkscape:label="HMI:Display@paff" + id="text1457" + y="68.844757" + x="750.28473" + style="font-style:normal;font-weight:normal;font-size:22.87221527px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.28590268px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="fill:#ffffff;fill-opacity:1;stroke-width:0.28590268px" + y="68.844757" + x="750.28473" + id="tspan1455" + sodipodi:role="line">8888</tspan></text> + <g + style="stroke-width:4" + inkscape:label="HMI:Input@paff" + id="g1505" + transform="matrix(0.14295135,0,0,0.14295135,589.21833,37.615184)"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:4px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="136.32812" + y="218.24219" + id="text1461" + inkscape:label="value"><tspan + sodipodi:role="line" + id="tspan1459" + x="136.32812" + y="218.24219" + style="stroke-width:4px">8888</tspan></text> + <rect + inkscape:label="edit" + onclick="" + y="95.40741" + x="139.85185" + height="128" + width="407.7037" + id="rect1463" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <g + style="stroke-width:4" + id="g1471" + inkscape:label="+"dhu"" + transform="translate(-416.52022,170.47452)"> + <path + inkscape:connector-curvature="0" + id="path1465" + d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z" + inkscape:transform-center-y="-14.956361" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <text + id="text1469" + y="111.05016" + x="733.58197" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:2px" + y="111.05016" + x="733.58197" + id="tspan1467" + sodipodi:role="line">dhu</tspan></text> + </g> + <g + style="stroke-width:4" + id="g1479" + inkscape:label="="plop"" + transform="translate(-416.52022,170.47452)"> + <path + inkscape:transform-center-x="14.956371" + inkscape:transform-center-y="-3.6154501e-05" + d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="14.956361" + sodipodi:r1="29.912722" + sodipodi:cy="-184.98808" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path1473" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" + transform="matrix(0,-2.0000001,1.9999999,0,1034.195,1298.6541)" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="633.09552" + y="111.05016" + id="text1477"><tspan + sodipodi:role="line" + id="tspan1475" + x="633.09552" + y="111.05016" + style="stroke-width:2px">plop</tspan></text> + </g> + <g + style="stroke-width:4" + id="g1487" + inkscape:label="="mhoo"" + transform="translate(-416.52022,170.47452)"> + <path + inkscape:transform-center-x="14.956364" + transform="rotate(-90,746.45698,-44.543641)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path1481" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="-216.2599" + sodipodi:r1="59.825443" + sodipodi:r2="29.912722" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z" + inkscape:transform-center-y="-5.9989963e-06" /> + <text + id="text1485" + y="111.05016" + x="537.25018" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:2px" + y="111.05016" + x="537.25018" + id="tspan1483" + sodipodi:role="line">mhoo</tspan></text> + </g> + <g + style="stroke-width:4" + id="g1495" + inkscape:label="="yodl"" + transform="translate(-416.52022,170.47452)"> + <path + inkscape:transform-center-x="-14.956365" + transform="matrix(0,-1,-1,0,1043.9134,701.91334)" + inkscape:transform-center-y="-5.5023185e-06" + d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="29.912722" + sodipodi:r1="59.825443" + sodipodi:cy="105.17262" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path1489" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" /> + <text + id="text1493" + y="111.05016" + x="925.82605" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:2px" + y="111.05016" + x="925.82605" + id="tspan1491" + sodipodi:role="line">yodl</tspan></text> + </g> + <g + style="stroke-width:4" + id="g1503" + inkscape:label="="mhe"" + transform="translate(-416.52022,170.47452)"> + <path + inkscape:transform-center-x="-14.956349" + transform="matrix(0,-2.0000001,-1.9999999,0,1122.1514,1298.6541)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path1497" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="136.44444" + sodipodi:r1="29.912722" + sodipodi:r2="14.956361" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z" + inkscape:transform-center-y="-3.3040441e-05" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="842.71497" + y="111.05016" + id="text1501"><tspan + sodipodi:role="line" + id="tspan1499" + x="842.71497" + y="111.05016" + style="stroke-width:2px">mhe</tspan></text> + </g> + </g> + <text + inkscape:label="actual_label" + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:12.7380867px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.63690436px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="509.67926" + y="43.42762" + id="text1527"><tspan + style="stroke-width:0.63690436px" + sodipodi:role="line" + id="tspan1525" + x="509.67926" + y="43.42762">HMI_LOCAL variables</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:22.87221527px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.28590268px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="750.28473" + y="128.84476" + id="text1557" + inkscape:label="HMI:Display@.piff"><tspan + sodipodi:role="line" + id="tspan1555" + x="750.28473" + y="128.84476" + style="fill:#ffffff;fill-opacity:1;stroke-width:0.28590268px">8888</tspan></text> + <g + transform="matrix(0.14295135,0,0,0.14295135,589.21833,97.61518)" + id="g1605" + inkscape:label="HMI:Input@.piff" + style="stroke-width:4"> + <text + inkscape:label="value" + id="text1561" + y="218.24219" + x="136.32812" + style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:4px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:4px" + y="218.24219" + x="136.32812" + id="tspan1559" + sodipodi:role="line">8888</tspan></text> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect1563" + width="407.7037" + height="128" + x="139.85185" + y="95.40741" + onclick="" + inkscape:label="edit" /> + <g + transform="translate(-416.52022,170.47452)" + inkscape:label="+"dhu"" + id="g1571" + style="stroke-width:4"> + <path + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + inkscape:transform-center-y="-14.956361" + d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z" + id="path1565" + inkscape:connector-curvature="0" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="733.58197" + y="111.05016" + id="text1569"><tspan + sodipodi:role="line" + id="tspan1567" + x="733.58197" + y="111.05016" + style="stroke-width:2px">dhu</tspan></text> + </g> + <g + transform="translate(-416.52022,170.47452)" + inkscape:label="="plop"" + id="g1579" + style="stroke-width:4"> + <path + transform="matrix(0,-2.0000001,1.9999999,0,1034.195,1298.6541)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path1573" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="-184.98808" + sodipodi:r1="29.912722" + sodipodi:r2="14.956361" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z" + inkscape:transform-center-y="-3.6154501e-05" + inkscape:transform-center-x="14.956371" /> + <text + id="text1577" + y="111.05016" + x="633.09552" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:2px" + y="111.05016" + x="633.09552" + id="tspan1575" + sodipodi:role="line">plop</tspan></text> + </g> + <g + transform="translate(-416.52022,170.47452)" + inkscape:label="="mhoo"" + id="g1587" + style="stroke-width:4"> + <path + inkscape:transform-center-y="-5.9989963e-06" + d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="29.912722" + sodipodi:r1="59.825443" + sodipodi:cy="-216.2599" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path1581" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" + transform="rotate(-90,746.45698,-44.543641)" + inkscape:transform-center-x="14.956364" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="537.25018" + y="111.05016" + id="text1585"><tspan + sodipodi:role="line" + id="tspan1583" + x="537.25018" + y="111.05016" + style="stroke-width:2px">mhoo</tspan></text> + </g> + <g + transform="translate(-416.52022,170.47452)" + inkscape:label="="yodl"" + id="g1595" + style="stroke-width:4"> + <path + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path1589" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="105.17262" + sodipodi:r1="59.825443" + sodipodi:r2="29.912722" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z" + inkscape:transform-center-y="-5.5023185e-06" + transform="matrix(0,-1,-1,0,1043.9134,701.91334)" + inkscape:transform-center-x="-14.956365" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="925.82605" + y="111.05016" + id="text1593"><tspan + sodipodi:role="line" + id="tspan1591" + x="925.82605" + y="111.05016" + style="stroke-width:2px">yodl</tspan></text> + </g> + <g + transform="translate(-416.52022,170.47452)" + inkscape:label="="mhe"" + id="g1603" + style="stroke-width:4"> + <path + inkscape:transform-center-y="-3.3040441e-05" + d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="14.956361" + sodipodi:r1="29.912722" + sodipodi:cy="136.44444" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path1597" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" + transform="matrix(0,-2.0000001,-1.9999999,0,1122.1514,1298.6541)" + inkscape:transform-center-x="-14.956349" /> + <text + id="text1601" + y="111.05016" + x="842.71497" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:2px" + y="111.05016" + x="842.71497" + id="tspan1599" + sodipodi:role="line">mhe</tspan></text> + </g> + </g> + <text + id="text1609" + y="103.42763" + x="509.67926" + style="font-style:normal;font-weight:normal;font-size:12.7380867px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.63690436px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + inkscape:label="actual_label"><tspan + y="103.42763" + x="509.67926" + sodipodi:role="line" + style="stroke-width:0.63690436px" + id="tspan1611">PAGE_LOCAL variables</tspan></text> + <g + inkscape:label="HMI:Meter@level" + transform="matrix(2.1611542,0,0,2.1611542,602.76714,428.92423)" + id="g709"> + <path + inkscape:label="range" + sodipodi:open="true" + d="M 63.610123,2.2017068 A 64.411957,64.411957 0 0 1 128.02208,-62.210247" + sodipodi:end="4.712389" + sodipodi:start="3.1415927" + sodipodi:ry="64.411957" + sodipodi:rx="64.411957" + sodipodi:cy="2.2017097" + sodipodi:cx="128.02208" + sodipodi:type="arc" + id="path689" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ff7f2a;stroke-width:26.45833397;stroke-miterlimit:4;stroke-dasharray:2.64583333, 2.64583333;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <path + inkscape:label="needle" + sodipodi:nodetypes="cc" + inkscape:connector-curvature="0" + id="path691" + d="M 130.96206,4.0725977 79.111776,-41.363223" + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ff3000;stroke-width:2.96333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0, 32.59666667;stroke-dashoffset:29.63333321;stroke-opacity:1;marker-end:url(#marker1971)" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="49.132977" + y="4.9187088" + id="text695" + inkscape:label="min"><tspan + sodipodi:role="line" + id="tspan693" + x="49.132977" + y="4.9187088" + style="text-align:end;text-anchor:end;fill:#ff6600;stroke-width:0.26458332px">0</tspan></text> + <text + id="text699" + y="-78.144218" + x="127.48073" + style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + inkscape:label="max"><tspan + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px" + y="-78.144218" + x="127.48073" + id="tspan697" + sodipodi:role="line">10000</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="113.53007" + y="-6.1937833" + id="text703" + inkscape:label="value"><tspan + sodipodi:role="line" + x="113.53007" + y="-6.1937833" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px" + id="tspan701">000</tspan></text> + <text + inkscape:label="unit" + id="text707" + y="1.1408259" + x="124.77896" + style="font-style:normal;font-weight:normal;font-size:7.5467205px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + id="tspan705" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px" + y="1.1408259" + x="124.77896" + sodipodi:role="line">bar</tspan></text> + </g> + <g + id="g84-3" + inkscape:label="HMI:Input@level" + transform="matrix(0.35865594,0,0,0.35865594,458.57767,253.49106)"> + <text + inkscape:label="value" + id="text5151-6" + y="218.24219" + x="136.32812" + style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:1px" + y="218.24219" + x="136.32812" + id="tspan5149-7" + sodipodi:role="line">8888</tspan></text> + <path + transform="scale(1,-1)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path89-5" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="-216.2599" + sodipodi:r1="59.825443" + sodipodi:r2="29.912722" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z" + inkscape:transform-center-y="14.956363" + inkscape:label="-100" /> + <path + inkscape:label="-10" + inkscape:transform-center-y="7.4781812" + d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="14.956361" + sodipodi:r1="29.912722" + sodipodi:cy="-184.98808" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path88-3" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" + transform="scale(1,-1)" /> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect85-5" + width="407.7037" + height="128" + x="139.85185" + y="95.40741" + onclick="" + inkscape:label="edit" /> + <path + inkscape:label="+100" + inkscape:transform-center-y="-14.956361" + d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="29.912722" + sodipodi:r1="59.825443" + sodipodi:cy="105.17262" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path87-6" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" /> + <path + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path86-2" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="136.44444" + sodipodi:r1="29.912722" + sodipodi:r2="14.956361" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z" + inkscape:transform-center-y="-7.4781804" + inkscape:label="+10" /> + <path + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path91-9" + sodipodi:sides="4" + sodipodi:cx="80.740723" + sodipodi:cy="165.17262" + sodipodi:r1="57.015106" + sodipodi:r2="29.912722" + sodipodi:arg1="0.77793027" + sodipodi:arg2="1.5633284" + inkscape:flatsided="true" + inkscape:rounded="-0.65084865" + inkscape:randomized="0" + d="M 121.35644,205.1862 C 158.18649,167.80191 3.342862,168.95829 40.72715,205.78834 78.111437,242.61839 76.95506,87.774762 40.125008,125.15905 3.2949549,162.54334 158.13858,161.38696 120.7543,124.55691 83.370008,87.726855 84.526385,242.57048 121.35644,205.1862 Z" + inkscape:transform-center-y="-14.956361" + inkscape:label="=0" /> + </g> + <text + inkscape:label="HMI:Display@paff" + id="text1457-1" + y="215.65211" + x="2632.9148" + style="font-style:normal;font-weight:normal;font-size:45.74443054px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.28590268px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="fill:#ffffff;fill-opacity:1;stroke-width:0.28590268px" + y="215.65211" + x="2632.9148" + id="tspan1455-2" + sodipodi:role="line">8888</tspan></text> + <g + style="stroke-width:2" + inkscape:label="HMI:Input@paff" + id="g1505-7" + transform="matrix(0.28590269,0,0,0.28590269,2430.782,153.19299)"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="136.32812" + y="218.24219" + id="text1461-0" + inkscape:label="value"><tspan + sodipodi:role="line" + id="tspan1459-9" + x="136.32812" + y="218.24219" + style="stroke-width:2px">8888</tspan></text> + <rect + inkscape:label="edit" + onclick="" + y="95.40741" + x="139.85185" + height="128" + width="407.7037" + id="rect1463-3" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <g + style="stroke-width:2" + id="g1471-6" + inkscape:label="+"dhu"" + transform="translate(-416.52022,170.47452)"> + <path + inkscape:connector-curvature="0" + id="path1465-0" + d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z" + inkscape:transform-center-y="-14.956361" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <text + id="text1469-6" + y="111.05016" + x="733.58197" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:1px" + y="111.05016" + x="733.58197" + id="tspan1467-2" + sodipodi:role="line">dhu</tspan></text> + </g> + <g + style="stroke-width:2" + id="g1479-6" + inkscape:label="="plop"" + transform="translate(-416.52022,170.47452)"> + <path + inkscape:transform-center-x="14.956371" + inkscape:transform-center-y="-3.6154501e-05" + d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="14.956361" + sodipodi:r1="29.912722" + sodipodi:cy="-184.98808" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path1473-1" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" + transform="matrix(0,-2.0000001,1.9999999,0,1034.195,1298.6541)" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="633.09552" + y="111.05016" + id="text1477-8"><tspan + sodipodi:role="line" + id="tspan1475-7" + x="633.09552" + y="111.05016" + style="stroke-width:1px">plop</tspan></text> + </g> + <g + style="stroke-width:2" + id="g1487-9" + inkscape:label="="mhoo"" + transform="translate(-416.52022,170.47452)"> + <path + inkscape:transform-center-x="14.956364" + transform="rotate(-90,746.45698,-44.543641)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path1481-2" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="-216.2599" + sodipodi:r1="59.825443" + sodipodi:r2="29.912722" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z" + inkscape:transform-center-y="-5.9989963e-06" /> + <text + id="text1485-0" + y="111.05016" + x="537.25018" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:1px" + y="111.05016" + x="537.25018" + id="tspan1483-2" + sodipodi:role="line">mhoo</tspan></text> + </g> + <g + style="stroke-width:2" + id="g1495-3" + inkscape:label="="yodl"" + transform="translate(-416.52022,170.47452)"> + <path + inkscape:transform-center-x="-14.956365" + transform="matrix(0,-1,-1,0,1043.9134,701.91334)" + inkscape:transform-center-y="-5.5023185e-06" + d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="29.912722" + sodipodi:r1="59.825443" + sodipodi:cy="105.17262" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path1489-7" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" /> + <text + id="text1493-5" + y="111.05016" + x="925.82605" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:1px" + y="111.05016" + x="925.82605" + id="tspan1491-9" + sodipodi:role="line">yodl</tspan></text> + </g> + <g + style="stroke-width:2" + id="g1503-2" + inkscape:label="="mhe"" + transform="translate(-416.52022,170.47452)"> + <path + inkscape:transform-center-x="-14.956349" + transform="matrix(0,-2.0000001,-1.9999999,0,1122.1514,1298.6541)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path1497-2" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="136.44444" + sodipodi:r1="29.912722" + sodipodi:r2="14.956361" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z" + inkscape:transform-center-y="-3.3040441e-05" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="842.71497" + y="111.05016" + id="text1501-8"><tspan + sodipodi:role="line" + id="tspan1499-9" + x="842.71497" + y="111.05016" + style="stroke-width:1px">mhe</tspan></text> + </g> + </g> + <text + inkscape:label="actual_label" + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:25.4761734px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.63690436px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="2471.7039" + y="164.81787" + id="text1527-7"><tspan + style="stroke-width:0.63690436px" + sodipodi:role="line" + id="tspan1525-3" + x="2471.7039" + y="164.81787">HMI_LOCAL variables</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:45.74443054px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.28590268px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="2632.9148" + y="335.65213" + id="text1557-6" + inkscape:label="HMI:Display@.piff"><tspan + sodipodi:role="line" + id="tspan1555-1" + x="2632.9148" + y="335.65213" + style="fill:#ffffff;fill-opacity:1;stroke-width:0.28590268px">8888</tspan></text> + <g + transform="matrix(0.28590269,0,0,0.28590269,2430.782,273.19298)" + id="g1605-2" + inkscape:label="HMI:Input@.piff" + style="stroke-width:2"> + <text + inkscape:label="value" + id="text1561-9" + y="218.24219" + x="136.32812" + style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:2px" + y="218.24219" + x="136.32812" + id="tspan1559-3" + sodipodi:role="line">8888</tspan></text> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect1563-1" + width="407.7037" + height="128" + x="139.85185" + y="95.40741" + onclick="" + inkscape:label="edit" /> + <g + transform="translate(-416.52022,170.47452)" + inkscape:label="+"dhu"" + id="g1571-9" + style="stroke-width:2"> + <path + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + inkscape:transform-center-y="-14.956361" + d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z" + id="path1565-4" + inkscape:connector-curvature="0" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="733.58197" + y="111.05016" + id="text1569-7"><tspan + sodipodi:role="line" + id="tspan1567-8" + x="733.58197" + y="111.05016" + style="stroke-width:1px">dhu</tspan></text> + </g> + <g + transform="translate(-416.52022,170.47452)" + inkscape:label="="plop"" + id="g1579-4" + style="stroke-width:2"> + <path + transform="matrix(0,-2.0000001,1.9999999,0,1034.195,1298.6541)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path1573-5" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="-184.98808" + sodipodi:r1="29.912722" + sodipodi:r2="14.956361" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z" + inkscape:transform-center-y="-3.6154501e-05" + inkscape:transform-center-x="14.956371" /> + <text + id="text1577-0" + y="111.05016" + x="633.09552" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:1px" + y="111.05016" + x="633.09552" + id="tspan1575-3" + sodipodi:role="line">plop</tspan></text> + </g> + <g + transform="translate(-416.52022,170.47452)" + inkscape:label="="mhoo"" + id="g1587-6" + style="stroke-width:2"> + <path + inkscape:transform-center-y="-5.9989963e-06" + d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="29.912722" + sodipodi:r1="59.825443" + sodipodi:cy="-216.2599" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path1581-1" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" + transform="rotate(-90,746.45698,-44.543641)" + inkscape:transform-center-x="14.956364" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="537.25018" + y="111.05016" + id="text1585-0"><tspan + sodipodi:role="line" + id="tspan1583-6" + x="537.25018" + y="111.05016" + style="stroke-width:1px">mhoo</tspan></text> + </g> + <g + transform="translate(-416.52022,170.47452)" + inkscape:label="="yodl"" + id="g1595-3" + style="stroke-width:2"> + <path + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path1589-2" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="105.17262" + sodipodi:r1="59.825443" + sodipodi:r2="29.912722" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z" + inkscape:transform-center-y="-5.5023185e-06" + transform="matrix(0,-1,-1,0,1043.9134,701.91334)" + inkscape:transform-center-x="-14.956365" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="925.82605" + y="111.05016" + id="text1593-0"><tspan + sodipodi:role="line" + id="tspan1591-6" + x="925.82605" + y="111.05016" + style="stroke-width:1px">yodl</tspan></text> + </g> + <g + transform="translate(-416.52022,170.47452)" + inkscape:label="="mhe"" + id="g1603-1" + style="stroke-width:2"> + <path + inkscape:transform-center-y="-3.3040441e-05" + d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="14.956361" + sodipodi:r1="29.912722" + sodipodi:cy="136.44444" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path1597-5" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" + transform="matrix(0,-2.0000001,-1.9999999,0,1122.1514,1298.6541)" + inkscape:transform-center-x="-14.956349" /> + <text + id="text1601-5" + y="111.05016" + x="842.71497" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:1px" + y="111.05016" + x="842.71497" + id="tspan1599-4" + sodipodi:role="line">mhe</tspan></text> + </g> + </g> + <text + id="text1609-7" + y="284.81787" + x="2471.7039" + style="font-style:normal;font-weight:normal;font-size:25.4761734px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.63690436px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + inkscape:label="actual_label"><tspan + y="284.81787" + x="2471.7039" + sodipodi:role="line" + style="stroke-width:0.63690436px" + id="tspan1611-6">PAGE_LOCAL variables</tspan></text> + <text + inkscape:label="HMI:Display@paff" + id="text1457-5" + y="1208.4301" + x="276.83508" + style="font-style:normal;font-weight:normal;font-size:45.74443054px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.28590268px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="fill:#ffffff;fill-opacity:1;stroke-width:0.28590268px" + y="1208.4301" + x="276.83508" + id="tspan1455-6" + sodipodi:role="line">8888</tspan></text> + <g + style="stroke-width:2" + inkscape:label="HMI:Input@paff" + id="g1505-9" + transform="matrix(0.28590269,0,0,0.28590269,74.702238,1145.9709)"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="136.32812" + y="218.24219" + id="text1461-3" + inkscape:label="value"><tspan + sodipodi:role="line" + id="tspan1459-7" + x="136.32812" + y="218.24219" + style="stroke-width:2px">8888</tspan></text> + <rect + inkscape:label="edit" + onclick="" + y="95.40741" + x="139.85185" + height="128" + width="407.7037" + id="rect1463-4" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <g + style="stroke-width:2" + id="g1471-5" + inkscape:label="+"dhu"" + transform="translate(-416.52022,170.47452)"> + <path + inkscape:connector-curvature="0" + id="path1465-2" + d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z" + inkscape:transform-center-y="-14.956361" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <text + id="text1469-5" + y="111.05016" + x="733.58197" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:1px" + y="111.05016" + x="733.58197" + id="tspan1467-4" + sodipodi:role="line">dhu</tspan></text> + </g> + <g + style="stroke-width:2" + id="g1479-7" + inkscape:label="="plop"" + transform="translate(-416.52022,170.47452)"> + <path + inkscape:transform-center-x="14.956371" + inkscape:transform-center-y="-3.6154501e-05" + d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="14.956361" + sodipodi:r1="29.912722" + sodipodi:cy="-184.98808" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path1473-4" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" + transform="matrix(0,-2.0000001,1.9999999,0,1034.195,1298.6541)" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="633.09552" + y="111.05016" + id="text1477-4"><tspan + sodipodi:role="line" + id="tspan1475-3" + x="633.09552" + y="111.05016" + style="stroke-width:1px">plop</tspan></text> + </g> + <g + style="stroke-width:2" + id="g1487-0" + inkscape:label="="mhoo"" + transform="translate(-416.52022,170.47452)"> + <path + inkscape:transform-center-x="14.956364" + transform="rotate(-90,746.45698,-44.543641)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path1481-7" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="-216.2599" + sodipodi:r1="59.825443" + sodipodi:r2="29.912722" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z" + inkscape:transform-center-y="-5.9989963e-06" /> + <text + id="text1485-8" + y="111.05016" + x="537.25018" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:1px" + y="111.05016" + x="537.25018" + id="tspan1483-6" + sodipodi:role="line">mhoo</tspan></text> + </g> + <g + style="stroke-width:2" + id="g1495-8" + inkscape:label="="yodl"" + transform="translate(-416.52022,170.47452)"> + <path + inkscape:transform-center-x="-14.956365" + transform="matrix(0,-1,-1,0,1043.9134,701.91334)" + inkscape:transform-center-y="-5.5023185e-06" + d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="29.912722" + sodipodi:r1="59.825443" + sodipodi:cy="105.17262" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path1489-8" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" /> + <text + id="text1493-4" + y="111.05016" + x="925.82605" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:1px" + y="111.05016" + x="925.82605" + id="tspan1491-3" + sodipodi:role="line">yodl</tspan></text> + </g> + <g + style="stroke-width:2" + id="g1503-1" + inkscape:label="="mhe"" + transform="translate(-416.52022,170.47452)"> + <path + inkscape:transform-center-x="-14.956349" + transform="matrix(0,-2.0000001,-1.9999999,0,1122.1514,1298.6541)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path1497-4" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="136.44444" + sodipodi:r1="29.912722" + sodipodi:r2="14.956361" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z" + inkscape:transform-center-y="-3.3040441e-05" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="842.71497" + y="111.05016" + id="text1501-9"><tspan + sodipodi:role="line" + id="tspan1499-2" + x="842.71497" + y="111.05016" + style="stroke-width:1px">mhe</tspan></text> + </g> + </g> + <text + inkscape:label="actual_label" + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:25.4761734px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.63690436px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="115.62414" + y="1157.5958" + id="text1527-0"><tspan + style="stroke-width:0.63690436px" + sodipodi:role="line" + id="tspan1525-6" + x="115.62414" + y="1157.5958">HMI_LOCAL variables</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:45.74443054px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.28590268px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="276.83508" + y="1328.4301" + id="text1557-8" + inkscape:label="HMI:Display@.piff"><tspan + sodipodi:role="line" + id="tspan1555-9" + x="276.83508" + y="1328.4301" + style="fill:#ffffff;fill-opacity:1;stroke-width:0.28590268px">8888</tspan></text> + <g + transform="matrix(0.28590269,0,0,0.28590269,74.702238,1265.9709)" + id="g1605-26" + inkscape:label="HMI:Input@.piff" + style="stroke-width:2"> + <text + inkscape:label="value" + id="text1561-6" + y="218.24219" + x="136.32812" + style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:2px" + y="218.24219" + x="136.32812" + id="tspan1559-4" + sodipodi:role="line">8888</tspan></text> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect1563-9" + width="407.7037" + height="128" + x="139.85185" + y="95.40741" + onclick="" + inkscape:label="edit" /> + <g + transform="translate(-416.52022,170.47452)" + inkscape:label="+"dhu"" + id="g1571-5" + style="stroke-width:2"> + <path + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + inkscape:transform-center-y="-14.956361" + d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z" + id="path1565-0" + inkscape:connector-curvature="0" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="733.58197" + y="111.05016" + id="text1569-4"><tspan + sodipodi:role="line" + id="tspan1567-87" + x="733.58197" + y="111.05016" + style="stroke-width:1px">dhu</tspan></text> + </g> + <g + transform="translate(-416.52022,170.47452)" + inkscape:label="="plop"" + id="g1579-1" + style="stroke-width:2"> + <path + transform="matrix(0,-2.0000001,1.9999999,0,1034.195,1298.6541)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path1573-7" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="-184.98808" + sodipodi:r1="29.912722" + sodipodi:r2="14.956361" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z" + inkscape:transform-center-y="-3.6154501e-05" + inkscape:transform-center-x="14.956371" /> + <text + id="text1577-2" + y="111.05016" + x="633.09552" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:1px" + y="111.05016" + x="633.09552" + id="tspan1575-7" + sodipodi:role="line">plop</tspan></text> + </g> + <g + transform="translate(-416.52022,170.47452)" + inkscape:label="="mhoo"" + id="g1587-2" + style="stroke-width:2"> + <path + inkscape:transform-center-y="-5.9989963e-06" + d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="29.912722" + sodipodi:r1="59.825443" + sodipodi:cy="-216.2599" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path1581-2" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" + transform="rotate(-90,746.45698,-44.543641)" + inkscape:transform-center-x="14.956364" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="537.25018" + y="111.05016" + id="text1585-6"><tspan + sodipodi:role="line" + id="tspan1583-1" + x="537.25018" + y="111.05016" + style="stroke-width:1px">mhoo</tspan></text> + </g> + <g + transform="translate(-416.52022,170.47452)" + inkscape:label="="yodl"" + id="g1595-0" + style="stroke-width:2"> + <path + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path1589-6" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="105.17262" + sodipodi:r1="59.825443" + sodipodi:r2="29.912722" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z" + inkscape:transform-center-y="-5.5023185e-06" + transform="matrix(0,-1,-1,0,1043.9134,701.91334)" + inkscape:transform-center-x="-14.956365" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="925.82605" + y="111.05016" + id="text1593-1"><tspan + sodipodi:role="line" + id="tspan1591-5" + x="925.82605" + y="111.05016" + style="stroke-width:1px">yodl</tspan></text> + </g> + <g + transform="translate(-416.52022,170.47452)" + inkscape:label="="mhe"" + id="g1603-9" + style="stroke-width:2"> + <path + inkscape:transform-center-y="-3.3040441e-05" + d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="14.956361" + sodipodi:r1="29.912722" + sodipodi:cy="136.44444" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path1597-4" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" + transform="matrix(0,-2.0000001,-1.9999999,0,1122.1514,1298.6541)" + inkscape:transform-center-x="-14.956349" /> + <text + id="text1601-9" + y="111.05016" + x="842.71497" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:1px" + y="111.05016" + x="842.71497" + id="tspan1599-0" + sodipodi:role="line">mhe</tspan></text> + </g> + </g> + <text + id="text1609-9" + y="1277.5958" + x="115.62414" + style="font-style:normal;font-weight:normal;font-size:25.4761734px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.63690436px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + inkscape:label="actual_label"><tspan + y="1277.5958" + x="115.62414" + sodipodi:role="line" + style="stroke-width:0.63690436px" + id="tspan1611-1">PAGE_LOCAL variables</tspan></text> + <g + id="g2387" + inkscape:label="HMI:VarInit:42@level" /> + <g + inkscape:label="HMI:VarInit:"a string"@paff" + id="g2389" /> + <g + id="g825" + inkscape:label="HMI:VarInit:"a page string"@.piff" /> + <g + inkscape:label="HMI:VarInit:50@.position" + id="g906" /> + <g + id="g908" + inkscape:label="HMI:VarInit:100@.range" /> + <g + inkscape:label="HMI:VarInit:7@.visibleAlarms" + id="g906-3" /> + <use + x="0" + y="0" + xlink:href="#g7994" + id="use8000" + transform="translate(-1380,800)" + width="100%" + height="100%" + inkscape:label="HMI:Page:AlarmPage" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:80px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-738.18359" + y="86.260696" + id="text2019"><tspan + sodipodi:role="line" + id="tspan2017" + x="-738.18359" + y="86.260696" + style="fill:#ffffff;stroke-width:1px">Alarm Page</tspan></text> + <g + id="g1289" + inkscape:label="HMI:JsonTable:/alarms@/ALARMNOTIFY@.range@.position@.visibleAlarms@.filter" + transform="matrix(0.5,0,0,0.5,-1757.3465,454.4367)"> + <g + id="g5231" + inkscape:label="data"> + <g + id="g1384" + inkscape:label="[0]" + transform="translate(52.326002,240.30067)"> + <g + id="g901" + inkscape:label="# commented group" + transform="translate(419.716,-441.73566)"> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 528.62458,486.07049 23.69122,21.00809" + id="path903" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + </g> + <use + x="0" + y="0" + xlink:href="#use1297" + inkscape:transform-center-x="0.11123312" + inkscape:transform-center-y="2.2824109" + id="use1378" + width="100%" + height="100%" + transform="matrix(0.7609336,0,0,0.7609336,199.15217,164.3798)" + inkscape:label=".status onClick[acknowledge]=.alarmid" /> + <use + transform="matrix(1.3019536,0,0,1.3019536,39.582906,238.73392)" + x="0" + y="0" + xlink:href="#use913" + id="use966" + width="100%" + height="100%" + inkscape:label=".status textContent=.time" + style="stroke-width:1.53615308" /> + <use + inkscape:label=".status textContent=.text" + height="100%" + width="100%" + id="use1832" + xlink:href="#use913" + y="0" + x="0" + transform="matrix(2,0,0,2,85.95394,349.02524)" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 972.0318,65.34292 H 2780.6604" + id="path2238" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" + inkscape:label="# separation line" /> + </g> + <use + inkscape:label="[1]" + transform="translate(0,-62.914773)" + height="100%" + width="100%" + id="use5200" + xlink:href="#g1384" + y="0" + x="0" /> + <use + inkscape:label="[2]" + x="0" + y="0" + xlink:href="#g1384" + id="use5202" + width="100%" + height="100%" + transform="translate(0,-125.82955)" /> + <use + inkscape:label="[3]" + transform="translate(0,-188.74432)" + height="100%" + width="100%" + id="use5204" + xlink:href="#g1384" + y="0" + x="0" /> + <use + x="0" + y="0" + xlink:href="#g1384" + id="use2176" + width="100%" + height="100%" + transform="translate(0,-251.65909)" + inkscape:label="[4]" /> + <use + inkscape:label="[5]" + transform="translate(0,-314.57387)" + height="100%" + width="100%" + id="use2178" + xlink:href="#g1384" + y="0" + x="0" /> + <use + x="0" + y="0" + xlink:href="#g1384" + id="use2180" + width="100%" + height="100%" + transform="translate(0,-377.48864)" + inkscape:label="[6]" /> + </g> + </g> + <g + id="g1332" + inkscape:label="polygons" + transform="translate(-1556.6506,114.93627)"> + <path + inkscape:transform-center-y="2.9995242" + inkscape:transform-center-x="0.14620371" + d="m 1081.9632,-246.81598 -27.9274,5.51725 -27.9273,5.51724 9.1856,-26.94439 9.1856,-26.94439 18.7417,21.42715 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="false" + sodipodi:arg2="1.3757507" + sodipodi:arg1="0.32855317" + sodipodi:r2="16.43548" + sodipodi:r1="32.87096" + sodipodi:cy="-257.42258" + sodipodi:cx="1050.8505" + sodipodi:sides="3" + id="path1298" + style="fill:#8fbc8f;fill-opacity:1;stroke:#ff0000" + sodipodi:type="star" + inkscape:label="three" /> + <path + sodipodi:type="star" + style="fill:#ff8c00;fill-opacity:1;stroke:#ff0000" + id="path1308" + sodipodi:sides="4" + sodipodi:cx="1110.8505" + sodipodi:cy="-257.42258" + sodipodi:r1="32.87096" + sodipodi:r2="16.43548" + sodipodi:arg1="0.32855317" + sodipodi:arg2="1.1139513" + inkscape:flatsided="false" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 1141.9632,-246.81598 -23.8627,4.1434 -17.8566,16.3627 -4.1434,-23.8627 -16.3627,-17.8566 23.8627,-4.1434 17.8566,-16.3627 4.1434,23.8627 z" + inkscape:transform-center-x="0.14620371" + inkscape:transform-center-y="2.9995242" + inkscape:label="four" /> + <path + inkscape:transform-center-y="2.9995242" + inkscape:transform-center-x="0.14620371" + d="m 1201.9632,-246.81598 -21.6446,2.82766 -9.9413,19.4333 -9.3778,-19.7114 -21.5541,-3.44949 15.8487,-15.00997 -3.3799,-21.5652 19.1728,10.43473 19.4653,-9.87854 -3.9993,21.45898 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="false" + sodipodi:arg2="0.9568717" + sodipodi:arg1="0.32855317" + sodipodi:r2="16.43548" + sodipodi:r1="32.87096" + sodipodi:cy="-257.42258" + sodipodi:cx="1170.8505" + sodipodi:sides="5" + id="path1310" + style="fill:#bc8f8f;fill-opacity:1;stroke:#ff0000" + sodipodi:type="star" + inkscape:label="five" /> + <path + sodipodi:type="star" + style="fill:#f0f8ff;fill-opacity:1;stroke:#ff0000" + id="path1312" + sodipodi:sides="6" + sodipodi:cx="1230.8505" + sodipodi:cy="-257.42258" + sodipodi:r1="32.87096" + sodipodi:r2="16.43548" + sodipodi:arg1="0.32855317" + sodipodi:arg2="0.85215195" + inkscape:flatsided="false" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 1261.9632,-246.81598 -20.2922,1.76437 -4.4498,19.87672 -11.674,-16.69134 -19.4387,6.08474 8.6181,-18.45571 -14.9888,-13.79198 20.2921,-1.76436 4.4498,-19.87673 11.6741,16.69134 19.4386,-6.08473 -8.6181,18.4557 z" + inkscape:transform-center-x="0.14620371" + inkscape:transform-center-y="2.9995242" + inkscape:label="six" /> + </g> + <g + inkscape:label="HMI:List" + id="g1311" + transform="translate(-1396.6506,94.93627)"> + <use + x="0" + y="0" + xlink:href="#path1298" + inkscape:transform-center-x="0.14620371" + inkscape:transform-center-y="2.9995242" + id="use1293" + width="100%" + height="100%" + transform="translate(-69.76703,100)" + style="display:inline" + inkscape:label="ack" /> + <use + x="0" + y="0" + xlink:href="#path1308" + inkscape:transform-center-x="0.14620371" + inkscape:transform-center-y="2.9995242" + id="use1295" + width="100%" + height="100%" + transform="translate(-126.48474,100)" + inkscape:label="alarm" /> + <use + x="0" + y="0" + xlink:href="#path1310" + inkscape:transform-center-x="0.14620371" + inkscape:transform-center-y="2.9995242" + id="use1297" + width="100%" + height="100%" + transform="translate(-186.33351,100)" + inkscape:label="active" /> + <use + x="0" + y="0" + xlink:href="#path1312" + inkscape:transform-center-x="0.14620371" + inkscape:transform-center-y="2.9995242" + id="use1299" + width="100%" + height="100%" + transform="translate(-246.4848,100)" + inkscape:label="disabled" /> + </g> + <g + transform="matrix(0.33436432,0,0,0.33436432,-584.21063,278.8185)" + inkscape:label="HMI:Input@/ALARMNOTIFY" + id="g5222" + style="stroke-width:0.75594342"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.75594342px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="136.32812" + y="218.24219" + id="text5208" + inkscape:label="value"><tspan + sodipodi:role="line" + id="tspan5206" + x="136.32812" + y="218.24219" + style="stroke-width:0.75594342px">8888</tspan></text> + <path + transform="scale(1,-1)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path5212" + sodipodi:sides="3" + sodipodi:cx="608.70374" + sodipodi:cy="-209.2599" + sodipodi:r1="59.825443" + sodipodi:r2="29.912722" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 660.51409,-179.34718 -103.62071,0 51.81036,-89.73817 z" + inkscape:transform-center-y="14.956362" + inkscape:label="-1" /> + <rect + inkscape:label="edit" + onclick="" + y="95.40741" + x="139.85185" + height="128" + width="407.7037" + id="rect5214" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <path + inkscape:label="+1" + inkscape:transform-center-y="-14.95636" + d="m 660.51409,142.08535 -103.62071,0 51.81036,-89.738163 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="29.912722" + sodipodi:r1="59.825443" + sodipodi:cy="112.17263" + sodipodi:cx="608.70374" + sodipodi:sides="3" + id="path5218" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" /> + </g> + <g + id="g1766" + inkscape:label="HMI:Slider@.position@.range@.alarmVisible"> + <g + transform="matrix(0.620824,0,0,0.5,-963.61047,260.72872)" + id="g1752" + inkscape:label="HMI:Input@.position"> + <path + inkscape:label="+1" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.55573034px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="m 1175.2115,143.25263 34.1278,56.73732 h -68.2556 z" + id="path1266" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccc" /> + <path + inkscape:label="-1" + sodipodi:nodetypes="cccc" + inkscape:connector-curvature="0" + id="path1268" + d="m 1175.2115,851.99803 34.1278,-54.90445 h -68.2556 z" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.51411843px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + </g> + <path + style="opacity:0;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.00058591px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M -234.01102,648.56465 V 371.89445" + id="path1772" + inkscape:connector-curvature="0" + inkscape:label="range" /> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.30952382;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.03627348px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect1264-3" + width="42.374725" + height="276.64423" + x="-255.19838" + y="371.91068" + rx="7.6034913" + ry="6.8822322" + inkscape:label="background" /> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.11429262px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect1264" + width="42.374725" + height="82.841492" + x="-255.19838" + y="565.71338" + rx="7.6034913" + ry="7" + inkscape:label="handle" /> + </g> + <g + id="g893" + inkscape:label="textstyles" + transform="translate(-1566.6506,56.936266)"> + <text + inkscape:label="red" + id="text1382-7" + y="-171.54395" + x="1298.9102" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:0.5" + xml:space="preserve"><tspan + y="-171.54395" + x="1298.9102" + id="tspan1380-5" + sodipodi:role="line" + style="stroke-width:0.5">value</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + x="1298.9102" + y="-191.54395" + id="text875" + inkscape:label="black"><tspan + style="fill:#000000;stroke-width:0.5" + sodipodi:role="line" + id="tspan873" + x="1298.9102" + y="-191.54395">value</tspan></text> + <text + inkscape:label="green" + id="text879" + y="-211.54395" + x="1298.9102" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:0.5" + xml:space="preserve"><tspan + y="-211.54395" + x="1298.9102" + id="tspan877" + sodipodi:role="line" + style="fill:#00ff00;stroke-width:0.5">value</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#999999;fill-opacity:1;stroke:none;stroke-width:0.5" + x="1298.9102" + y="-231.54395" + id="text883" + inkscape:label="gray"><tspan + style="fill:#999999;stroke-width:0.5" + sodipodi:role="line" + id="tspan881" + x="1298.9102" + y="-231.54395">value</tspan></text> + </g> + <g + id="g907" + inkscape:label="HMI:TextStyleList" + transform="translate(-990.65059,102.93627)"> + <use + x="0" + y="0" + xlink:href="#text879" + id="use913" + width="100%" + height="100%" + transform="translate(-573,60.999998)" + inkscape:label="active" /> + <use + x="0" + y="0" + xlink:href="#text875" + id="use911" + width="100%" + height="100%" + transform="translate(-573,40.999998)" + inkscape:label="ack" /> + <use + x="0" + y="0" + xlink:href="#text1382-7" + id="use909" + width="100%" + height="100%" + transform="translate(-573,20.999998)" + inkscape:label="alarm" /> + <use + x="0" + y="0" + xlink:href="#text883" + id="use915" + width="100%" + height="100%" + transform="translate(-573,80.999998)" + inkscape:label="disabled" /> + </g> + <g + transform="matrix(0.33436432,0,0,0.33436432,-1048.7703,278.8185)" + inkscape:label="HMI:Input@.range" + id="g5222-3" + style="stroke-width:0.75594342"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.75594342px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="136.32812" + y="218.24219" + id="text5208-6" + inkscape:label="value"><tspan + sodipodi:role="line" + id="tspan5206-7" + x="136.32812" + y="218.24219" + style="stroke-width:0.75594342px">8888</tspan></text> + <path + transform="scale(1,-1)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path5212-5" + sodipodi:sides="3" + sodipodi:cx="620.66675" + sodipodi:cy="-209.2599" + sodipodi:r1="59.825443" + sodipodi:r2="29.912722" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 672.4771,-179.34718 -103.62071,0 51.81036,-89.73817 z" + inkscape:transform-center-y="14.956362" + inkscape:label="-1" /> + <rect + inkscape:label="edit" + onclick="" + y="95.40741" + x="139.85185" + height="128" + width="407.7037" + id="rect5214-3" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <path + inkscape:label="+1" + inkscape:transform-center-y="-14.95636" + d="m 672.4771,142.08535 -103.62071,0 51.81036,-89.738163 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="29.912722" + sodipodi:r1="59.825443" + sodipodi:cy="112.17263" + sodipodi:cx="620.66675" + sodipodi:sides="3" + id="path5218-5" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" /> + </g> + <g + transform="matrix(0.33436432,0,0,0.33436432,-816.49047,278.8185)" + inkscape:label="HMI:Input@.position" + id="g5222-6" + style="stroke-width:0.75594342"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.75594342px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="136.32812" + y="218.24219" + id="text5208-2" + inkscape:label="value"><tspan + sodipodi:role="line" + id="tspan5206-9" + x="136.32812" + y="218.24219" + style="stroke-width:0.75594342px">8888</tspan></text> + <path + transform="scale(1,-1)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path5212-1" + sodipodi:sides="3" + sodipodi:cx="608.70374" + sodipodi:cy="-209.2599" + sodipodi:r1="59.825443" + sodipodi:r2="29.912722" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 660.51409,-179.34718 -103.62071,0 51.81036,-89.73817 z" + inkscape:transform-center-y="14.956362" + inkscape:label="-1" /> + <rect + inkscape:label="edit" + onclick="" + y="95.40741" + x="139.85185" + height="128" + width="407.7037" + id="rect5214-2" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <path + inkscape:label="+1" + inkscape:transform-center-y="-14.95636" + d="m 660.51409,142.08535 -103.62071,0 51.81036,-89.738163 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="29.912722" + sodipodi:r1="59.825443" + sodipodi:cy="112.17263" + sodipodi:cx="608.70374" + sodipodi:sides="3" + id="path5218-7" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" /> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.45700645px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-935.5838" + y="291.8042" + id="text887"><tspan + sodipodi:role="line" + id="tspan885" + x="-935.5838" + y="291.8042" + style="fill:#ffffff;stroke-width:1px">range</tspan></text> + <text + id="text891" + y="291.8042" + x="-702.87115" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.45700645px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="fill:#ffffff;stroke-width:1px" + y="291.8042" + x="-702.87115" + id="tspan889" + sodipodi:role="line">position</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.45700645px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-471.33417" + y="291.8042" + id="text895"><tspan + sodipodi:role="line" + id="tspan893" + x="-471.33417" + y="291.8042" + style="fill:#ffffff;stroke-width:1px">notify</tspan></text> + <g + style="stroke-width:2" + inkscape:label="HMI:Input@/ALARMTEXT" + id="g1442-3" + transform="matrix(0.5,0,0,0.5,-915.0529,113.05833)"> + <rect + inkscape:label="edit" + onclick="" + y="77.265099" + x="-648.04266" + height="179.83517" + width="1195.5988" + id="rect1400-5" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#cacaca;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + ry="36.786537" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#0e0e0e;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="545.95312" + y="218.24219" + id="text1398-6" + inkscape:label="value"><tspan + sodipodi:role="line" + id="tspan1396-7" + x="545.95312" + y="218.24219" + style="text-align:end;text-anchor:end;fill:#0e0e0e;fill-opacity:1;stroke-width:2px">8888</tspan></text> + </g> + <g + style="stroke-width:1.04184687" + inkscape:label="HMI:Input@/SENDALARM" + id="g953" + transform="translate(-1386.3329,-450.57041)"> + <g + id="g1839" + inkscape:label="+1"> + <g + id="g945" + inkscape:label="bg" + style="stroke-width:1.04184687"> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5.20923424;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect943" + width="245.44583" + height="95.723877" + x="971.96545" + y="594.82263" + ry="23.177595" + inkscape:label="button" + rx="26.820074" /> + </g> + <g + id="g951" + inkscape:label="text" + style="stroke-width:1.04184687"> + <text + inkscape:label="setting_jmp" + id="text949" + y="656.98151" + x="1090.7626" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:1.04184675px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:1.04184675px" + y="656.98151" + x="1090.7626" + id="tspan947" + sodipodi:role="line">trigger</tspan></text> + </g> + </g> + </g> + <g + style="stroke-width:2" + inkscape:label="HMI:Input@/ALARMSTATUS" + id="g1887" + transform="matrix(0.28590269,0,0,0.28590269,-631.94615,129.07897)"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:148.39013672px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="329.13501" + y="214.01605" + id="text1843" + inkscape:label="value"><tspan + sodipodi:role="line" + id="tspan1841" + x="329.13501" + y="214.01605" + style="text-align:center;text-anchor:middle;stroke-width:1.99999988px">8888</tspan></text> + <g + style="stroke-width:1.09375393" + id="g1853" + inkscape:label="="ack"" + transform="matrix(1.8285648,0,0,1.8285648,-936.17681,115.40643)"> + <path + inkscape:connector-curvature="0" + id="path1847" + d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z" + inkscape:transform-center-y="-14.956361" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.46877003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <text + id="text1851" + y="112.62867" + x="738.57678" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.54687697px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:0.54687697px" + y="112.62867" + x="738.57678" + id="tspan1849" + sodipodi:role="line">ack</tspan></text> + </g> + <g + style="stroke-width:1.09375393" + id="g1861" + inkscape:label="="disabled"" + transform="matrix(1.8285648,0,0,1.8285648,-1012.4359,109.57379)"> + <path + inkscape:connector-curvature="0" + id="path1847-7" + d="m 738.52607,148.37593 -80.6293,0.60214 -0.6021,-80.629288 80.6293,-0.60214 z" + inkscape:transform-center-y="-14.956361" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.46877003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.54687697px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="656.177" + y="115.81841" + id="text1859"><tspan + sodipodi:role="line" + id="tspan1857" + x="656.177" + y="115.81841" + style="stroke-width:0.54687697px">disabled</tspan></text> + </g> + <g + style="stroke-width:1.09375393" + id="g1869" + inkscape:label="="active"" + transform="matrix(1.8285648,0,0,1.8285648,-998.18055,84.666267)"> + <path + inkscape:connector-curvature="0" + id="path1847-5" + d="m 630.35651,161.99728 -80.6293,0.60214 -0.6021,-80.629287 80.6293,-0.60214 z" + inkscape:transform-center-y="-14.956361" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.46877003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <text + id="text1867" + y="129.43976" + x="559.26227" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.54687697px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:0.54687697px" + y="129.43976" + x="559.26227" + id="tspan1865" + sodipodi:role="line">active</tspan></text> + </g> + <g + style="stroke-width:1.09375393" + id="g1877" + inkscape:label="="alarm"" + transform="matrix(1.8285648,0,0,1.8285648,-1114.212,118.29284)"> + <path + inkscape:connector-curvature="0" + id="path1847-3" + d="m 994.91832,143.60768 -80.62931,0.60214 -0.6021,-80.629285 80.62931,-0.60214 z" + inkscape:transform-center-y="-14.956361" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.46877003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <text + id="text1875" + y="111.05016" + x="925.82605" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.54687697px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:0.54687697px" + y="111.05016" + x="925.82605" + id="tspan1873" + sodipodi:role="line">alarm</tspan></text> + </g> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:20px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-926.47461" + y="134.36742" + id="text2019-9"><tspan + sodipodi:role="line" + id="tspan2017-2" + x="-926.47461" + y="134.36742" + style="fill:#ffffff;stroke-width:1px">Alarm Text</tspan></text> + <text + id="text2174" + y="134.36742" + x="-546.47461" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:20px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="fill:#ffffff;stroke-width:1px" + y="134.36742" + x="-546.47461" + id="tspan2172" + sodipodi:role="line">Status</tspan></text> + <g + transform="matrix(0.57180538,0,0,0.57180538,326.35945,-231.48695)" + inkscape:label="HMI:Jump:AlarmPage" + id="g2198"> + <g + inkscape:label="button" + id="g2190"> + <rect + inkscape:label="button" + ry="35.579063" + y="594.82263" + x="971.96545" + height="95.723877" + width="245.44583" + id="rect2188" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + rx="35.579063" /> + </g> + <g + inkscape:label="text" + id="g2196"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="1090.7626" + y="656.98151" + id="text2194" + inkscape:label="setting_jmp"><tspan + sodipodi:role="line" + id="tspan2192" + x="1090.7626" + y="656.98151" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px">Alarms</tspan></text> + </g> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:45.74443054px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.28590268px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="628.18188" + y="242.50345" + id="text889" + inkscape:label="HMI:Display@/PUMP0/FLOATING"><tspan + sodipodi:role="line" + id="tspan887" + x="628.18188" + y="242.50345" + style="fill:#ffffff;fill-opacity:1;stroke-width:0.28590268px">8888</tspan></text> + <g + style="stroke-width:0.75594342" + id="g900" + inkscape:label="HMI:Input@.filter" + transform="matrix(0.33436432,0,0,0.33436432,-1288.7703,278.8185)"> + <text + inkscape:label="value" + id="text892" + y="218.24219" + x="136.32812" + style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.75594342px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:0.75594342px" + y="218.24219" + x="136.32812" + id="tspan890" + sodipodi:role="line">8888</tspan></text> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect896" + width="615.05096" + height="128" + x="139.85185" + y="95.40741" + onclick="" + inkscape:label="edit" /> + </g> + <text + id="text904" + y="291.8042" + x="-1175.5837" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.45700645px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="fill:#ffffff;stroke-width:1px" + y="291.8042" + x="-1175.5837" + id="tspan902" + sodipodi:role="line">filter</tspan></text> + <g + id="g909" + inkscape:label="HMI:VarInit:""@.filter" /> + <g + transform="matrix(0.14295135,0,0,0.14295135,449.21833,37.615184)" + id="g4646" + inkscape:label="HMI:Input@paff" + style="stroke-width:4"> + <text + inkscape:label="value" + id="text4602" + y="218.24219" + x="136.32812" + style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:4px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:4px" + y="218.24219" + x="136.32812" + id="tspan4600" + sodipodi:role="line">8888</tspan></text> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect4604" + width="407.7037" + height="128" + x="139.85185" + y="95.40741" + onclick="" + inkscape:label="edit" /> + <g + transform="translate(-416.52022,170.47452)" + inkscape:label="+"dhu"" + id="g4612" + style="stroke-width:4"> + <path + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + inkscape:transform-center-y="-14.956361" + d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z" + id="path4606" + inkscape:connector-curvature="0" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="733.58197" + y="111.05016" + id="text4610"><tspan + sodipodi:role="line" + id="tspan4608" + x="733.58197" + y="111.05016" + style="stroke-width:2px">dhu</tspan></text> + </g> + <g + transform="translate(-416.52022,170.47452)" + inkscape:label="="plop"" + id="g4620" + style="stroke-width:4"> + <path + transform="matrix(0,-2.0000001,1.9999999,0,1034.195,1298.6541)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path4614" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="-184.98808" + sodipodi:r1="29.912722" + sodipodi:r2="14.956361" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z" + inkscape:transform-center-y="-3.6154501e-05" + inkscape:transform-center-x="14.956371" /> + <text + id="text4618" + y="111.05016" + x="633.09552" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:2px" + y="111.05016" + x="633.09552" + id="tspan4616" + sodipodi:role="line">plop</tspan></text> + </g> + <g + transform="translate(-416.52022,170.47452)" + inkscape:label="="mhoo"" + id="g4628" + style="stroke-width:4"> + <path + inkscape:transform-center-y="-5.9989963e-06" + d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="29.912722" + sodipodi:r1="59.825443" + sodipodi:cy="-216.2599" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path4622" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" + transform="rotate(-90,746.45698,-44.543641)" + inkscape:transform-center-x="14.956364" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="537.25018" + y="111.05016" + id="text4626"><tspan + sodipodi:role="line" + id="tspan4624" + x="537.25018" + y="111.05016" + style="stroke-width:2px">mhoo</tspan></text> + </g> + <g + transform="translate(-416.52022,170.47452)" + inkscape:label="="yodl"" + id="g4636" + style="stroke-width:4"> + <path + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path4630" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="105.17262" + sodipodi:r1="59.825443" + sodipodi:r2="29.912722" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z" + inkscape:transform-center-y="-5.5023185e-06" + transform="matrix(0,-1,-1,0,1043.9134,701.91334)" + inkscape:transform-center-x="-14.956365" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="925.82605" + y="111.05016" + id="text4634"><tspan + sodipodi:role="line" + id="tspan4632" + x="925.82605" + y="111.05016" + style="stroke-width:2px">yodl</tspan></text> + </g> + <g + transform="translate(-416.52022,170.47452)" + inkscape:label="="mhe"" + id="g4644" + style="stroke-width:4"> + <path + inkscape:transform-center-y="-3.3040441e-05" + d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="14.956361" + sodipodi:r1="29.912722" + sodipodi:cy="136.44444" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path4638" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" + transform="matrix(0,-2.0000001,-1.9999999,0,1122.1514,1298.6541)" + inkscape:transform-center-x="-14.956349" /> + <text + id="text4642" + y="111.05016" + x="842.71497" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:2px" + y="111.05016" + x="842.71497" + id="tspan4640" + sodipodi:role="line">mhe</tspan></text> + </g> + </g> + <g + style="stroke-width:4" + inkscape:label="HMI:Input@.piff" + id="g4694" + transform="matrix(0.14295135,0,0,0.14295135,449.21833,97.61518)"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:4px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="136.32812" + y="218.24219" + id="text4650" + inkscape:label="value"><tspan + sodipodi:role="line" + id="tspan4648" + x="136.32812" + y="218.24219" + style="stroke-width:4px">8888</tspan></text> + <rect + inkscape:label="edit" + onclick="" + y="95.40741" + x="139.85185" + height="128" + width="407.7037" + id="rect4652" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <g + style="stroke-width:4" + id="g4660" + inkscape:label="+"dhu"" + transform="translate(-416.52022,170.47452)"> + <path + inkscape:connector-curvature="0" + id="path4654" + d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z" + inkscape:transform-center-y="-14.956361" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <text + id="text4658" + y="111.05016" + x="733.58197" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:2px" + y="111.05016" + x="733.58197" + id="tspan4656" + sodipodi:role="line">dhu</tspan></text> + </g> + <g + style="stroke-width:4" + id="g4668" + inkscape:label="="plop"" + transform="translate(-416.52022,170.47452)"> + <path + inkscape:transform-center-x="14.956371" + inkscape:transform-center-y="-3.6154501e-05" + d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="14.956361" + sodipodi:r1="29.912722" + sodipodi:cy="-184.98808" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path4662" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" + transform="matrix(0,-2.0000001,1.9999999,0,1034.195,1298.6541)" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="633.09552" + y="111.05016" + id="text4666"><tspan + sodipodi:role="line" + id="tspan4664" + x="633.09552" + y="111.05016" + style="stroke-width:2px">plop</tspan></text> + </g> + <g + style="stroke-width:4" + id="g4676" + inkscape:label="="mhoo"" + transform="translate(-416.52022,170.47452)"> + <path + inkscape:transform-center-x="14.956364" + transform="rotate(-90,746.45698,-44.543641)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path4670" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="-216.2599" + sodipodi:r1="59.825443" + sodipodi:r2="29.912722" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z" + inkscape:transform-center-y="-5.9989963e-06" /> + <text + id="text4674" + y="111.05016" + x="537.25018" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:2px" + y="111.05016" + x="537.25018" + id="tspan4672" + sodipodi:role="line">mhoo</tspan></text> + </g> + <g + style="stroke-width:4" + id="g4684" + inkscape:label="="yodl"" + transform="translate(-416.52022,170.47452)"> + <path + inkscape:transform-center-x="-14.956365" + transform="matrix(0,-1,-1,0,1043.9134,701.91334)" + inkscape:transform-center-y="-5.5023185e-06" + d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="29.912722" + sodipodi:r1="59.825443" + sodipodi:cy="105.17262" + sodipodi:cx="596.74072" + sodipodi:sides="3" + id="path4678" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" /> + <text + id="text4682" + y="111.05016" + x="925.82605" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:2px" + y="111.05016" + x="925.82605" + id="tspan4680" + sodipodi:role="line">yodl</tspan></text> + </g> + <g + style="stroke-width:4" + id="g4692" + inkscape:label="="mhe"" + transform="translate(-416.52022,170.47452)"> + <path + inkscape:transform-center-x="-14.956349" + transform="matrix(0,-2.0000001,-1.9999999,0,1122.1514,1298.6541)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path4686" + sodipodi:sides="3" + sodipodi:cx="596.74072" + sodipodi:cy="136.44444" + sodipodi:r1="29.912722" + sodipodi:r2="14.956361" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z" + inkscape:transform-center-y="-3.3040441e-05" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="842.71497" + y="111.05016" + id="text4690"><tspan + sodipodi:role="line" + id="tspan4688" + x="842.71497" + y="111.05016" + style="stroke-width:2px">mhe</tspan></text> + </g> + </g> + <g + id="g7994" + inkscape:label="Gray Page Template"> + <rect + y="-800" + x="0" + height="720" + width="1280" + id="rect4270" + style="color:#000000;fill:#4d4d4d" /> + <g + id="g4282" + inkscape:label="HMI:Jump:Home" + transform="translate(-10.6526,-2134.1633)"> + <g + id="g4274" + inkscape:label="button"> + <path + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="m 1217.4113,1410.4016 -22,24.5657 c -10.7925,12.0511 6.1317,35.5791 -13.5791,35.5791 h -174.2877 c -19.71078,0 -2.7866,-23.528 -13.57905,-35.5791 l -22,-24.5657 127.74845,-48.4334 z" + id="path4272" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cssssccc" /> + </g> + <g + id="g4280" + inkscape:label="text"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="1090.7626" + y="1436.9814" + id="text4278" + inkscape:label="home_jmp"><tspan + sodipodi:role="line" + id="tspan4276" + x="1090.7626" + y="1436.9814" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px">Home</tspan></text> + </g> + </g> + </g> + <g + id="g3435" + inkscape:label="Meter Page" + transform="translate(2680,780)"> + <use + x="0" + y="0" + xlink:href="#g9808" + id="use9820" + width="100%" + height="100%" + transform="translate(0,-780)" + inkscape:label="HMI:Page:Meters" /> + <g + id="g7998" + transform="matrix(2.1611542,0,0,2.1611542,1429.2874,1051.3886)" + inkscape:label="HMI:Meter@/PUMP0/SLOTH"> + <path + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#3ee800;stroke-width:1.38814712;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:url(#marker19820);marker-end:url(#marker25117);color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path7978" + sodipodi:type="arc" + sodipodi:cx="128.02208" + sodipodi:cy="2.2017097" + sodipodi:rx="64.411957" + sodipodi:ry="64.411957" + sodipodi:start="3.1415927" + sodipodi:end="4.712389" + d="M 63.610123,2.2017068 A 64.411957,64.411957 0 0 1 128.02208,-62.210247" + sodipodi:open="true" + inkscape:label="range" /> + <path + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ff6600;stroke-width:0.92543143;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:29.63333321;stroke-opacity:1;marker-start:url(#DotM);marker-end:url(#marker26099)" + d="M 130.96206,4.0725977 79.111776,-41.363223" + id="path7980" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" + inkscape:label="needle" /> + <text + inkscape:label="min" + id="text7984" + y="4.9187088" + x="49.132977" + style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="text-align:end;text-anchor:end;fill:#ff6600;stroke-width:0.26458332px" + y="4.9187088" + x="49.132977" + id="tspan7982" + sodipodi:role="line">0</tspan></text> + <text + inkscape:label="max" + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="127.48073" + y="-68.889908" + id="text7988"><tspan + sodipodi:role="line" + id="tspan7986" + x="127.48073" + y="-68.889908" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px">10000</tspan></text> + <text + inkscape:label="value" + id="text7992" + y="-52.465355" + x="67.258514" + style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + id="tspan7990" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px" + y="-52.465355" + x="67.258514" + sodipodi:role="line">[value]</tspan></text> + </g> + <g + inkscape:label="HMI:Meter@/PUMP0/SLOTH" + transform="matrix(4.1320069,0,0,4.1320069,1099.2525,1427.5173)" + id="g8050"> + <path + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#3ee800;stroke-width:0.72603947;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:url(#marker28436);marker-end:url(#marker28710);color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="M 113.38908,2.2017068 V -62.210247" + id="path8030" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" + inkscape:label="range" /> + <path + inkscape:label="needle" + sodipodi:nodetypes="cc" + inkscape:connector-curvature="0" + id="path8032" + d="M 113.38908,4.0725977 V -42.849195" + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ff6600;stroke-width:0.48402631;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:15.49905491;stroke-opacity:1;marker-start:url(#marker27514);marker-end:url(#marker27764)" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.29166651px;line-height:125%;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="115.07632" + y="11.762599" + id="text8036" + inkscape:label="min"><tspan + sodipodi:role="line" + id="tspan8034" + x="115.07632" + y="11.762599" + style="text-align:end;text-anchor:end;fill:#ff6600;stroke-width:0.26458332px">0</tspan></text> + <text + id="text8040" + y="-64.195457" + x="113.27539" + style="font-style:normal;font-weight:normal;font-size:5.29166651px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + inkscape:label="max"><tspan + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px" + y="-64.195457" + x="113.27539" + id="tspan8038" + sodipodi:role="line">10000</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.29166651px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.13229166px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="128.20073" + y="-42.97702" + id="text8044" + inkscape:label="value"><tspan + sodipodi:role="line" + x="128.20073" + y="-42.97702" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.13229166px" + id="tspan8042">[value]</tspan></text> + </g> + <g + transform="translate(228.04545,983.55108)" + inkscape:label="HMI:Meter:20:80@/PUMP0/SLOTH" + id="g12171" + style="stroke-width:0.19249482"> + <text + inkscape:label="value" + clip-path="none" + style="font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.66666698px;font-family:'Univers LT CYR 55';-inkscape-font-specification:UniversLTCYR-55Roman;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#4f4c4d;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.06790788" + id="text30068" + x="2087.8633" + y="189.43953"> + <tspan + x="2087.8633" + sodipodi:role="line" + id="tspan30066" + style="font-size:10.66666698px;text-align:center;text-anchor:middle;stroke-width:0.06790788" + y="189.43953">5,150</tspan> + </text> + <use + x="0" + y="0" + xlink:href="#g817" + id="use1727-4" + width="100%" + height="100%" + transform="translate(127.87468,-983.55108)" + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#00adef;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + </g> + <g + inkscape:label="meter_template" + transform="matrix(10.390029,0,0,10.38975,-19578.073,-843.55094)" + id="g817" + style="stroke-width:0.19249482"> + <path + inkscape:connector-curvature="0" + id="path12105" + d="M 2072.956,223.66129 V 195.4613" + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#7b7979;stroke-width:1.92494833;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + inkscape:label="outline" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#e9e9e9;stroke-width:1.53995872;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 2072.956,223.66129 V 195.4613" + id="path12107" + inkscape:connector-curvature="0" + inkscape:label="range" + sodipodi:nodetypes="cc" /> + <path + style="stroke-width:1.53995872;stroke-miterlimit:4;stroke-dasharray:none" + inkscape:label="needle" + d="M 2072.956,223.66129 V 209.9227" + id="path12109" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + </g> + <g + transform="translate(138.03504,983.55108)" + style="stroke-width:0.19249482" + id="g8181" + inkscape:label="HMI:Meter:20:80@/PUMP0/SLOTH"> + <text + y="189.43953" + x="2087.8633" + id="text8177" + style="font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.66666698px;font-family:'Univers LT CYR 55';-inkscape-font-specification:UniversLTCYR-55Roman;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#4f4c4d;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.06790788" + clip-path="none" + inkscape:label="value"> + <tspan + y="189.43953" + style="font-size:10.66666698px;text-align:center;text-anchor:middle;stroke-width:0.06790788" + id="tspan8175" + sodipodi:role="line" + x="2087.8633">5,150</tspan> + </text> + <use + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#efd200;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + transform="translate(127.87468,-983.55108)" + height="100%" + width="100%" + id="use8179" + xlink:href="#g817" + y="0" + x="0" /> + </g> + <g + transform="translate(183.04025,983.55108)" + inkscape:label="HMI:Meter:20:80@/PUMP0/SLOTH" + id="g8189" + style="stroke-width:0.19249482"> + <text + inkscape:label="value" + clip-path="none" + style="font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.66666698px;font-family:'Univers LT CYR 55';-inkscape-font-specification:UniversLTCYR-55Roman;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#4f4c4d;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.06790788" + id="text8185" + x="2087.8633" + y="189.43953"> + <tspan + x="2087.8633" + sodipodi:role="line" + id="tspan8183" + style="font-size:10.66666698px;text-align:center;text-anchor:middle;stroke-width:0.06790788" + y="189.43953">5,150</tspan> + </text> + <use + x="0" + y="0" + xlink:href="#g817" + id="use8187" + width="100%" + height="100%" + transform="translate(127.87468,-983.55108)" + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ef0000;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + </g> + <g + transform="translate(273.05066,983.55108)" + style="stroke-width:0.19249482" + id="g8197" + inkscape:label="HMI:Meter:20:80@/PUMP0/SLOTH"> + <text + y="189.43953" + x="2087.8633" + id="text8193" + style="font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.66666698px;font-family:'Univers LT CYR 55';-inkscape-font-specification:UniversLTCYR-55Roman;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#4f4c4d;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.06790788" + clip-path="none" + inkscape:label="value"> + <tspan + y="189.43953" + style="font-size:10.66666698px;text-align:center;text-anchor:middle;stroke-width:0.06790788" + id="tspan8191" + sodipodi:role="line" + x="2087.8633">5,150</tspan> + </text> + <use + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:0.192;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + transform="translate(127.87468,-983.55108)" + height="100%" + width="100%" + id="use8195" + xlink:href="#g817" + y="0" + x="0" /> + </g> + <text + id="text8201" + y="830.39062" + x="1512.8077" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none" + xml:space="preserve"><tspan + y="830.39062" + x="1512.8077" + id="tspan8199" + sodipodi:role="line">HMI:Meter:[min:max]@path</tspan></text> + <path + inkscape:connector-curvature="0" + id="path8203" + d="m 2012.6196,1364.7036 h 150.322" + style="fill:none;stroke:#000000;stroke-width:3.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Lend)" /> + <text + id="text8753" + y="1309.4535" + x="2020.9539" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + xml:space="preserve"><tspan + style="stroke-width:0.5" + id="tspan8755" + y="1309.4535" + x="2020.9539" + sodipodi:role="line">clone +</tspan><tspan + style="stroke-width:0.5" + id="tspan8765" + y="1334.4535" + x="2020.9539" + sodipodi:role="line">stroke color</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + x="1764.9539" + y="1203.4535" + id="text11347"><tspan + id="tspan11354" + sodipodi:role="line" + x="1764.9539" + y="1203.4535" + style="font-size:16px;stroke-width:0.5">template </tspan><tspan + id="tspan26649" + sodipodi:role="line" + x="1764.9539" + y="1223.4535" + style="font-size:16px;stroke-width:0.5">(usually out of page)</tspan><tspan + id="tspan11356" + sodipodi:role="line" + x="1764.9539" + y="1243.4535" + style="font-size:16px;stroke-width:0.5">needle has undefined</tspan><tspan + id="tspan11358" + sodipodi:role="line" + x="1764.9539" + y="1263.4535" + style="font-size:16px;stroke-width:0.5">stroke paint</tspan></text> + <g + inkscape:label="VoltmeterAndAmmeter" + id="g18566" + transform="matrix(0.1142708,0,0,0.1142708,2084.8332,915.30993)"> + <g + id="g24836"> + <rect + x="815.72998" + y="-352.34" + width="2055.1001" + height="2055.1001" + ry="129.3" + rx="129.3" + style="fill:#000000" + id="rect5399" /> + <rect + x="862.09003" + y="-305.98001" + width="1962.4" + height="1962.4" + ry="90.727997" + rx="90.727997" + style="fill:#333333" + id="rect5401" /> + <rect + x="888.34998" + y="-279.72" + width="1909.9" + height="1909.9" + ry="70.525002" + rx="70.525002" + style="fill:#000000" + id="rect5403" /> + <rect + x="2621.8999" + y="802.65002" + width="97.857002" + height="45" + ry="22.5" + rx="22.5" + style="fill:#333333" + id="rect5405" /> + <path + d="m 1140.5,-149.32 c -67.467,0 -121.78,54.312 -121.78,121.78 v 1405.5 c 0,67.467 54.312,121.78 121.78,121.78 h 680.32 c 29.662,0 47.115,-4.0298 64.849,-21.729 l 755.79,-754.27 c 23.851,-23.803 26.352,-40.896 26.352,-72.473 v -678.83 c 0,-67.467 -54.312,-121.78 -121.78,-121.78 z" + inkscape:connector-curvature="0" + style="fill:#333333" + sodipodi:nodetypes="sssssssssss" + id="path5407" /> + <path + inkscape:connector-curvature="0" + style="fill:#000000" + d="M 2038.4,1279.8 2476.97,851.23 H 2032.68 Z" + id="path5409" /> + <path + inkscape:connector-curvature="0" + style="fill:#e6e6e6" + d="m 2205.5,1048.4 -48.571,-54.286 33.571,-33.571 54.286,54.286" + id="path5413" /> + <path + inkscape:connector-curvature="0" + style="fill:#cccccc" + sodipodi:nodetypes="ccccccccccc" + d="m 2114.8,1205.5 -37.143,-36.429 11.428,-12.857 30.714,6.4286 54.286,-54.286 c -6.7697,-14.828 -2.7536,-22.791 11.429,-24.286 -18.934,-68.674 49.856,-114.43 102.86,-90 l 60.714,-60 -12.143,-30 11.429,-10 41.428,35" + id="path5415" /> + <path + d="m 1156,-131.14 c -65.98,0 -119.09,53.114 -119.09,119.09 v 1374.5 c 0,65.979 53.114,119.09 119.09,119.09 h 665.31 c 29.008,0 39.174,-3.9241 56.5,-21.25 l 746.03,-746.03 c 23.302,-23.302 25.781,-31.589 25.781,-62.469 v -663.88 c 0,-65.979 -53.114,-119.09 -119.09,-119.09 h -1374.5 z m 1096.6,1000.2 h 189.31 l -387.34,382.16 v -178.94 c 0,-107.21 90.807,-203.22 198.03,-203.22 z" + inkscape:connector-curvature="0" + style="fill:#e1e1d1" + id="path5417" /> + <path + transform="matrix(1.037,0,0,1.037,1984.9,-1799.2)" + d="m -823.78,1579.8 c -65.979,0 -119.09,53.114 -119.09,119.09 v 1374.5 c 0,51.168 31.947,94.61 77.062,111.53 -1.8213,-8.3056 -2.7812,-16.944 -2.7812,-25.813 v -1374.5 c 0,-65.979 53.114,-119.09 119.09,-119.09 h 1374.5 c 14.812,0 28.972,2.6957 42.031,7.5938 -11.729,-53.488 -59.201,-93.312 -116.31,-93.312 h -1374.5 z" + inkscape:connector-curvature="0" + style="opacity:0.85773998;fill:#000000;filter:url(#filter5708)" + id="path5647" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 2252.1,-20.888 a 3.5004,3.5004 0 0 0 -3.0938,3.5312 v 120 a 3.5004,3.5004 0 1 0 7,0 v -120 A 3.5004,3.5004 0 0 0 2252.1,-20.888 Z" + id="path5419" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 1190.6,836.17 a 3.5004,3.5004 0 0 0 -0.4062,6.9375 l 117.28,25.312 a 3.5004,3.5004 0 1 0 1.4688,-6.8438 l -117.28,-25.312 a 3.5004,3.5004 0 0 0 -1.0625,-0.094 z" + id="path5421" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 1441.2,342.92 a 3.5004,3.5004 0 0 0 -2.0625,6.1562 l 89.594,79.781 a 3.5004,3.5004 0 1 0 4.6562,-5.2188 l -89.594,-79.812 a 3.5004,3.5004 0 0 0 -2.5938,-0.9062 z" + id="path5423" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 1876.6,46.143 a 3.5004,3.5004 0 0 0 -3.0313,4.75 l 41.5,112.59 a 3.5004,3.5004 0 1 0 6.5625,-2.4063 l -41.5,-112.59 A 3.5004,3.5004 0 0 0 1876.6,46.1429 Z" + id="path5425" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 2192.8,-19.263 a 3.5004,3.5004 0 0 0 -3.25,3.75 l 3.0312,55.312 a 3.5050187,3.5050187 0 1 0 7,-0.375 L 2196.55,-15.92 a 3.5004,3.5004 0 0 0 -3.75,-3.3437 z" + id="path5427" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 2114.4,-12.107 a 3.5004,3.5004 0 0 0 -3.3125,4 l 7.0313,54.969 a 3.5137,3.5137 0 1 0 6.9687,-0.9063 l -7.0625,-54.937 a 3.5004,3.5004 0 0 0 -3.625,-3.125 z" + id="path5429" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 2042.9,-0.48153 a 3.5004,3.5004 0 0 0 -3.4063,4.2188 l 10.688,54.375 a 3.5025499,3.5025499 0 1 0 6.875,-1.3438 l -10.7,-54.374 a 3.5004,3.5004 0 0 0 -3.4687,-2.875 z" + id="path5431" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 1967,17.237 a 3.5004,3.5004 0 0 0 -3.0625,4.4687 l 14.531,53.438 a 3.5096235,3.5096235 0 1 0 6.7812,-1.8125 l -14.562,-53.469 a 3.5004,3.5004 0 0 0 -3.6875,-2.625 z" + id="path5433" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 1791.7,81.612 a 3.5004,3.5004 0 0 0 -2.9687,5.0312 l 23.5,50.188 a 3.5004,3.5004 0 1 0 6.3125,-2.9687 l -23.469,-50.188 a 3.5004,3.5004 0 0 0 -3.375,-2.0625 z" + id="path5435" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 1681.8,141.02 a 3.5004,3.5004 0 0 0 -2.7188,5.375 l 29.094,47.156 a 3.508,3.508 0 1 0 5.9687,-3.6875 l -29.125,-47.125 a 3.5004,3.5004 0 0 0 -3.2187,-1.7188 z" + id="path5437" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 1589.5,204.77 a 3.5004,3.5004 0 0 0 -2.5,5.6563 l 33.812,43.906 a 3.5096324,3.5096324 0 1 0 5.5625,-4.2812 l -33.812,-43.906 a 3.5004,3.5004 0 0 0 -3.0625,-1.375 z" + id="path5439" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 1515.5,267.24 a 3.5004,3.5004 0 0 0 -2.3125,5.9062 l 37.562,40.688 a 3.5053138,3.5053138 0 1 0 5.1562,-4.75 l -37.594,-40.688 a 3.5004,3.5004 0 0 0 -2.8125,-1.1562 z" + id="path5441" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 1376.1,423.46 a 3.5004,3.5004 0 0 0 -1.8437,6.3438 l 44.688,32.75 a 3.5004,3.5004 0 1 0 4.125,-5.6563 l -44.688,-32.719 a 3.5004,3.5004 0 0 0 -2.2813,-0.7188 z" + id="path5443" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 1308,528.58 a 3.5004,3.5004 0 0 0 -1.4375,6.5625 l 48.156,27.375 a 3.5059,3.5059 0 1 0 3.4687,-6.0937 l -48.156,-27.375 a 3.5004,3.5004 0 0 0 -2.0313,-0.4688 z" + id="path5445" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 1257.6,628.96 a 3.5004,3.5004 0 0 0 -1.0937,6.7188 l 50.719,22.25 a 3.5004,3.5004 0 1 0 2.8125,-6.4063 l -50.719,-22.25 A 3.5004,3.5004 0 0 0 1257.6,628.96 Z" + id="path5447" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 1213.6,747.39 a 3.5004,3.5004 0 0 0 -0.6875,6.8438 l 52.969,16.219 a 3.5004,3.5004 0 1 0 2.0625,-6.6875 l -52.969,-16.219 A 3.5004,3.5004 0 0 0 1213.6,747.39 Z" + id="path5449" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 1175.9,920.21 a 3.5004,3.5004 0 0 0 -0.2187,6.9688 l 54.906,7.4062 a 3.5004,3.5004 0 1 0 0.9375,-6.9375 l -54.906,-7.4062 a 3.5004,3.5004 0 0 0 -0.7188,-0.031 z m 79.625,10.75 a 3.5004,3.5004 0 0 0 -0.2187,6.9688 l 4.4687,0.5937 a 3.5004,3.5004 0 1 0 0.9375,-6.9375 l -4.4687,-0.5937 a 3.5004,3.5004 0 0 0 -0.7188,-0.031 z" + id="path5451" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 1583.2,440.49 a 4.0004,4.0004 0 0 0 -2.9063,1.3437 l -14.625,16.688 a 4.0004,4.0004 0 1 0 6,5.2813 l 7.625,-8.6875 v 76.25 a 4.0004,4.0004 0 1 0 8,0 v -86.875 a 4.0004,4.0004 0 0 0 -4.0937,-4 z" + id="path5453" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 1634.8,440.49 c -15.018,0 -27.219,12.2 -27.219,27.219 v 40.406 c 0,15.018 12.201,27.25 27.219,27.25 15.018,0 27.25,-12.232 27.25,-27.25 v -40.406 c 0,-15.018 -12.232,-27.219 -27.25,-27.219 z m 0,8 c 10.724,0 19.25,8.4942 19.25,19.219 v 40.406 c 0,10.724 -8.5255,19.25 -19.25,19.25 -10.725,0 -19.219,-8.5255 -19.219,-19.25 v -40.406 c 0,-10.724 8.4942,-19.219 19.219,-19.219 z" + id="path5455" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 1707.1,440.49 c -15.018,0 -27.219,12.2 -27.219,27.219 v 40.406 c 0,15.018 12.201,27.25 27.219,27.25 15.018,0 27.25,-12.232 27.25,-27.25 v -40.406 c 0,-15.018 -12.232,-27.219 -27.25,-27.219 z m 0,8 c 10.725,0 19.25,8.4942 19.25,19.219 v 40.406 c 0,10.724 -8.5254,19.25 -19.25,19.25 -10.724,0 -19.219,-8.5255 -19.219,-19.25 v -40.406 c 0,-10.724 8.4942,-19.219 19.219,-19.219 z" + id="path5457" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 2261.9,156.64 c -15.018,0 -27.25,12.201 -27.25,27.219 v 40.406 c 0,15.018 12.232,27.25 27.25,27.25 15.018,0 27.219,-12.232 27.219,-27.25 v -40.406 c 0,-15.018 -12.2,-27.219 -27.219,-27.219 z m 0,8 c 10.724,0 19.219,8.4942 19.219,19.219 v 40.406 c 0,10.725 -8.4942,19.25 -19.219,19.25 -10.7248,0 -19.25,-8.5254 -19.25,-19.25 v -40.406 c 0,-10.725 8.5254,-19.219 19.25,-19.219 z" + id="path5459" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 2334.1,156.64 c -15.018,0 -27.25,12.201 -27.25,27.219 v 40.406 c 0,15.018 12.232,27.25 27.25,27.25 15.018,0 27.219,-12.232 27.219,-27.25 v -40.406 c 0,-15.018 -12.201,-27.219 -27.219,-27.219 z m 0,8 c 10.725,0 19.219,8.4942 19.219,19.219 v 40.406 c 0,10.725 -8.4942,19.25 -19.219,19.25 -10.724,0 -19.25,-8.5254 -19.25,-19.25 v -40.406 c 0,-10.725 8.5255,-19.219 19.25,-19.219 z" + id="path5461" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 2183.5,156.61 c -14.558,0 -26.594,11.436 -26.594,25.656 a 4.0004,4.0004 0 1 0 8,0 c 0,-9.7079 8.1784,-17.656 18.594,-17.656 10.415,0 18.625,7.9483 18.625,17.656 0,3.4188 -0.3012,6.2394 -1.9688,9.125 -1.6675,2.8857 -4.8983,6.1281 -11.656,9.5625 -15.36,7.8058 -30.328,23.228 -32.812,46.125 a 4.0004,4.0004 0 0 0 3.9687,4.4375 h 45.969 a 4.0004,4.0004 0 1 0 0,-8 h -41.219 c 3.4596,-17.376 15.261,-29.122 27.688,-35.438 7.6556,-3.8905 12.332,-8.1255 14.969,-12.688 2.6363,-4.5619 3.0625,-9.1977 3.0625,-13.125 0,-14.22 -12.067,-25.656 -26.625,-25.656 z" + id="path5463" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 1860,235.42 a 4.0004,4.0004 0 0 0 -2.9062,1.3437 l -14.625,16.688 a 4.0004,4.0004 0 1 0 6,5.2813 l 7.6562,-8.7188 v 76.281 a 4.0004,4.0004 0 1 0 8,0 v -86.875 a 4.0004,4.0004 0 0 0 -4.125,-4 z" + id="path5465" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 1983.8,235.42 c -15.018,0 -27.219,12.2 -27.219,27.219 v 40.406 c 0,15.018 12.201,27.25 27.219,27.25 15.018,0 27.25,-12.232 27.25,-27.25 v -40.406 c 0,-15.018 -12.232,-27.219 -27.25,-27.219 z m 0,8 c 10.724,0 19.25,8.4942 19.25,19.219 v 40.406 c 0,10.724 -8.5255,19.25 -19.25,19.25 -10.725,0 -19.219,-8.5255 -19.219,-19.25 v -40.406 c 0,-10.724 8.4942,-19.219 19.219,-19.219 z" + id="path5467" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 1889.9,235.39 a 4.0004,4.0004 0 0 0 -4,4 v 37.25 a 4.0004,4.0004 0 0 0 7.375,2.125 c 2.999,-4.7533 11.204,-8.0625 18.344,-8.0625 10.688,0 19.25,8.6481 19.25,19.625 v 12.344 c 0,10.977 -8.5616,19.625 -19.25,19.625 -7.2062,0 -15.114,-4.3265 -18.219,-9.875 a 4.0081,4.0081 0 1 0 -7,3.9062 c 4.876,8.7155 15.069,13.969 25.219,13.969 15.054,0 27.25,-12.426 27.25,-27.625 v -12.344 c 0,-15.199 -12.196,-27.625 -27.25,-27.625 -5.9926,0 -12.456,1.4612 -17.719,4.6875 v -24 h 35.406 a 4.0004,4.0004 0 1 0 0,-8 H 1889.9 Z" + id="path5469" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 1470.7,824.33 c -15.018,0 -27.219,12.232 -27.219,27.25 v 40.406 c 0,15.018 12.201,27.219 27.219,27.219 15.018,0 27.25,-12.201 27.25,-27.219 V 851.58 c 0,-15.018 -12.232,-27.25 -27.25,-27.25 z m 0,8 c 10.725,0 19.25,8.5255 19.25,19.25 v 40.406 c 0,10.724 -8.5254,19.219 -19.25,19.219 -10.724,0 -19.219,-8.4942 -19.219,-19.219 V 851.58 c 0,-10.724 8.4942,-19.25 19.219,-19.25 z" + id="path5471" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 1376.3,824.33 a 4.0004,4.0004 0 0 0 -3.5938,4 v 37.219 a 4.0004,4.0004 0 0 0 7.375,2.1562 c 2.999,-4.7533 11.204,-8.0625 18.344,-8.0625 10.688,0 19.25,8.6481 19.25,19.625 v 12.312 c 0,10.977 -8.5616,19.625 -19.25,19.625 -7.2063,0 -15.114,-4.3265 -18.219,-9.875 a 4.0081,4.0081 0 1 0 -7,3.9063 c 4.8761,8.7155 15.069,13.969 25.219,13.969 15.054,0 27.25,-12.426 27.25,-27.625 v -12.312 c 0,-15.199 -12.196,-27.625 -27.25,-27.625 -5.9927,0 -12.456,1.4612 -17.719,4.6875 v -24 h 35.406 a 4.0004,4.0004 0 1 0 0,-8 h -39.406 a 4.0004,4.0004 0 0 0 -0.4062,0 z" + id="path5473" /> + <path + d="m 1284.7,72.831 -1.1875,5.5313 -30.312,141.13 h 13.719 l 7,-31.844 h 46.156 l 8.5312,31.844 h 13.531 l -36.938,-141.47 -1.375,-5.1875 h -5.375 -8.0938 -5.6562 z m 10.031,20.062 21.594,80.75 h -39.344 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path5475" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 1146.3,900.96 c -8.4837,0 -15.375,6.8914 -15.375,15.375 v 22.844 c 0,8.4836 6.8913,15.375 15.375,15.375 8.4836,0 15.406,-6.8914 15.406,-15.375 v -22.844 c 0,-8.4836 -6.9226,-15.375 -15.406,-15.375 z m 0,4.5 c 6.0685,0 10.906,4.8065 10.906,10.875 v 22.844 c 0,6.0685 -4.8377,10.875 -10.906,10.875 -6.0685,0 -10.875,-4.8065 -10.875,-10.875 v -22.844 c 0,-6.0685 4.8065,-10.875 10.875,-10.875 z" + id="path5477" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 1115.6,900.96 a 2.2502,2.2502 0 0 0 -1.5938,1.0313 l -22.156,34.875 a 2.2502,2.2502 0 0 0 1.9062,3.4375 h 19.875 v 12 a 2.2502,2.2502 0 1 0 4.5,0 v -12 h 1.3438 a 2.2502,2.2502 0 1 0 0,-4.5 h -1.3438 v -32.594 a 2.2502,2.2502 0 0 0 -2.5312,-2.25 z m -1.9688,9.9688 v 24.875 h -15.781 z" + id="path5479" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 1284.9,1200.5 a 2.5002,2.5002 0 0 0 -1.8125,0.8438 l -7.8125,8.9062 a 2.5018,2.5018 0 1 0 3.75,3.3125 l 3.4375,-3.9062 v 39.781 a 2.5002,2.5002 0 1 0 5,0 v -46.438 a 2.5002,2.5002 0 0 0 -2.5625,-2.5 z" + id="path5481" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 1306.7,1200.5 a 2.5002,2.5002 0 0 0 -2.25,2.5 v 19.906 a 2.5002,2.5002 0 0 0 4.625,1.3125 c 1.5017,-2.3802 5.7817,-4.125 9.5,-4.125 5.5171,0 9.9062,4.4471 9.9062,10.125 v 6.5937 c 0,5.6779 -4.3891,10.125 -9.9062,10.125 -3.7197,0 -7.858,-2.2704 -9.4375,-5.0937 a 2.5041,2.5041 0 1 0 -4.375,2.4375 c 2.6869,4.8026 8.253,7.6562 13.812,7.6562 8.2458,0 14.906,-6.8081 14.906,-15.125 v -6.5937 c 0,-8.3169 -6.6604,-15.125 -14.906,-15.125 -3.0809,0 -6.3424,0.7822 -9.125,2.3437 v -11.938 h 18.562 a 2.5002,2.5002 0 1 0 0,-5 h -21.062 a 2.5002,2.5002 0 0 0 -0.25,0 z" + id="path5483" /> + <path + d="m 1297.5,1245.5 c -2.2316,0 -4.0625,1.8309 -4.0625,4.0625 0,1.973 1.4112,3.5834 3.2812,3.9375 -0.352,1.6422 -0.8243,3.5675 -1.625,6.4063 3.379,-3.3497 5.078,-6.1448 6.0625,-8.6875 0.013,-0.033 0.05,-0.061 0.062,-0.094 v -0.031 c 0.1971,-0.476 0.3125,-0.9841 0.3125,-1.5313 0,-2.2316 -1.7996,-4.0625 -4.0312,-4.0625 z" + inkscape:connector-curvature="0" + style="fill:#000000" + id="path5485" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 1197.6,1211.8 c -5.4507,0.026 -10.966,1.9221 -16,6.6562 a 2.5092298,2.5092298 0 1 0 3.4375,3.6563 c 5.6656,-5.3286 10.954,-6.1333 16.938,-4.875 5.9835,1.2583 12.504,4.8898 19.125,8.7187 6.6209,3.8289 13.346,7.8504 20.312,9.5313 6.9667,1.6808 14.393,0.7108 20.875,-5.2813 a 2.5100068,2.5100068 0 1 0 -3.4063,-3.6875 c -5.3695,4.9637 -10.436,5.5429 -16.312,4.125 -5.8769,-1.4179 -12.328,-5.1594 -18.969,-9 -6.6411,-3.8405 -13.471,-7.7833 -20.594,-9.2812 -1.7807,-0.3745 -3.5893,-0.5714 -5.4062,-0.5625 z" + id="path5487" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 1365.1,1188.7 a 2.5002,2.5002 0 0 0 -2.4688,2.5313 v 55.594 a 2.5002,2.5002 0 1 0 5,0 v -55.594 A 2.5002,2.5002 0 0 0 1365.1,1188.7 Z" + id="path5489" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 1406.1,1187 a 2.5002,2.5002 0 0 0 -0.6562,0.1563 l -54,19.156 a 2.5002,2.5002 0 0 0 0,4.7188 l 18.5,6.5 -18.5,6.5625 a 2.5002,2.5002 0 0 0 0,4.7187 l 18.469,6.5313 -18.469,6.5312 a 2.5002,2.5002 0 0 0 0,4.7188 l 54,19.156 a 2.5002,2.5002 0 1 0 1.6875,-4.6875 l -47.375,-16.812 18.469,-6.5312 a 2.5002,2.5002 0 0 0 0,-4.7188 l -18.469,-6.5625 18.469,-6.5625 a 2.5002,2.5002 0 0 0 0,-4.6875 l -18.469,-6.5312 47.375,-16.781 a 2.5002,2.5002 0 0 0 -1.0313,-4.875 z" + id="path5491" /> + <circle + r="6.5068183" + cy="330.90106" + cx="-574.59137" + transform="matrix(0.59248,0,0,0.59248,1746.3,993.55)" + style="fill:#000000" + id="path5493" /> + <circle + r="6.5068183" + cy="330.90106" + cx="-574.59137" + transform="matrix(0.59248,0,0,0.59248,1746.3,1067.2)" + style="fill:#000000" + id="path5495" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 1467.3,1185.7 a 2.5002,2.5002 0 0 0 -1.784,1.1002 l -14.719,21.974 -25.423,7.2256 a 2.5002,2.5002 0 0 0 -1.2785,3.9547 l 16.354,20.784 -0.9515,26.434 a 2.5002,2.5002 0 0 0 3.36,2.4085 l 24.799,-9.0988 24.828,9.0691 a 2.5002,2.5002 0 0 0 3.36,-2.4382 l -1.011,-26.404 16.295,-20.814 a 2.5002,2.5002 0 0 0 -1.2786,-3.9547 l -25.423,-7.2255 -14.748,-21.914 a 2.5002,2.5002 0 0 0 -2.3788,-1.1002 z m 0.2974,6.9877 13.202,19.595 a 2.5002,2.5002 0 0 0 1.3975,1.011 l 22.717,6.4524 -14.57,18.584 a 2.5002,2.5002 0 0 0 -0.5352,1.6354 l 0.892,23.609 -22.182,-8.0878 a 2.5002,2.5002 0 0 0 -1.7247,0 l -22.182,8.1473 0.8623,-23.639 a 2.5002,2.5002 0 0 0 -0.5352,-1.6354 l -14.57,-18.554 22.688,-6.4822 a 2.5002,2.5002 0 0 0 1.3976,-1.0109 l 13.143,-19.625 z" + id="path5497" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 1467.3,1217.5 c -4.8518,0 -8.8125,3.9608 -8.8125,8.8125 a 2.1387,2.1387 0 1 0 4.25,0 c 0,-2.5403 2.0222,-4.5312 4.5625,-4.5312 2.5403,0 4.5625,1.9909 4.5625,4.5312 0,0.6956 -0.176,1.0804 -0.9063,1.9688 -0.7302,0.8884 -1.9841,2.0898 -3.4062,3.8125 l -9.3438,11.312 a 2.1387,2.1387 0 0 0 1.6563,3.5 h 15.406 a 2.14065,2.14065 0 0 0 0,-4.2813 h -10.875 l 6.4375,-7.8125 c 1.2475,-1.5111 2.4037,-2.5927 3.4063,-3.8125 1.0026,-1.2198 1.9062,-2.8108 1.9062,-4.6875 0,-4.8517 -3.992,-8.8125 -8.8437,-8.8125 z" + id="path5499" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 1522.5,1207.9 a 2.5002,2.5002 0 0 0 -2.5,2.5 v 39.656 a 2.5002,2.5002 0 1 0 5,0 V 1212.9 h 14.156 a 2.5002,2.5002 0 1 0 0,-5 z" + id="path5501" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 1522.5,1224.9 a 2.503123,2.503123 0 1 0 0.25,5 h 8.5937 c 4.954,0 8.8438,3.8897 8.8438,8.8437 0,4.954 -3.8898,8.875 -8.8438,8.875 h -8.5937 a 2.5002,2.5002 0 1 0 0,5 h 8.5937 c 7.6376,0 13.844,-6.2375 13.844,-13.875 0,-7.6375 -6.2062,-13.844 -13.844,-13.844 h -8.5937 a 2.5002,2.5002 0 0 0 -0.25,0 z" + id="path5503" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 1574.5,1194.1 a 2.1387,2.1387 0 0 0 -2.125,2.1875 v 68.688 a 2.1406,2.1406 0 0 0 4.2812,0 v -68.688 A 2.1387,2.1387 0 0 0 1574.5,1194.1 Z" + id="path5505" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 1545.4,1263 a 2.503123,2.503123 0 1 0 0.25,5 h 57.594 a 2.5002,2.5002 0 1 0 0,-5 h -57.594 a 2.5002,2.5002 0 0 0 -0.25,0 z" + id="path5507" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 1283.8,1300 a 2.2502,2.2502 0 0 0 -2.0313,2.25 v 26.875 a 2.2502,2.2502 0 1 0 4.5,0 V 1304.5 h 8.375 a 2.2502,2.2502 0 1 0 0,-4.5 h -10.625 a 2.2502,2.2502 0 0 0 -0.2187,0 z" + id="path5509" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 1308.4,1300 c -5.8944,0 -10.719,4.8243 -10.719,10.719 v 9.9688 c 0,5.8944 4.8243,10.688 10.719,10.688 5.8945,0 10.719,-4.7931 10.719,-10.688 v -9.9688 c 0,-5.8944 -4.8243,-10.719 -10.719,-10.719 z m 0,4.5 c 3.4793,0 6.2188,2.7394 6.2188,6.2187 v 9.9688 c 0,3.4792 -2.7395,6.1875 -6.2188,6.1875 -3.4792,0 -6.2187,-2.7083 -6.2187,-6.1875 v -9.9688 c 0,-3.4793 2.7395,-6.2187 6.2187,-6.2187 z" + id="path5511" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 1330.6,1300 c -5.8944,0 -10.719,4.8243 -10.719,10.719 v 9.9688 c 0,5.8944 4.8244,10.688 10.719,10.688 4.9632,0 9.1791,-3.3836 10.375,-8 a 2.2502,2.2502 0 1 0 -4.3438,-1.125 c -0.6916,2.6699 -3.1016,4.625 -6.0312,4.625 -3.4793,0 -6.2188,-2.7083 -6.2188,-6.1875 v -9.9688 c 0,-3.4793 2.7395,-6.2187 6.2188,-6.2187 2.9269,0 5.3058,1.9588 6,4.625 a 2.2587,2.2587 0 1 0 4.375,-1.125 c -1.2003,-4.61 -5.4164,-8 -10.375,-8 z" + id="path5513" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 1351.7,1300 a 2.2502,2.2502 0 0 0 -2,2.2813 v 26.875 a 2.2502,2.2502 0 1 0 4.5,0 v -26.875 A 2.2502,2.2502 0 0 0 1351.7,1300 Z" + id="path5515" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 1344.9,1300 a 2.2527,2.2527 0 0 0 0.2188,4.5 h 13.812 a 2.2502,2.2502 0 1 0 0,-4.5 h -13.812 a 2.2502,2.2502 0 0 0 -0.2188,0 z" + id="path5517" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 1385.8,1300 c -4.4239,0 -8.0625,3.6386 -8.0625,8.0625 0,4.4239 3.6386,8.0625 8.0625,8.0625 4.4239,0 8.0625,-3.6386 8.0625,-8.0625 0,-4.4239 -3.6386,-8.0625 -8.0625,-8.0625 z m 0,4.5 c 1.9919,0 3.5625,1.5706 3.5625,3.5625 0,1.9919 -1.5706,3.5625 -3.5625,3.5625 -1.9919,0 -3.5625,-1.5706 -3.5625,-3.5625 0,-1.9919 1.5706,-3.5625 3.5625,-3.5625 z" + id="path5519" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 1385.8,1311.5 c -5.4699,0 -9.9456,4.4758 -9.9456,9.9457 0,5.4699 4.4757,9.9456 9.9456,9.9456 5.4699,0 9.9457,-4.4757 9.9457,-9.9456 0,-5.4699 -4.4758,-9.9457 -9.9457,-9.9457 z m 0,4.4756 c 3.0379,0 5.4701,2.4321 5.4701,5.4701 0,3.0379 -2.4322,5.4701 -5.4701,5.4701 -3.0379,0 -5.4701,-2.4322 -5.4701,-5.4701 0,-3.038 2.4322,-5.4701 5.4701,-5.4701 z" + id="path5521" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 1400.2,1300 a 2.2535,2.2535 0 1 0 0.25,4.5 h 7.9063 c -3.3387,6.572 -6.0518,14.717 -8.3438,24.094 a 2.2511,2.2511 0 1 0 4.375,1.0625 c 2.6399,-10.8 5.7905,-19.938 9.5938,-26.25 a 2.2502,2.2502 0 0 0 -1.9375,-3.4062 h -11.594 a 2.2502,2.2502 0 0 0 -0.25,0 z" + id="path5523" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 1429.1,1300 a 2.2502,2.2502 0 0 0 -1.75,0.9062 l -4.6875,6.25 a 2.2502,2.2502 0 1 0 3.5937,2.6875 l 0.6563,-0.875 v 20.156 a 2.2502,2.2502 0 1 0 4.5,0 v -26.875 a 2.2502,2.2502 0 0 0 -2.3125,-2.25 z" + id="path5525" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 1444.9,1300 a 2.2502,2.2502 0 0 0 -1.7187,0.9062 l -4.6875,6.25 a 2.2502,2.2502 0 1 0 3.5937,2.6875 l 0.625,-0.8437 v 20.125 a 2.2502,2.2502 0 1 0 4.5,0 V 1302.25 A 2.2502,2.2502 0 0 0 1444.9,1300 Z" + id="path5527" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 1502.4,1300 c -5.8944,0 -10.719,4.8243 -10.719,10.719 v 9.9688 c 0,5.8944 4.8243,10.688 10.719,10.688 5.8945,0 10.719,-4.7931 10.719,-10.688 v -9.9688 c 0,-5.8944 -4.8243,-10.719 -10.719,-10.719 z m 0,4.5 c 3.4793,0 6.2188,2.7394 6.2188,6.2187 v 9.9688 c 0,3.4792 -2.7395,6.1875 -6.2188,6.1875 -3.4792,0 -6.2187,-2.7083 -6.2187,-6.1875 v -9.9688 c 0,-3.4793 2.7395,-6.2187 6.2187,-6.2187 z" + id="path5529" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 1480.7,1311.5 c -5.4699,0 -9.9456,4.4758 -9.9456,9.9457 0,5.4699 4.4757,9.9456 9.9456,9.9456 5.4699,0 9.9457,-4.4757 9.9457,-9.9456 0,-5.4699 -4.4758,-9.9457 -9.9457,-9.9457 z m 0,4.4756 c 3.038,0 5.4701,2.4321 5.4701,5.4701 0,3.0379 -2.4321,5.4701 -5.4701,5.4701 -3.0379,0 -5.4701,-2.4322 -5.4701,-5.4701 0,-3.038 2.4322,-5.4701 5.4701,-5.4701 z" + id="path5531" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 1480.6,1300 c -5.4699,0 -9.9375,4.4676 -9.9375,9.9375 v 11.5 a 2.2502,2.2502 0 1 0 4.5,0 v -11.5 c 0,-3.038 2.3996,-5.4375 5.4375,-5.4375 2.1957,0 4.1748,1.2907 5.0312,3.3125 a 2.2548464,2.2548464 0 1 0 4.1563,-1.75 C 1488.2311,1302.3882 1484.5902,1300 1480.6,1300 Z" + id="path5533" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 1453.1,1312.7 a 2.2527,2.2527 0 1 0 0.2187,4.5 h 11.625 a 2.2502,2.2502 0 1 0 0,-4.5 h -11.625 a 2.2502,2.2502 0 0 0 -0.2187,0 z" + id="path5535" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 2411,246.77 c -6.7857,0 -12.69,3.8407 -15.594,9.5 a 2.5002,2.5002 0 1 0 4.4375,2.2813 c 2.0712,-4.0372 6.2544,-6.7813 11.156,-6.7813 6.9826,0 12.531,5.5486 12.531,12.531 v 21.344 c 0,6.9827 -5.5486,12.531 -12.531,12.531 -4.4774,0 -8.3428,-2.2744 -10.562,-5.75 a 2.5010463,2.5010463 0 0 0 -4.2188,2.6875 c 3.1089,4.8679 8.5832,8.0625 14.781,8.0625 9.6662,0 17.531,-7.8651 17.531,-17.531 v -21.344 c 0,-9.6662 -7.865,-17.531 -17.531,-17.531 z" + id="path5537" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 2488,246.77 c -9.6662,0 -17.5,7.8651 -17.5,17.531 v 21.344 c 0,9.6662 7.8338,17.531 17.5,17.531 9.6662,0 17.531,-7.8651 17.531,-17.531 v -21.344 c 0,-9.6662 -7.865,-17.531 -17.531,-17.531 z m 0,5 c 6.9826,0 12.531,5.5486 12.531,12.531 v 21.344 c 0,6.9827 -5.5486,12.531 -12.531,12.531 -6.9827,0 -12.5,-5.5486 -12.5,-12.531 v -21.344 c 0,-6.9827 5.5173,-12.531 12.5,-12.531 z" + id="path5539" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 2436.6,246.77 a 2.503123,2.503123 0 1 0 0.25,5 h 18.156 l -12.375,17.5 a 2.5002,2.5002 0 0 0 2.3438,3.9375 c 5.7215,-0.6861 9.0208,0.5421 11.188,2.4375 2.1667,1.8954 3.3312,4.7379 3.7812,7.7188 0.4713,3.1214 -0.2841,6.6266 -1.9062,9.4062 -1.6221,2.7796 -4.0115,4.745 -6.7188,5.25 -4.4749,0.8348 -10.174,-1.6848 -12.25,-5.8437 a 2.5016,2.5016 0 1 0 -4.4687,2.25 c 3.2375,6.4873 10.824,9.7687 17.625,8.5 4.4334,-0.8271 7.9332,-3.8692 10.125,-7.625 2.1918,-3.7558 3.1945,-8.2945 2.5312,-12.688 -0.5668,-3.7544 -2.0648,-7.7958 -5.4062,-10.719 -2.4107,-2.1088 -5.7373,-3.477 -9.9063,-3.7812 l 12.312,-17.406 a 2.5002,2.5002 0 0 0 -2.0625,-3.9375 h -22.969 a 2.5002,2.5002 0 0 0 -0.25,0 z" + id="path5541" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 2411.9,272.49 a 2.503123,2.503123 0 1 0 0.25,5 h 13.125 a 2.5002,2.5002 0 1 0 0,-5 h -13.125 a 2.5002,2.5002 0 0 0 -0.25,0 z" + id="path5543" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#cc9168" + d="m 2394,654.11 a 3.5004,3.5004 0 0 0 -3,1.9062 l -22,41.875 -75.406,87.469 a 3.5014,3.5014 0 1 0 5.3125,4.5625 l 75.688,-87.844 a 3.5004,3.5004 0 0 0 0.4687,-0.6562 l 22.125,-42.156 a 3.5004,3.5004 0 0 0 -3.1875,-5.1562 z" + id="path5545" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#ffffff" + d="m 2296,773.83 c -7.7494,0 -14.125,6.3444 -14.125,14.094 0,7.7494 6.3756,14.125 14.125,14.125 7.7494,0 14.094,-6.3756 14.094,-14.125 a 3.5004,3.5004 0 1 0 -7,0 c 0,3.9663 -3.1274,7.125 -7.0938,7.125 -3.9663,0 -7.125,-3.1587 -7.125,-7.125 0,-3.9664 3.1587,-7.0938 7.125,-7.0938 h 0.2813 a 3.5035,3.5035 0 1 0 0.3125,-7 c -0.1998,-0.01 -0.3938,0 -0.5938,0 z" + id="path5547" /> + <circle + r="54.285713" + cy="-220.49496" + cx="461.42856" + transform="translate(1979.8,863.15)" + style="fill:#b3b3b3" + id="path5549" /> + <circle + r="54.285713" + cy="-220.49496" + cx="461.42856" + transform="matrix(0.78601,0,0,0.78601,2078.5,815.96)" + style="fill:#808080" + id="path5551" /> + <path + d="m 2434.9,600.96 c -20.3,3.0394 -35.875,20.541 -35.875,41.688 0,21.147 15.575,38.679 35.875,41.719 v -83.406 z m 12.625,0.031 v 83.344 c 20.284,-3.0534 35.844,-20.552 35.844,-41.688 0,-21.135 -15.56,-38.603 -35.844,-41.656 z" + inkscape:connector-curvature="0" + style="fill:#cccccc" + id="path5553" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#cc9168" + sodipodi:nodetypes="cccccscccsc" + d="m 1978.1,1124 c -1.0098,0.01 -2.0071,0.4765 -2.6563,1.25 l -75.719,87.844 c -0.1719,0.2111 -0.3191,0.4423 -0.4375,0.6875 l -34.121,26.143 c -0.8508,1.6281 -0.1436,3.8835 1.4844,4.7344 1.6281,0.8508 3.8836,0.1437 4.7344,-1.4844 l 33.902,-25.768 75.469,-87.594 c 0.8866,-1.0076 1.1136,-2.5465 0.5558,-3.7671 -0.5578,-1.2207 -1.87,-2.0563 -3.212,-2.0454 z" + id="path5555" /> + <circle + r="54.285713" + cy="-220.49496" + cx="461.42856" + transform="rotate(180,1147.25,526.05)" + style="fill:#c5c5bf" + id="path5557" /> + <circle + r="54.285713" + cy="-220.49496" + cx="461.42856" + transform="matrix(-0.78601,0,0,-0.78601,2195.8,1099.2)" + style="fill:#808080" + id="path5559" /> + <path + d="m 1839.4,1314.3 c 20.3,-3.0393 35.875,-20.541 35.875,-41.688 0,-21.147 -15.575,-38.679 -35.875,-41.719 v 83.406 z m -12.625,-0.031 v -83.344 c -20.284,3.0534 -35.844,20.552 -35.844,41.688 0,21.135 15.56,38.603 35.844,41.656 z" + inkscape:connector-curvature="0" + style="fill:#cccccc" + id="path5561" /> + </g> + <g + id="g21670" + transform="matrix(18.912567,0,0,18.912567,-81.555744,1119.9665)" + inkscape:label="HMI:Meter@/PUMP0/SLOTH"> + <path + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.38814712;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path21666" + sodipodi:type="arc" + sodipodi:cx="124.32036" + sodipodi:cy="-2.4254472" + sodipodi:rx="54.660004" + sodipodi:ry="54.024006" + sodipodi:start="3.1424064" + sodipodi:end="4.7101543" + d="M 69.660373,-2.4694091 A 54.660004,54.024006 0 0 1 124.19821,-56.449318" + sodipodi:open="true" + inkscape:label="range" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.92543143;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:29.63333321;stroke-opacity:1;marker-start:url(#marker21674);marker-end:url(#marker22799)" + d="M 123.16695,-3.4226979 70.419817,-10.83537" + id="path21668" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" + inkscape:label="needle" /> + </g> + <g + id="g29186"> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 2378.5,363.18 2.4664,1.2855 71.607,37.323 2.4387,1.2711 2.4386,-1.2711 71.607,-37.323 2.4664,-1.2855 -2.4387,-1.2711 -71.607,-37.323 -2.4663,-1.2855 -2.4664,1.2855 -71.607,37.323 z m 9.81,0 66.702,-34.766 66.73,34.78 -66.702,34.766 z" + id="path5567" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 2441.6,345.71 -2.2813,1.375 -11.406,6.9688 -0.7188,0.4375 v 0.8437 4.4688 h 3 v -3.625 l 8.4063,-5.125 v 9.5312 l -3.5938,3.8125 -0.9375,1.0313 0.9375,1.0312 3.5938,3.8125 v 9.5313 l -8.4063,-5.125 v -3.625 h -3 v 4.4687 0.8438 l 0.7188,0.4375 11.406,6.9687 2.2813,1.375 v -2.6562 -12.812 -0.5938 l -0.4063,-0.4375 -3.0312,-3.2187 3.0312,-3.25 0.4063,-0.4375 v -0.5938 -12.781 -2.6563 z" + id="path5569" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 2448,339.42 v 48.594 h 3 V 339.42 Z m 11.062,0 v 48.594 h 3 V 339.42 Z" + id="path5571" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 2459.1,351.33 -11.062,24.469 2.7187,1.2187 11.094,-24.469 -2.75,-1.2188 z" + id="path5573" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 2467.6,342.36 v 2.625 37.5 h 3 v -34.906 l 8,4.5938 v 22.969 h 3 v -23.812 -0.875 l -0.75,-0.4375 -11,-6.3437 -2.25,-1.3125 z" + id="path5575" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 2457.8,434.39 c -4.2082,0 -7.5312,3.6568 -7.5312,8 a 1.5002,1.5002 0 1 0 3,0 c 0,-2.8367 2.068,-5 4.5312,-5 2.4633,0 4.5313,2.1633 4.5313,5 0,1.0173 -0.081,1.842 -0.5,2.6563 -0.4189,0.8142 -1.2183,1.7195 -2.9688,2.7187 -4.2189,2.4083 -8.2687,7.1391 -8.9375,14.062 a 1.5002,1.5002 0 0 0 1.5,1.625 h 12.281 a 1.5002,1.5002 0 1 0 0,-3 H 2453.3 c 1.0027,-4.9299 3.9358,-8.3089 7.0625,-10.094 2.1001,-1.1988 3.4255,-2.517 4.1563,-3.9375 0.7308,-1.4205 0.8125,-2.8442 0.8125,-4.0313 0,-4.3432 -3.3231,-8 -7.5313,-8 z" + id="path5577" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 2403.5,434.42 a 1.5002,1.5002 0 0 0 -0.9375,0.5 l -4.2813,5 a 1.5067,1.5067 0 0 0 2.2813,1.9687 l 1.625,-1.9062 v 21.969 a 1.5002,1.5002 0 1 0 3,0 v -26.031 a 1.5002,1.5002 0 0 0 -1.6875,-1.5 z" + id="path5579" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 2477.6,434.42 a 1.5002,1.5002 0 0 0 -1.2188,1.5 v 11.156 a 1.5002,1.5002 0 0 0 2.7813,0.8125 c 0.8305,-1.2895 3.2566,-2.2812 5.375,-2.2812 3.1378,0 5.625,2.446 5.625,5.5625 v 3.7187 c 0,3.1165 -2.4872,5.5625 -5.625,5.5625 -2.1156,0 -4.4635,-1.271 -5.3438,-2.8125 a 1.5002,1.5002 0 1 0 -2.5937,1.5 c 1.5623,2.7359 4.7405,4.3125 7.9375,4.3125 4.7417,0 8.625,-3.8296 8.625,-8.5625 v -3.7187 c 0,-4.7329 -3.8833,-8.5625 -8.625,-8.5625 -1.7417,0 -3.5689,0.4289 -5.1563,1.2812 v -6.4687 h 10.562 a 1.5002,1.5002 0 1 0 0,-3 h -12.062 a 1.5002,1.5002 0 0 0 -0.2812,0 z" + id="path5581" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 2516,434.42 a 1.5002,1.5002 0 0 0 -1.0625,0.625 l -12.656,18.5 a 1.5002,1.5002 0 0 0 1.2187,2.3437 h 11.188 v 6.0625 a 1.5002,1.5002 0 1 0 3,0 v -6.0625 h 0.5313 a 1.5002,1.5002 0 1 0 0,-3 h -0.5313 v -16.969 a 1.5002,1.5002 0 0 0 -1.6875,-1.5 z m -1.3125,6.3125 v 12.156 h -8.3125 z" + id="path5583" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 2373.5,434.42 a 1.5002,1.5002 0 0 0 -1.1875,1.5 v 11.156 a 1.5002,1.5002 0 0 0 2.75,0.8125 c 0.8305,-1.2895 3.2879,-2.2812 5.4063,-2.2812 3.1378,0 5.5937,2.446 5.5937,5.5625 v 3.7187 c 0,3.1165 -2.4559,5.5625 -5.5937,5.5625 -2.1156,0 -4.4948,-1.271 -5.375,-2.8125 a 1.5002,1.5002 0 1 0 -2.5938,1.5 c 1.5624,2.7359 4.7718,4.3125 7.9688,4.3125 4.7417,0 8.5937,-3.8296 8.5937,-8.5625 v -3.7187 c 0,-4.7329 -3.852,-8.5625 -8.5937,-8.5625 -1.7311,0 -3.5751,0.4086 -5.1563,1.25 v -6.4375 h 10.562 a 1.5002,1.5002 0 1 0 0,-3 h -12.062 a 1.5002,1.5002 0 0 0 -0.3125,0 z" + id="path5585" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 2429.5,434.42 a 1.5002,1.5002 0 0 0 -0.9375,0.5 l -4.2812,5 a 1.5067,1.5067 0 1 0 2.2812,1.9687 l 1.625,-1.9062 v 21.969 a 1.5002,1.5002 0 1 0 3,0 v -26.031 a 1.5002,1.5002 0 0 0 -1.6875,-1.5 z" + id="path5587" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 2412.3,490.67 a 1.5002,1.5002 0 0 0 -1.1875,0.625 l -4.4688,6.0625 a 1.5002,1.5002 0 1 0 2.4063,1.7812 l 1.7812,-2.4062 v 21.5 a 1.5002,1.5002 0 1 0 3,0 v -26.062 a 1.5002,1.5002 0 0 0 -1.5312,-1.5 z" + id="path5589" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 2450,501.82 c -4.9217,0 -8.9329,4.0208 -8.9329,8.9543 0,4.9335 4.0112,8.9543 8.9329,8.9543 4.9217,0 8.9329,-4.0208 8.9329,-8.9543 0,-4.9335 -4.0112,-8.9543 -8.9329,-8.9543 z m 0,3.0115 c 3.3023,0 5.9285,2.6326 5.9285,5.9428 0,3.3103 -2.6262,5.983 -5.9285,5.983 -3.3023,0 -5.9285,-2.6727 -5.9285,-5.983 0,-3.3102 2.6262,-5.9428 5.9285,-5.9428 z" + id="path5591" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 2450,490.67 c -4.9246,0 -8.9375,4.0381 -8.9375,8.9687 v 11.125 a 1.5002,1.5002 0 1 0 3,0 v -11.125 c 0,-3.3131 2.6382,-5.9687 5.9375,-5.9687 2.3902,0 4.5664,1.4467 5.5,3.6562 a 1.5002,1.5002 0 1 0 2.75,-1.1875 c -1.3985,-3.3097 -4.6605,-5.4687 -8.25,-5.4687 z" + id="path5593" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 2427.1,508.61 c 4.9217,0 8.9329,-4.0208 8.9329,-8.9543 0,-4.9335 -4.0112,-8.9544 -8.9329,-8.9544 -4.9217,0 -8.9329,4.0209 -8.9329,8.9544 0,4.9335 4.0112,8.9543 8.9329,8.9543 z m 0,-3.0115 c -3.3023,0 -5.9285,-2.6326 -5.9285,-5.9428 0,-3.3103 2.6262,-5.983 5.9285,-5.983 3.3023,0 5.9285,2.6727 5.9285,5.983 0,3.3102 -2.6262,5.9428 -5.9285,5.9428 z" + id="path5595" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 2434.6,498.11 a 1.5002,1.5002 0 0 0 -1.5,1.5312 v 11.125 c 0,3.3132 -2.6381,5.9688 -5.9375,5.9688 -2.3902,0 -4.5351,-1.4155 -5.4688,-3.625 a 1.506,1.506 0 1 0 -2.7812,1.1562 c 1.3986,3.3097 4.6606,5.4688 8.25,5.4688 4.9246,0 8.9375,-4.0382 8.9375,-8.9688 v -11.125 a 1.5002,1.5002 0 0 0 -1.5,-1.5312 z" + id="path5597" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 2465.8,490.49 a 1.5002,1.5002 0 0 0 -1.375,1.5 v 11.156 a 1.5002,1.5002 0 0 0 2.7813,0.8125 c 0.8305,-1.2895 3.2566,-2.2812 5.375,-2.2812 3.1378,0 5.625,2.4772 5.625,5.5937 v 3.6875 c 0,3.1165 -2.4872,5.5938 -5.625,5.5938 -2.1156,0 -4.4635,-1.3023 -5.3438,-2.8438 a 1.5002,1.5002 0 1 0 -2.5937,1.5 c 1.5623,2.7359 4.7405,4.3438 7.9375,4.3438 4.7417,0 8.625,-3.8609 8.625,-8.5938 v -3.6875 c 0,-4.7328 -3.8833,-8.5937 -8.625,-8.5937 -1.7417,0 -3.5689,0.4289 -5.1563,1.2812 v -6.4687 h 10.562 a 1.5002,1.5002 0 1 0 0,-3 h -12.062 a 1.5002,1.5002 0 0 0 -0.125,0 z" + id="path5599" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 2497.9,494.74 a 1.5002,1.5002 0 0 0 -1.3437,1.5 v 18.562 a 1.5002,1.5002 0 1 0 3,0 V 497.74 h 7.7812 a 1.5002,1.5002 0 1 0 0,-3 h -9.2812 a 1.5002,1.5002 0 0 0 -0.1563,0 z" + id="path5601" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 2315.9,-15.107 a 1.5081161,1.5081161 0 1 0 0.3125,3 h 20.469 a 1.5002,1.5002 0 1 0 0,-3 h -20.469 a 1.5002,1.5002 0 0 0 -0.3125,0 z" + id="path5603" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 2326.4,-15.294 a 2.5002,2.5002 0 0 0 -2.4687,2.5313 v 36.125 a 2.5002,2.5002 0 1 0 5,0 v -36.125 A 2.5002,2.5002 0 0 0 2326.4,-15.294 Z" + id="path5605" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 2346.2,-15.107 a 1.5066,1.5066 0 0 0 0.2813,3 h 20.5 a 1.5002,1.5002 0 1 0 0,-3 h -20.5 a 1.5002,1.5002 0 0 0 -0.2813,0 z" + id="path5607" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 2356.7,-15.294 a 2.5002,2.5002 0 0 0 -2.4687,2.5313 v 36.125 a 2.5002,2.5002 0 1 0 5,0 v -36.125 A 2.5002,2.5002 0 0 0 2356.7,-15.294 Z" + id="path5609" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 2384.4,-22.33 c -4.0185,0 -7.3125,3.2939 -7.3125,7.3125 0,4.0185 3.294,7.3125 7.3125,7.3125 4.0185,0 7.3125,-3.294 7.3125,-7.3125 0,-4.0186 -3.294,-7.3125 -7.3125,-7.3125 z m 0,3 c 2.3972,0 4.3125,1.9152 4.3125,4.3125 0,2.3972 -1.9153,4.3125 -4.3125,4.3125 -2.3972,0 -4.3125,-1.9153 -4.3125,-4.3125 0,-2.3973 1.9153,-4.3125 4.3125,-4.3125 z" + id="path5611" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 2384.4,-10.587 c -4.0185,0 -7.3125,3.2939 -7.3125,7.3125 0,4.0185 3.294,7.3125 7.3125,7.3125 4.0185,0 7.3125,-3.294 7.3125,-7.3125 0,-4.0186 -3.294,-7.3125 -7.3125,-7.3125 z m 0,3 c 2.3972,0 4.3125,1.9153 4.3125,4.3125 0,2.3972 -1.9153,4.3125 -4.3125,4.3125 -2.3972,0 -4.3125,-1.9153 -4.3125,-4.3125 0,-2.3972 1.9153,-4.3125 4.3125,-4.3125 z" + id="path5613" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 2402.6,-22.825 c -4.0276,0 -7.3125,3.2848 -7.3125,7.3125 v 11.719 c 0,4.0276 3.2849,7.3438 7.3125,7.3438 4.0277,0 7.3125,-3.3162 7.3125,-7.3438 v -11.719 c 0,-4.0277 -3.2848,-7.3125 -7.3125,-7.3125 z m 0,3 c 2.4176,0 4.3125,1.8949 4.3125,4.3125 v 11.719 c 0,2.4175 -1.8949,4.3438 -4.3125,4.3438 -2.4175,0 -4.3125,-1.9263 -4.3125,-4.3438 v -11.719 c 0,-2.4176 1.895,-4.3125 4.3125,-4.3125 z" + id="path5615" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 2420.7,-22.825 c -4.0276,0 -7.3125,3.2848 -7.3125,7.3125 v 11.719 c 0,4.0276 3.2849,7.3438 7.3125,7.3438 4.0277,0 7.3125,-3.3162 7.3125,-7.3438 v -11.719 c 0,-4.0277 -3.2848,-7.3125 -7.3125,-7.3125 z m 0,3 c 2.4176,0 4.3125,1.8949 4.3125,4.3125 v 11.719 c 0,2.4175 -1.8949,4.3438 -4.3125,4.3438 -2.4175,0 -4.3125,-1.9263 -4.3125,-4.3438 v -11.719 c 0,-2.4176 1.895,-4.3125 4.3125,-4.3125 z" + id="path5617" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 2376.6,8.3623 a 1.5020318,1.5020318 0 1 0 0.1562,3 h 52.25 a 1.5002,1.5002 0 1 0 0,-3 h -52.25 a 1.5002,1.5002 0 0 0 -0.1562,0 z" + id="path5619" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 2397.8,13.925 a 1.5002,1.5002 0 0 0 -1.3438,1.5 v 10.281 a 1.5002,1.5002 0 0 0 1.5,1.5 h 6.2188 c 2.3448,0 4.3125,2.145 4.3125,4.5625 0,2.4175 -1.895,4.3125 -4.3125,4.3125 h -6.4375 a 1.5002,1.5002 0 1 0 0,3 h 6.4375 c 4.0276,0 7.3125,-3.2849 7.3125,-7.3125 0,-4.0276 -3.2122,-7.5625 -7.3125,-7.5625 h -4.7188 v -7.2812 h 10.188 a 1.5002,1.5002 0 1 0 0,-3 h -11.688 a 1.5002,1.5002 0 0 0 -0.1562,0 z" + id="path5621" /> + <path + d="m 1156,-131.14 c -65.98,0 -119.09,53.114 -119.09,119.09 v 1374.5 c 0,65.979 53.114,119.09 119.09,119.09 h 665.31 c 29.008,0 39.174,-3.9241 56.5,-21.25 l 746.03,-746.03 c 23.302,-23.302 25.781,-31.589 25.781,-62.469 v -663.88 c 0,-65.979 -53.114,-119.09 -119.09,-119.09 z" + inkscape:connector-curvature="0" + style="fill:url(#linearGradient7109)" + sodipodi:nodetypes="sssssssssss" + id="path5623" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#ffffff" + d="m 1978.3,1141.4 c 7.7494,0 14.125,-6.3443 14.125,-14.094 0,-7.7494 -6.3756,-14.125 -14.125,-14.125 -7.7494,0 -14.094,6.3756 -14.094,14.125 a 3.5004,3.5004 0 1 0 7,0 c 0,-3.9663 3.1275,-7.125 7.0938,-7.125 3.9663,0 7.125,3.1587 7.125,7.125 0,3.9663 -3.1587,7.0937 -7.125,7.0937 h -0.2813 a 3.5035,3.5035 0 1 0 -0.3125,7 c 0.1999,0.01 0.3938,0 0.5938,0 z" + id="path5625" /> + <rect + x="2425.5" + y="1014.8" + width="294.29001" + height="45" + ry="22.5" + rx="22.5" + style="fill:#333333" + id="rect5629" /> + <path + d="m 2430.3,1122.6 c -65.126,0 -119.22,47.238 -129.91,109.31 h -70.969 c -12.465,0 -22.5,10.035 -22.5,22.5 0,12.465 10.035,22.5 22.5,22.5 h 70.969 c 10.674,62.089 64.77,109.34 129.91,109.34 65.138,0 119.23,-47.252 129.91,-109.34 h 137.06 c 12.465,0 22.5,-10.035 22.5,-22.5 0,-12.465 -10.035,-22.5 -22.5,-22.5 h -137.06 c -10.694,-62.106 -64.814,-109.31 -129.91,-109.31 z" + inkscape:connector-curvature="0" + style="fill:#333333" + id="path5631" /> + <path + sodipodi:start="0" + sodipodi:end="6.2776887" + sodipodi:cx="2430.3047" + sodipodi:cy="1254.4414" + sodipodi:open="true" + d="m 2519.1982,1254.4414 a 88.893486,88.893486 0 0 1 -88.7714,88.8934 88.893486,88.893486 0 0 1 -89.0153,-88.6491 88.893486,88.893486 0 0 1 88.5267,-89.137 88.893486,88.893486 0 0 1 89.2586,88.4041" + sodipodi:type="arc" + style="fill:#000000;stroke-width:0.67433" + sodipodi:ry="88.893486" + sodipodi:rx="88.893486" + id="path5633" /> + <path + d="m 2430.3,1175.6 c -43.516,0 -78.781,35.266 -78.781,78.781 0,7.6897 1.1023,15.13 3.1563,22.156 l 145.66,-58.188 c -13.09,-25.386 -39.524,-42.75 -70.031,-42.75 z m 75.625,56.656 -145.69,58.188 c 13.086,25.38 39.541,42.75 70.062,42.75 43.516,0 78.781,-35.297 78.781,-78.812 v -0.4063 c -0.041,-7.535 -1.1424,-14.828 -3.1562,-21.719 z" + inkscape:connector-curvature="0" + style="fill:#333333" + id="path5635" /> + <rect + x="2009.8" + y="1431.9" + width="710" + height="45" + ry="22.5" + rx="22.5" + style="fill:#333333" + id="rect5637" /> + </g> + <g + id="g29149"> + <rect + x="-1430.8" + y="-352.34" + width="2055.1001" + height="2055.1001" + ry="129.3" + rx="129.3" + style="fill:#000000" + id="rect3007" /> + <rect + x="-1384.5" + y="-305.98001" + width="1962.4" + height="1962.4" + ry="90.727997" + rx="90.727997" + style="fill:#333333" + id="rect3777" /> + <rect + x="-1358.2" + y="-279.72" + width="1909.9" + height="1909.9" + ry="70.525002" + rx="70.525002" + style="fill:#000000" + id="rect3779" /> + <rect + x="375.37" + y="802.65002" + width="97.857002" + height="45" + ry="22.5" + rx="22.5" + style="fill:#333333" + id="rect3788" /> + <path + inkscape:connector-curvature="0" + style="fill:#333333" + sodipodi:nodetypes="sssssssssss" + d="m -1106.1,-149.32 c -67.467,0 -121.78,54.312 -121.78,121.78 v 1405.5 c 0,67.467 54.312,121.78 121.78,121.78 h 680.32 c 29.662,0 47.115,-4.0297 64.849,-21.729 l 755.83,-754.34 c 23.851,-23.803 26.352,-40.896 26.352,-72.473 v -678.83 c 0,-67.467 -54.312,-121.78 -121.78,-121.78 z" + id="path3796" /> + <path + d="M -208.21,1279.8 230.36,851.23 h -444.29 z" + inkscape:connector-curvature="0" + style="fill:#000000" + id="path5147" /> + <path + d="m -41.063,1048.4 -48.571,-54.286 33.571,-33.571 54.286,54.286" + inkscape:connector-curvature="0" + style="fill:#e6e6e6" + id="path4263" /> + <path + d="m -131.78,1205.5 -37.143,-36.429 11.429,-12.857 30.714,6.4286 54.286,-54.286 c -6.7698,-14.828 -2.7537,-22.791 11.428,-24.286 -18.934,-68.674 49.856,-114.43 102.86,-90 l 60.714,-60 -12.143,-30 11.429,-10 41.428,35" + inkscape:connector-curvature="0" + style="fill:#cccccc" + sodipodi:nodetypes="ccccccccccc" + id="path4265" /> + <path + d="m -1090.6,-131.14 c -65.98,0 -119.09,53.114 -119.09,119.09 v 1374.5 c 0,65.98 53.114,119.09 119.09,119.09 h 665.31 c 29.008,0 39.174,-3.9241 56.5,-21.25 l 746.08,-745.9 c 23.302,-23.302 25.781,-31.589 25.781,-62.469 v -663.88 c 0,-65.98 -53.114,-119.09 -119.09,-119.09 h -1374.5 z M 6.1,869.06 h 189.31 l -387.34,382.16 v -178.94 c 0,-107.21 90.807,-203.22 198.03,-203.22 z" + inkscape:connector-curvature="0" + style="fill:#e1e1d1" + id="rect3781" /> + <path + inkscape:connector-curvature="0" + transform="matrix(1.037,0,0,1.037,-262.68,-1806.5)" + style="opacity:0.85773998;fill:#000000;filter:url(#filter5708)" + d="m -823.78,1579.8 c -65.979,0 -119.09,53.114 -119.09,119.09 v 1374.5 c 0,51.168 31.947,94.61 77.062,111.53 -1.8213,-8.3056 -2.7812,-16.944 -2.7812,-25.813 v -1374.5 c 0,-65.979 53.114,-119.09 119.09,-119.09 h 1374.5 c 14.812,0 28.972,2.6957 42.031,7.5938 -11.729,-53.488 -59.201,-93.312 -116.31,-93.312 h -1374.5 z" + id="path5854" /> + <path + d="m -897.19,202.71 -1.1875,-5.5312 -30.281,-141.12 h 13.687 l 27.813,126.53 33.875,-126.53 h 13.531 l -36.906,141.47 -1.4063,5.1875 h -5.375 -8.0625 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + sodipodi:nodetypes="cccccccccccc" + id="path4143" /> + <path + inkscape:connector-curvature="0" + inkscape:transform-center-y="1.2277805" + inkscape:transform-center-x="1026.1266" + d="m -1081.2,1066.7 a 3.5004,3.5004 0 0 0 1.0743,6.8659 l 119.98,-0.1356 a 3.5004,3.5004 0 1 0 -0.016,-6.9996 l -119.98,0.1356 a 3.5004,3.5004 0 0 0 -1.0582,0.1337 z" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path3927" /> + <path + sodipodi:nodetypes="csccsccccssccscccs" + inkscape:connector-curvature="0" + inkscape:transform-center-y="-84.5624" + inkscape:transform-center-x="999.99804" + d="m -1076.7,973.88 c -1.7172,0.1873 -3.152,1.8167 -3.1203,3.5439 0.032,1.7271 1.5251,3.3029 3.248,3.4271 l 127.18,10.755 c 1.8326,0.1672 3.6502,-1.3563 3.8058,-3.1899 0.1556,-1.8336 -1.3794,-3.6416 -3.2139,-3.7856 l -127.18,-10.755 c -0.2391,-0.023 -0.4806,-0.022 -0.7194,0 z m 160,13.54 c -1.7213,-0.1455 -3.152,1.8167 -3.1203,3.5439 0.032,1.7271 1.5251,3.3029 3.248,3.4271 l 4.4928,0.3709 c 1.8325,0.1671 3.6502,-1.3564 3.8057,-3.1899 0.1556,-1.8336 -1.3794,-3.6416 -3.2139,-3.7856 l -4.4927,-0.3709 c -0.2391,-0.023 -0.4806,-0.022 -0.7194,0 z" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path3959" /> + <path + d="m -516.79,412.2 c -15.018,0 -27.219,12.201 -27.219,27.219 v 40.406 c 0,15.018 12.201,27.25 27.219,27.25 15.018,0 27.25,-12.232 27.25,-27.25 v -40.406 c 0,-15.018 -12.232,-27.219 -27.25,-27.219 z m 0,8 c 10.725,0 19.25,8.4942 19.25,19.219 v 40.406 c 0,10.725 -8.5254,19.25 -19.25,19.25 -10.724,0 -19.219,-8.5254 -19.219,-19.25 v -40.406 c 0,-10.725 8.4942,-19.219 19.219,-19.219 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="rect4112" /> + <path + d="m -444.57,412.2 c -15.018,0 -27.219,12.201 -27.219,27.219 v 40.406 c 0,15.018 12.201,27.25 27.219,27.25 15.018,0 27.25,-12.232 27.25,-27.25 v -40.406 c 0,-15.018 -12.232,-27.219 -27.25,-27.219 z m 0,8 c 10.724,0 19.25,8.4942 19.25,19.219 v 40.406 c 0,10.725 -8.5255,19.25 -19.25,19.25 -10.725,0 -19.219,-8.5254 -19.219,-19.25 v -40.406 c 0,-10.725 8.4942,-19.219 19.219,-19.219 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="rect4114" /> + <path + d="m -689.77,649.6 c -15.018,0 -27.25,12.201 -27.25,27.219 v 40.406 c 0,15.018 12.232,27.25 27.25,27.25 15.018,0 27.219,-12.232 27.219,-27.25 v -40.406 c 0,-15.018 -12.201,-27.219 -27.219,-27.219 z m 0,8 c 10.725,0 19.219,8.4942 19.219,19.219 v 40.406 c 0,10.725 -8.4942,19.25 -19.219,19.25 -10.724,0 -19.25,-8.5254 -19.25,-19.25 v -40.406 c 0,-10.725 8.5255,-19.219 19.25,-19.219 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="rect4116" /> + <path + d="m -617.55,649.6 c -15.018,0 -27.25,12.201 -27.25,27.219 v 40.406 c 0,15.018 12.232,27.25 27.25,27.25 15.018,0 27.219,-12.232 27.219,-27.25 v -40.406 c 0,-15.018 -12.201,-27.219 -27.219,-27.219 z m 0,8 c 10.724,0 19.219,8.4942 19.219,19.219 v 40.406 c 0,10.725 -8.4942,19.25 -19.219,19.25 -10.7248,0 -19.25,-8.5254 -19.25,-19.25 v -40.406 c 0,-10.725 8.5254,-19.219 19.25,-19.219 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="rect4118" /> + <path + d="m -768.21,649.57 c -14.558,0 -26.594,11.436 -26.594,25.656 a 4.0004,4.0004 0 1 0 8,0 c 0,-9.7079 8.1783,-17.656 18.594,-17.656 10.415,0 18.625,7.9483 18.625,17.656 0,3.4188 -0.3012,6.2393 -1.9687,9.125 -1.6676,2.8857 -4.8983,6.1281 -11.656,9.5625 -15.36,7.8058 -30.328,23.228 -32.812,46.125 a 4.0004,4.0004 0 0 0 3.9688,4.4375 h 45.969 a 4.0004,4.0004 0 1 0 0,-8 h -41.219 c 3.4595,-17.376 15.261,-29.122 27.688,-35.438 7.6555,-3.8905 12.332,-8.1255 14.969,-12.688 2.6363,-4.5619 3.0625,-9.1977 3.0625,-13.125 0,-14.22 -12.067,-25.656 -26.625,-25.656 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4122" /> + <path + d="m -8.1876,197.04 c -15.018,0 -27.219,12.201 -27.219,27.219 v 40.406 c 0,15.018 12.201,27.25 27.219,27.25 15.018,0 27.25,-12.232 27.25,-27.25 v -40.406 c 0,-15.018 -12.232,-27.219 -27.25,-27.219 z m 0,8 c 10.725,0 19.25,8.4942 19.25,19.219 v 40.406 c 0,10.725 -8.5254,19.25 -19.25,19.25 -10.724,0 -19.219,-8.5254 -19.219,-19.25 v -40.406 c 0,-10.725 8.4942,-19.219 19.219,-19.219 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="rect4130" /> + <path + d="m -102.13,197.01 a 4.0004,4.0004 0 0 0 -4,4 v 37.25 a 4.0004,4.0004 0 0 0 7.375,2.125 c 2.9991,-4.7533 11.204,-8.0625 18.344,-8.0625 10.688,0 19.25,8.648 19.25,19.625 v 12.344 c 0,10.977 -8.5616,19.625 -19.25,19.625 -7.2063,0 -15.115,-4.3265 -18.219,-9.875 a 4.0081,4.0081 0 1 0 -7,3.9063 c 4.8761,8.7154 15.069,13.969 25.219,13.969 15.054,0 27.25,-12.426 27.25,-27.625 v -12.344 c 0,-15.2 -12.196,-27.625 -27.25,-27.625 -5.9927,0 -12.456,1.4611 -17.719,4.6875 v -24 h 35.406 a 4.0004,4.0004 0 1 0 0,-8 h -39.406 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4132" /> + <path + d="m -984.92,1208.6 a 2.5002,2.5002 0 0 0 -1.8125,0.8437 l -7.8125,8.9063 a 2.5018,2.5018 0 1 0 3.75,3.3125 l 3.4375,-3.9063 v 39.781 a 2.5002,2.5002 0 1 0 5,0 v -46.438 a 2.5002,2.5002 0 0 0 -2.5625,-2.5 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4159" /> + <path + d="m -963.1,1208.6 a 2.5002,2.5002 0 0 0 -2.25,2.5 v 19.906 a 2.5002,2.5002 0 0 0 4.625,1.3125 c 1.5017,-2.3801 5.7817,-4.125 9.5,-4.125 5.5171,0 9.9062,4.4472 9.9062,10.125 v 6.5938 c 0,5.6778 -4.3891,10.125 -9.9062,10.125 -3.7197,0 -7.858,-2.2704 -9.4375,-5.0938 a 2.5041,2.5041 0 1 0 -4.375,2.4375 c 2.6869,4.8027 8.253,7.6563 13.812,7.6563 8.2458,0 14.906,-6.8081 14.906,-15.125 v -6.5938 c 0,-8.3168 -6.6604,-15.125 -14.906,-15.125 -3.0809,0 -6.3424,0.7823 -9.125,2.3438 v -11.938 h 18.562 a 2.5002,2.5002 0 1 0 0,-5 h -21.062 a 2.5002,2.5002 0 0 0 -0.25,0 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4161" /> + <path + d="m -972.35,1253.6 c -2.2316,0 -4.0625,1.8309 -4.0625,4.0625 0,1.973 1.4112,3.5833 3.2812,3.9375 -0.352,1.6422 -0.8243,3.5675 -1.625,6.4062 3.379,-3.3496 5.078,-6.1447 6.0625,-8.6875 0.013,-0.033 0.05,-0.061 0.062,-0.094 v -0.031 c 0.1971,-0.4759 0.3125,-0.984 0.3125,-1.5312 0,-2.2316 -1.7996,-4.0625 -4.0312,-4.0625 z" + inkscape:connector-curvature="0" + style="fill:#000000" + id="path4165" /> + <path + d="m -1077.3,1219.9 c -5.4507,0.026 -10.966,1.9221 -16,6.6563 a 2.5092,2.5092 0 1 0 3.4375,3.6562 c 5.6657,-5.3285 10.954,-6.1333 16.938,-4.875 5.9835,1.2583 12.504,4.8899 19.125,8.7188 6.6209,3.8289 13.346,7.8504 20.312,9.5312 6.9668,1.6809 14.393,0.7108 20.875,-5.2812 a 2.51,2.51 0 1 0 -3.4062,-3.6875 c -5.3695,4.9636 -10.436,5.5429 -16.312,4.125 -5.8769,-1.4179 -12.328,-5.1595 -18.969,-9 -6.6411,-3.8406 -13.471,-7.7833 -20.594,-9.2813 -1.7808,-0.3745 -3.5894,-0.5713 -5.4063,-0.5625 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4170" /> + <path + d="m -852.33,1185.2 c -1.653,0 -3.0458,1.0383 -3.5937,2.5 l -34.656,12.281 v -9.2812 a 2.5002,2.5002 0 0 0 -2.5312,-2.5313 2.5002,2.5002 0 0 0 -2.4688,2.5313 v 11.062 l -11.219,3.9687 a 2.5002,2.5002 0 0 0 0,4.7188 l 11.219,3.9375 v 5.1562 l -11.219,3.9688 a 2.5002,2.5002 0 0 0 0,4.7187 l 11.219,3.9688 v 5.125 l -11.219,3.9687 a 2.5002,2.5002 0 0 0 0,4.7188 l 50.875,18.031 c 0.5479,1.4617 1.9407,2.5313 3.5937,2.5313 2.1292,0 3.8438,-1.7459 3.8438,-3.875 0,-2.1292 -1.7146,-3.8438 -3.8438,-3.8438 -0.698,0 -1.3415,0.2068 -1.9062,0.5313 l -36.344,-12.906 a 2.5002,2.5002 0 0 0 0,-0.1875 v -5.4062 l 10.562,-3.75 a 2.5002,2.5002 0 0 0 0,-4.7188 l -10.562,-3.75 v -5.625 l 10.562,-3.75 a 2.5002,2.5002 0 0 0 0,-4.6875 l -10.562,-3.75 v -5.5937 l 36.344,-12.875 c 0.5647,0.3244 1.2082,0.5312 1.9062,0.5312 2.1292,0 3.8438,-1.7458 3.8438,-3.875 0,-2.1291 -1.7146,-3.8437 -3.8438,-3.8437 z m -43.25,21.844 v 2.0625 l -2.9062,-1.0312 z m 5,9.0938 2.2813,0.8125 -2.2813,0.8125 z m -5,8.6875 v 2.0625 l -2.9062,-1.0313 z m 5,9.1562 2.25,0.7813 -2.25,0.7812 z m -5,8.6563 v 2.0625 l -2.9062,-1.0313 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4172" /> + <path + d="m -788.35,1184.2 a 2.5002,2.5002 0 0 0 -1.7841,1.1002 l -14.719,21.974 -25.423,7.2255 a 2.5002,2.5002 0 0 0 -1.2786,3.9547 l 16.354,20.784 -0.9515,26.434 a 2.5002,2.5002 0 0 0 3.36,2.4085 l 24.799,-9.0988 24.828,9.069 a 2.5002,2.5002 0 0 0 3.3601,-2.4382 l -1.011,-26.404 16.295,-20.814 a 2.5002,2.5002 0 0 0 -1.2786,-3.9547 l -25.423,-7.2255 -14.748,-21.914 a 2.5002,2.5002 0 0 0 -2.3788,-1.1002 z m 0.2973,6.9877 13.202,19.595 a 2.5002,2.5002 0 0 0 1.3976,1.011 l 22.717,6.4524 -14.57,18.584 a 2.5002,2.5002 0 0 0 -0.5353,1.6354 l 0.8921,23.609 -22.182,-8.0879 a 2.5002,2.5002 0 0 0 -1.7246,0 l -22.182,8.1473 0.8623,-23.639 a 2.5002,2.5002 0 0 0 -0.5352,-1.6354 l -14.57,-18.554 22.688,-6.4821 a 2.5002,2.5002 0 0 0 1.3975,-1.011 l 13.143,-19.625 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4195" /> + <path + d="m -788.4,1216 c -4.8517,0 -8.8125,3.9608 -8.8125,8.8125 a 2.1387,2.1387 0 1 0 4.25,0 c 0,-2.5403 2.0222,-4.5312 4.5625,-4.5312 2.5403,0 4.5625,1.9909 4.5625,4.5312 0,0.6956 -0.176,1.0804 -0.9062,1.9688 -0.7302,0.8884 -1.9841,2.0898 -3.4063,3.8125 l -9.3437,11.312 a 2.1387,2.1387 0 0 0 1.6562,3.5 h 15.406 a 2.14065,2.14065 0 0 0 0,-4.2813 h -10.875 l 6.4375,-7.8125 c 1.2474,-1.511 2.4036,-2.5926 3.4062,-3.8125 1.0026,-1.2198 1.9063,-2.8108 1.9063,-4.6875 0,-4.8517 -3.992,-8.8125 -8.8438,-8.8125 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4201" /> + <path + d="m -719.32,1204.4 a 2.5002,2.5002 0 0 0 -2.25,2.5 v 39.656 a 2.5002,2.5002 0 0 0 2.75,2.5 h 0.031 8.5625 c 7.6375,0 13.844,-6.2375 13.844,-13.875 0,-7.6376 -6.2062,-13.844 -13.844,-13.844 h -6.3438 v -11.938 h 14.156 a 2.5002,2.5002 0 1 0 0,-5 h -16.656 a 2.5002,2.5002 0 0 0 -0.25,0 z m 2.75,21.938 h 6.3437 c 4.954,0 8.8438,3.8897 8.8438,8.8438 0,4.954 -3.8898,8.875 -8.8438,8.875 h -6.3437 v -17.719 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4204" /> + <path + d="m -667.07,1189.1 a 2.1387,2.1387 0 0 0 -2.125,2.1875 v 68.688 a 2.1406,2.1406 0 0 0 4.2812,0 v -68.688 A 2.1387,2.1387 0 0 0 -667.07,1189.1 Z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4213" /> + <path + d="m -696.1,1257.9 a 2.503123,2.503123 0 1 0 0.25,5 h 57.594 a 2.5002,2.5002 0 1 0 0,-5 h -57.594 a 2.5002,2.5002 0 0 0 -0.25,0 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4215" /> + <path + d="m -997.61,1301.5 a 2.7908,2.7908 0 0 0 -2.5192,2.7905 v 33.331 a 2.7908,2.7908 0 1 0 5.5809,0 v -30.54 h 10.387 a 2.7908,2.7908 0 1 0 0,-5.581 h -13.177 a 2.7908,2.7908 0 0 0 -0.2713,0 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4217" /> + <path + d="m -967.11,1301.5 c -7.3104,0 -13.294,5.9832 -13.294,13.294 v 12.363 c 0,7.3104 5.9832,13.255 13.294,13.255 7.3104,0 13.294,-5.9445 13.294,-13.255 v -12.363 c 0,-7.3104 -5.9832,-13.294 -13.294,-13.294 z m 0,5.581 c 4.3151,0 7.7126,3.3975 7.7126,7.7126 v 12.363 c 0,4.3151 -3.3975,7.6739 -7.7126,7.6739 -4.315,0 -7.7126,-3.3588 -7.7126,-7.6739 v -12.363 c 0,-4.3151 3.3976,-7.7126 7.7126,-7.7126 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="rect4219" /> + <path + d="m -939.56,1301.5 c -7.3103,0 -13.294,5.9832 -13.294,13.294 v 12.363 c 0,7.3104 5.9833,13.255 13.294,13.255 6.1555,0 11.384,-4.1964 12.867,-9.9218 a 2.7908,2.7908 0 1 0 -5.3872,-1.3952 c -0.8578,3.3113 -3.8467,5.736 -7.4801,5.736 -4.315,0 -7.7126,-3.3588 -7.7126,-7.6739 v -12.363 c 0,-4.3151 3.3976,-7.7126 7.7126,-7.7126 3.63,0 6.5804,2.4293 7.4414,5.736 a 2.8012164,2.8012164 0 1 0 5.4259,-1.3953 c -1.4886,-5.7173 -6.7175,-9.9217 -12.867,-9.9217 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="rect4221" /> + <path + d="m -913.39,1301.5 a 2.7908,2.7908 0 0 0 -2.4804,2.8293 v 33.331 a 2.7908,2.7908 0 1 0 5.581,0 v -33.331 A 2.7908,2.7908 0 0 0 -913.39,1301.5 Z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4224" /> + <path + d="m -921.92,1301.5 a 2.7938,2.7938 0 1 0 0.2713,5.581 h 17.131 a 2.7908,2.7908 0 1 0 0,-5.581 h -17.131 a 2.7908,2.7908 0 0 0 -0.2713,0 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4226" /> + <path + d="m -871.11,1301.5 c -5.4866,0 -9.9993,4.5127 -9.9993,9.9993 0,5.4866 4.5127,9.9993 9.9993,9.9993 5.4865,0 9.9992,-4.5127 9.9992,-9.9993 0,-5.4866 -4.5127,-9.9993 -9.9992,-9.9993 z m 0,5.581 c 2.4704,0 4.4183,1.9479 4.4183,4.4183 0,2.4704 -1.9479,4.4183 -4.4183,4.4183 -2.4704,0 -4.4183,-1.9479 -4.4183,-4.4183 0,-2.4704 1.9479,-4.4183 4.4183,-4.4183 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4232" /> + <path + d="m -871.11,1315.8 c -6.7839,0 -12.335,5.5509 -12.335,12.335 0,6.7839 5.5509,12.335 12.335,12.335 6.7839,0 12.335,-5.5509 12.335,-12.335 0,-6.7839 -5.5509,-12.335 -12.335,-12.335 z m 0,5.5506 c 3.7677,0 6.7841,3.0165 6.7841,6.7842 0,3.7677 -3.0164,6.7841 -6.7841,6.7841 -3.7677,0 -6.7842,-3.0164 -6.7842,-6.7841 0,-3.7677 3.0165,-6.7842 6.7842,-6.7842 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4234" /> + <path + d="m -853.24,1301.5 a 2.7948015,2.7948015 0 1 0 0.31,5.581 h 9.8055 c -4.1407,8.1507 -7.5055,18.252 -10.348,29.882 a 2.7918179,2.7918179 0 0 0 5.4259,1.3178 c 3.274,-13.394 7.1815,-24.728 11.898,-32.556 a 2.7908,2.7908 0 0 0 -2.403,-4.2245 h -14.379 a 2.7908,2.7908 0 0 0 -0.31,0 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4236" /> + <path + d="m -817.47,1301.5 a 2.7908,2.7908 0 0 0 -2.1704,1.1239 l -5.8135,7.7514 a 2.7908,2.7908 0 1 0 4.457,3.3331 l 0.8139,-1.0852 v 24.998 a 2.7908,2.7908 0 1 0 5.581,0 v -33.331 a 2.7908,2.7908 0 0 0 -2.868,-2.7905 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4240" /> + <path + d="m -797.9,1301.5 a 2.7908,2.7908 0 0 0 -2.1316,1.1239 l -5.8136,7.7514 a 2.7908,2.7908 0 1 0 4.4571,3.3331 l 0.7751,-1.0464 v 24.959 a 2.7908,2.7908 0 1 0 5.581,0 v -33.331 a 2.7908,2.7908 0 0 0 -2.868,-2.7905 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4250" /> + <path + d="m -726.59,1301.5 c -7.3104,0 -13.294,5.9832 -13.294,13.294 v 12.363 c 0,7.3104 5.9832,13.255 13.294,13.255 7.3104,0 13.294,-5.9445 13.294,-13.255 v -12.363 c 0,-7.3104 -5.9832,-13.294 -13.294,-13.294 z m 0,5.581 c 4.3151,0 7.7127,3.3975 7.7127,7.7126 v 12.363 c 0,4.3151 -3.3976,7.6739 -7.7127,7.6739 -4.315,0 -7.7126,-3.3588 -7.7126,-7.6739 v -12.363 c 0,-4.3151 3.3976,-7.7126 7.7126,-7.7126 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="rect4252" /> + <path + d="m -753.51,1315.8 c -6.7839,0 -12.335,5.5509 -12.335,12.335 0,6.7839 5.5509,12.335 12.335,12.335 6.7839,0 12.335,-5.5509 12.335,-12.335 0,-6.7839 -5.5509,-12.335 -12.335,-12.335 z m 0,5.5506 c 3.7677,0 6.7841,3.0165 6.7841,6.7842 0,3.7677 -3.0164,6.7841 -6.7841,6.7841 -3.7677,0 -6.7842,-3.0164 -6.7842,-6.7841 0,-3.7677 3.0165,-6.7842 6.7842,-6.7842 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4254" /> + <path + d="m -753.52,1301.5 c -6.7839,0 -12.325,5.5408 -12.325,12.325 v 14.262 a 2.7908,2.7908 0 1 0 5.581,0 v -14.262 c 0,-3.7677 2.976,-6.7437 6.7437,-6.7437 2.7232,0 5.1777,1.6007 6.2399,4.1082 a 2.7965,2.7965 0 1 0 5.1546,-2.1704 c -1.9302,-4.5568 -6.4457,-7.5188 -11.394,-7.5188 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4258" /> + <path + d="m -787.63,1317.3 a 2.7938,2.7938 0 1 0 0.2713,5.581 h 14.418 a 2.7908,2.7908 0 1 0 0,-5.581 h -14.418 a 2.7908,2.7908 0 0 0 -0.2713,0 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4261" /> + <path + d="m 144.24,272.53 c -6.7856,0 -12.69,3.8407 -15.594,9.5 a 2.5002,2.5002 0 1 0 4.4375,2.2812 c 2.0712,-4.0371 6.2544,-6.7812 11.156,-6.7812 6.9827,0 12.531,5.5486 12.531,12.531 v 21.344 c 0,6.9826 -5.5486,12.531 -12.531,12.531 -4.4773,0 -8.3427,-2.2743 -10.562,-5.75 a 2.5010041,2.5010041 0 1 0 -4.2187,2.6875 c 3.1089,4.8679 8.5832,8.0625 14.781,8.0625 9.6662,0 17.531,-7.8651 17.531,-17.531 v -21.344 c 0,-9.6662 -7.8651,-17.531 -17.531,-17.531 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="rect4271" /> + <path + d="m 221.24,272.53 c -9.6661,0 -17.5,7.865 -17.5,17.531 v 21.344 c 0,9.6661 7.8339,17.531 17.5,17.531 9.6662,0 17.531,-7.8651 17.531,-17.531 v -21.344 c 0,-9.6662 -7.8651,-17.531 -17.531,-17.531 z m 0,5 c 6.9827,0 12.531,5.5485 12.531,12.531 v 21.344 c 0,6.9826 -5.5486,12.531 -12.531,12.531 -6.9826,0 -12.5,-5.5486 -12.5,-12.531 v -21.344 c 0,-6.9827 5.5174,-12.531 12.5,-12.531 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="rect4273" /> + <path + d="m 169.86,272.53 a 2.503123,2.503123 0 1 0 0.25,5 h 18.156 l -12.375,17.5 a 2.5002,2.5002 0 0 0 2.3437,3.9375 c 5.7215,-0.6862 9.0208,0.5421 11.188,2.4375 2.1668,1.8954 3.3312,4.7379 3.7813,7.7187 0.4713,3.1214 -0.2842,6.6267 -1.9063,9.4063 -1.622,2.7795 -4.0115,4.7449 -6.7187,5.25 -4.475,0.8347 -10.174,-1.6848 -12.25,-5.8438 a 2.5016331,2.5016331 0 1 0 -4.4688,2.25 c 3.2375,6.4873 10.824,9.7687 17.625,8.5 4.4334,-0.827 7.9333,-3.8692 10.125,-7.625 2.1918,-3.7558 3.1946,-8.2945 2.5313,-12.688 -0.5669,-3.7543 -2.0648,-7.7957 -5.4063,-10.719 -2.4107,-2.1089 -5.7373,-3.4771 -9.9062,-3.7813 l 12.312,-17.406 a 2.5002,2.5002 0 0 0 -2.0625,-3.9375 h -22.969 a 2.5002,2.5002 0 0 0 -0.25,0 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4275" /> + <path + d="m 145.11,298.25 a 2.503123,2.503123 0 1 0 0.25,5 h 13.125 a 2.5002,2.5002 0 1 0 0,-5 H 145.36 a 2.5002,2.5002 0 0 0 -0.25,0 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4281" /> + <path + d="m 147.41,654.11 a 3.5004,3.5004 0 0 0 -3,1.9063 l -22,41.875 -75.406,87.469 a 3.5014,3.5014 0 1 0 5.3125,4.5625 l 75.688,-87.844 a 3.5004,3.5004 0 0 0 0.4687,-0.6563 l 22.125,-42.156 a 3.5004,3.5004 0 0 0 -3.1875,-5.1563 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#cc9168" + id="path4285" /> + <path + d="m 49.41,773.83 c -7.7494,0 -14.125,6.3443 -14.125,14.094 0,7.7494 6.3756,14.125 14.125,14.125 7.7494,0 14.094,-6.3756 14.094,-14.125 a 3.5004,3.5004 0 1 0 -7,0 c 0,3.9663 -3.1274,7.125 -7.0938,7.125 -3.9663,0 -7.125,-3.1587 -7.125,-7.125 0,-3.9663 3.1587,-7.0937 7.125,-7.0937 h 0.2813 a 3.5035,3.5035 0 1 0 0.3125,-7 c -0.1998,-0.01 -0.3938,0 -0.5938,0 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#ffffff" + id="path4287" /> + <circle + r="54.285713" + cy="642.65503" + cx="194.64856" + style="fill:#b3b3b3" + id="path4283" /> + <circle + r="42.669113" + cy="642.64874" + cx="194.65746" + style="fill:#808080;stroke-width:0.78601003" + id="path4294" /> + <path + d="m 188.35,600.96 c -20.3,3.0393 -35.875,20.541 -35.875,41.688 0,21.147 15.575,38.679 35.875,41.719 v -83.406 z m 12.625,0.031 v 83.344 c 20.284,-3.0534 35.844,-20.552 35.844,-41.688 0,-21.135 -15.56,-38.603 -35.844,-41.656 z" + inkscape:connector-curvature="0" + style="fill:#cccccc" + id="path4289" /> + <path + d="m -268.5,1124 c -1.0098,0.01 -2.0071,0.4765 -2.6563,1.25 l -75.719,87.844 c -0.1719,0.2111 -0.3191,0.4424 -0.4375,0.6875 l -34.12,26.143 c -0.8509,1.628 -0.1437,3.8835 1.4843,4.7343 1.6281,0.8509 3.8836,0.1437 4.7344,-1.4843 l 33.902,-25.768 75.469,-87.594 c 0.8866,-1.0076 1.1136,-2.5465 0.5558,-3.7672 -0.5578,-1.2207 -1.87,-2.0562 -3.212,-2.0453 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#cc9168" + sodipodi:nodetypes="cccccscccsc" + id="path4296" /> + <circle + r="54.285713" + cy="-1272.595" + cx="413.50156" + transform="scale(-1)" + style="fill:#c5c5bf" + id="path4300-2" /> + <circle + r="42.669113" + cy="-1272.5112" + cx="413.50345" + transform="scale(-1)" + style="fill:#808080;stroke-width:0.78601003" + id="path4302" /> + <path + inkscape:connector-curvature="0" + style="fill:#cccccc" + d="m -407.2,1314.3 c 20.3,-3.0394 35.875,-20.541 35.875,-41.688 0,-21.147 -15.575,-38.679 -35.875,-41.719 v 83.406 z m -12.625,-0.031 v -83.344 c -20.284,3.0534 -35.844,20.552 -35.844,41.688 0,21.135 15.56,38.603 35.844,41.656 z" + id="path4304" /> + </g> + <g + inkscape:label="HMI:Meter@/PUMP0/SLOTH" + transform="matrix(18.912567,0,0,18.912567,-2339.3501,1119.9665)" + id="g19348"> + <path + inkscape:label="range" + sodipodi:open="true" + d="M 69.660373,-2.4694091 A 54.660004,54.024006 0 0 1 124.19821,-56.449318" + sodipodi:end="4.7101543" + sodipodi:start="3.1424064" + sodipodi:ry="54.024006" + sodipodi:rx="54.660004" + sodipodi:cy="-2.4254472" + sodipodi:cx="124.32036" + sodipodi:type="arc" + id="path19332" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.38814712;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <path + inkscape:label="needle" + sodipodi:nodetypes="cc" + inkscape:connector-curvature="0" + id="path19334" + d="M 123.16695,-3.4226979 70.419817,-6.3833915" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.92543143;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:29.63333321;stroke-opacity:1;marker-start:url(#marker20566-2);marker-end:url(#marker23223)" /> + </g> + <g + id="g24628"> + <path + d="m 111.68,388.94 2.4663,1.2855 71.607,37.323 2.4386,1.2711 2.4387,-1.2711 71.607,-37.323 2.4663,-1.2855 -2.4386,-1.271 -71.607,-37.323 -2.4664,-1.2855 -2.4663,1.2855 -71.607,37.323 z m 9.81,0 66.702,-34.766 66.73,34.78 -66.702,34.766 -66.73,-34.781 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="rect4358" /> + <path + d="m 174.86,371.46 -2.2812,1.375 -11.406,6.9687 -0.7187,0.4375 v 0.8438 4.4687 h 3 v -3.625 l 8.4062,-5.125 v 9.5313 l -3.5937,3.8125 -0.9375,1.0312 0.9375,1.0313 3.5937,3.8125 v 9.5312 l -8.4062,-5.125 v -3.625 h -3 v 4.4688 0.8437 l 0.7187,0.4375 11.406,6.9688 2.2812,1.375 v -2.6563 -12.812 -0.5937 l -0.4062,-0.4375 -3.0313,-3.2188 3.0313,-3.25 0.4062,-0.4375 v -0.5937 -12.781 -2.6562 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4362" /> + <path + d="m 181.18,365.18 v 48.594 h 3 V 365.18 Z m 11.062,0 v 48.594 h 3 V 365.18 Z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4366" /> + <path + d="m 192.36,377.09 -11.062,24.469 2.7188,1.2188 11.094,-24.469 -2.75,-1.2187 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4369" /> + <path + d="m 200.8,368.12 v 2.625 37.5 h 3 v -34.906 l 8,4.5937 v 22.969 h 3 v -23.812 -0.875 l -0.75,-0.4375 -11,-6.3438 -2.25,-1.3125 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4371" /> + <path + d="m 141.52,456.11 c -4.2082,0 -7.5312,3.6567 -7.5312,8 a 1.5002,1.5002 0 1 0 3,0 c 0,-2.8368 2.0679,-5 4.5312,-5 2.4633,0 4.5313,2.1632 4.5313,5 0,1.0172 -0.081,1.842 -0.5,2.6562 -0.419,0.8143 -1.2183,1.7196 -2.9688,2.7188 -4.2189,2.4083 -8.2687,7.139 -8.9375,14.062 a 1.5002,1.5002 0 0 0 1.5,1.625 h 12.281 a 1.5002,1.5002 0 1 0 0,-3 H 137.02 c 1.0026,-4.93 3.9357,-8.3089 7.0625,-10.094 2.1,-1.1987 3.4254,-2.517 4.1563,-3.9375 0.7308,-1.4205 0.8125,-2.8442 0.8125,-4.0312 0,-4.3433 -3.3231,-8 -7.5313,-8 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4373" /> + <path + d="m 191.63,456.12 a 1.5002,1.5002 0 0 0 -1.0625,0.625 l -12.656,18.5 a 1.5002,1.5002 0 0 0 1.2188,2.3438 h 11.188 v 6.0625 a 1.5002,1.5002 0 1 0 3,0 v -6.0625 h 0.5312 a 1.5002,1.5002 0 1 0 0,-3 h -0.5312 v -16.969 a 1.5002,1.5002 0 0 0 -1.6875,-1.5 z m -1.3125,6.3125 v 12.156 h -8.3125 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4157-8" /> + <path + d="m 260.25,456.14 a 1.5002,1.5002 0 0 0 -1.1875,1.5 v 11.156 a 1.5002,1.5002 0 0 0 2.75,0.8125 c 0.8305,-1.2895 3.2878,-2.2812 5.4062,-2.2812 3.1378,0 5.5938,2.446 5.5938,5.5625 v 3.7187 c 0,3.1165 -2.456,5.5625 -5.5938,5.5625 -2.1156,0 -4.4947,-1.271 -5.375,-2.8125 a 1.5002,1.5002 0 1 0 -2.5937,1.5 c 1.5623,2.7359 4.7718,4.3125 7.9687,4.3125 4.7418,0 8.5938,-3.8296 8.5938,-8.5625 v -3.7187 c 0,-4.7328 -3.852,-8.5625 -8.5938,-8.5625 -1.7311,0 -3.5751,0.4087 -5.1562,1.25 v -6.4375 h 10.562 a 1.5002,1.5002 0 1 0 0,-3 h -12.062 a 1.5002,1.5002 0 0 0 -0.3125,0 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4397" /> + <path + d="m 139.49,518.96 a 1.5002,1.5002 0 0 0 -1.1875,0.625 l -4.4687,6.0625 a 1.5002,1.5002 0 1 0 2.4062,1.7812 l 1.7813,-2.4062 v 21.5 a 1.5002,1.5002 0 1 0 3,0 v -26.062 a 1.5002,1.5002 0 0 0 -1.5313,-1.5 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4250-1" /> + <path + d="m 177.16,530.1 c -4.9217,0 -8.9328,4.0208 -8.9328,8.9543 0,4.9336 4.0111,8.9544 8.9328,8.9544 4.9217,0 8.9329,-4.0208 8.9329,-8.9544 0,-4.9335 -4.0112,-8.9543 -8.9329,-8.9543 z m 0,3.0116 c 3.3023,0 5.9286,2.6325 5.9286,5.9427 0,3.3103 -2.6263,5.983 -5.9286,5.983 -3.3023,0 -5.9285,-2.6727 -5.9285,-5.983 0,-3.3102 2.6262,-5.9427 5.9285,-5.9427 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4254-5" /> + <path + d="m 177.15,518.96 c -4.9246,0 -8.9375,4.0381 -8.9375,8.9687 v 11.125 a 1.5002,1.5002 0 1 0 3,0 v -11.125 c 0,-3.3131 2.6381,-5.9687 5.9375,-5.9687 2.3902,0 4.5663,1.4467 5.5,3.6562 a 1.5002,1.5002 0 1 0 2.75,-1.1875 c -1.3986,-3.3097 -4.6606,-5.4687 -8.25,-5.4687 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4258-9" /> + <path + d="m 154.3,536.89 c 4.9217,0 8.9328,-4.0208 8.9328,-8.9543 0,-4.9335 -4.0111,-8.9543 -8.9328,-8.9543 -4.9217,0 -8.9329,4.0208 -8.9329,8.9543 0,4.9335 4.0112,8.9543 8.9329,8.9543 z m 0,-3.0115 c -3.3024,0 -5.9286,-2.6326 -5.9286,-5.9428 0,-3.3103 2.6262,-5.9829 5.9286,-5.9829 3.3023,0 5.9285,2.6726 5.9285,5.9829 0,3.3102 -2.6262,5.9428 -5.9285,5.9428 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4446" /> + <path + d="m 161.74,526.4 a 1.5002,1.5002 0 0 0 -1.5,1.5312 v 11.125 c 0,3.3132 -2.6381,5.9688 -5.9375,5.9688 -2.3902,0 -4.535,-1.4155 -5.4687,-3.625 a 1.5060236,1.5060236 0 1 0 -2.7813,1.1562 c 1.3986,3.3097 4.6606,5.4688 8.25,5.4688 4.9246,0 8.9375,-4.0382 8.9375,-8.9688 v -11.125 a 1.5002,1.5002 0 0 0 -1.5,-1.5312 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4448" /> + <path + d="m 225.02,523.02 a 1.5002,1.5002 0 0 0 -1.3438,1.5 v 18.562 a 1.5002,1.5002 0 1 0 3,0 V 526.02 h 7.7813 a 1.5002,1.5002 0 1 0 0,-3 h -9.2813 a 1.5002,1.5002 0 0 0 -0.1562,0 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4458" /> + <path + d="m -268.26,1141.4 c 7.7494,0 14.125,-6.3444 14.125,-14.094 0,-7.7494 -6.3756,-14.125 -14.125,-14.125 -7.7494,0 -14.094,6.3756 -14.094,14.125 a 3.5004,3.5004 0 1 0 7,0 c 0,-3.9663 3.1275,-7.125 7.0938,-7.125 3.9663,0 7.125,3.1587 7.125,7.125 0,3.9664 -3.1587,7.0938 -7.125,7.0938 h -0.2813 a 3.5035,3.5035 0 1 0 -0.3125,7 c 0.1999,0.01 0.3938,0 0.5938,0 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#ffffff" + id="path4298" /> + <rect + x="178.94" + y="1014.8" + width="294.29001" + height="45" + ry="22.5" + rx="22.5" + style="fill:#333333" + id="rect3790" /> + <path + d="m 183.75,1122.6 c -65.126,0 -119.22,47.238 -129.91,109.31 h -70.969 c -12.465,0 -22.5,10.035 -22.5,22.5 0,12.465 10.035,22.5 22.5,22.5 H 53.84 c 10.674,62.09 64.77,109.34 129.91,109.34 65.138,0 119.23,-47.252 129.91,-109.34 h 137.06 c 12.465,0 22.5,-10.035 22.5,-22.5 0,-12.465 -10.035,-22.5 -22.5,-22.5 H 313.66 c -10.69,-62.1 -64.81,-109.3 -129.91,-109.3 z" + inkscape:connector-curvature="0" + style="fill:#333333" + id="rect3792" /> + <path + sodipodi:start="0" + sodipodi:end="6.2776887" + sodipodi:cx="450.52805" + sodipodi:cy="401.31888" + transform="matrix(0.67433,0,0,0.67433,-120.05,983.82)" + sodipodi:open="true" + d="M 582.35295,401.31888 A 131.82491,131.82491 0 0 1 450.70919,533.14366 131.82491,131.82491 0 0 1 318.70364,401.68117 131.82491,131.82491 0 0 1 449.9846,269.49509 131.82491,131.82491 0 0 1 582.35096,400.59429" + sodipodi:type="arc" + style="fill:#000000" + sodipodi:ry="131.82491" + sodipodi:rx="131.82491" + id="path3802" /> + <path + d="m 183.75,1175.6 c -43.516,0 -78.781,35.266 -78.781,78.781 0,7.6898 1.1023,15.13 3.1563,22.156 l 145.66,-58.188 c -13.09,-25.386 -39.524,-42.75 -70.031,-42.75 z m 75.625,56.656 -145.69,58.188 c 13.086,25.38 39.541,42.75 70.062,42.75 43.516,0 78.781,-35.297 78.781,-78.812 v -0.4062 c -0.041,-7.535 -1.1424,-14.828 -3.1562,-21.719 z" + inkscape:connector-curvature="0" + style="fill:#333333" + id="path3804" /> + <rect + x="-236.78" + y="1431.9" + width="710" + height="45" + ry="22.5" + rx="22.5" + style="fill:#333333" + id="rect3794" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m 64.543,197.04 c -15.018,0 -27.219,12.201 -27.219,27.219 v 40.406 c 0,15.018 12.2,27.25 27.219,27.25 15.018,0 27.25,-12.232 27.25,-27.25 v -40.406 c 0,-15.018 -12.232,-27.219 -27.25,-27.219 z m 0,8 c 10.725,0 19.25,8.4942 19.25,19.219 v 40.406 c 0,10.725 -8.5254,19.25 -19.25,19.25 -10.724,0 -19.219,-8.5254 -19.219,-19.25 v -40.406 c 0,-10.725 8.4942,-19.219 19.219,-19.219 z" + id="path5724" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m -608.11,412.19 a 4.2093,4.2093 0 1 0 0.4204,8.408 h 30.531 l -20.81,29.428 a 4.2044,4.2044 0 0 0 3.9412,6.6213 c 9.6213,-1.1538 15.169,0.9116 18.813,4.0989 3.6435,3.1873 5.6017,7.9672 6.3585,12.98 0.7925,5.2489 -0.4779,11.143 -3.2056,15.818 -2.7276,4.6741 -6.7457,7.9791 -11.298,8.8283 -7.525,1.4038 -17.109,-2.8331 -20.6,-9.8268 a 4.2067,4.2067 0 0 0 -7.5146,3.7836 c 5.4441,10.909 18.201,16.427 29.638,14.294 7.4551,-1.3908 13.34,-6.5064 17.026,-12.822 3.6857,-6.3157 5.3719,-13.948 4.2565,-21.335 -0.9532,-6.3133 -3.4721,-13.109 -9.0911,-18.025 -4.0538,-3.5462 -9.6478,-5.8469 -16.658,-6.3585 l 20.705,-29.27 a 4.2044,4.2044 0 0 0 -3.4683,-6.6213 h -38.624 a 4.2044,4.2044 0 0 0 -0.4204,0 z" + id="path5726" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m -304.56,229 c -15.021,0 -27.222,12.201 -27.222,27.222 v 40.446 c 0,15.021 12.201,27.222 27.222,27.222 15.021,0 27.277,-12.201 27.277,-27.222 V 256.222 C -277.283,241.201 -289.54,229 -304.56,229 Z m 0,7.9675 c 10.744,0 19.31,8.5101 19.31,19.255 v 40.446 c 0,10.744 -8.5654,19.255 -19.31,19.255 -10.744,0 -19.255,-8.5101 -19.255,-19.255 v -40.446 c 0,-10.744 8.5101,-19.255 19.255,-19.255 z" + id="path5728" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + d="m -361.49,229.03 a 3.9804,3.9804 0 0 0 -2.8192,1.8242 l -39.192,61.69 a 3.9804,3.9804 0 0 0 3.3719,6.0806 h 35.157 v 21.227 a 3.9804,3.9804 0 1 0 7.96,0 v -21.227 h 2.377 a 3.9804,3.9804 0 1 0 0,-7.96 h -2.377 v -57.655 a 3.9804,3.9804 0 0 0 -4.4775,-3.98 z m -3.4825,17.634 v 44.001 h -27.916 z" + id="path5730" /> + <path + d="m -228.85,229 c -15.021,0 -27.222,12.201 -27.222,27.222 v 40.446 c 0,15.021 12.201,27.222 27.222,27.222 15.021,0 27.277,-12.201 27.277,-27.222 V 256.222 C -201.573,241.201 -213.83,229 -228.85,229 Z m 0,7.9675 c 10.744,0 19.31,8.5101 19.31,19.255 v 40.446 c 0,10.744 -8.5655,19.255 -19.31,19.255 -10.7445,0 -19.255,-8.5101 -19.255,-19.255 v -40.446 c 0,-10.744 8.5101,-19.255 19.255,-19.255 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path5732" /> + <path + d="m 191.83,520.42 h 14.362 l -11.391,26.091" + inkscape:connector-curvature="0" + style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:round;stroke-linejoin:round" + id="path5734" /> + <path + inkscape:connector-curvature="0" + style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:round;stroke-linejoin:round" + d="m 234.26,457.58 h 14.362 l -11.391,26.09" + id="path5736" /> + <path + d="m 214.66,456.08 c -4.7833,0 -8.6562,3.9041 -8.6562,8.6875 v 11.719 c 0,4.7834 3.8729,8.6875 8.6562,8.6875 4.7834,0 8.6875,-3.9041 8.6875,-8.6875 v -11.719 c 0,-4.7834 -3.9041,-8.6875 -8.6875,-8.6875 z m 0,3 c 3.1733,0 5.6875,2.5142 5.6875,5.6875 v 11.719 c 0,3.1733 -2.5142,5.6875 -5.6875,5.6875 -3.1732,0 -5.6562,-2.5142 -5.6562,-5.6875 v -11.719 c 0,-3.1733 2.483,-5.6875 5.6562,-5.6875 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="rect5738" /> + <path + d="m 165.16,456.08 c -4.7833,0 -8.6562,3.9041 -8.6562,8.6875 v 11.719 c 0,4.7834 3.8729,8.6875 8.6562,8.6875 4.7834,0 8.6875,-3.9041 8.6875,-8.6875 v -11.719 c 0,-4.7834 -3.9041,-8.6875 -8.6875,-8.6875 z m 0,3 c 3.1733,0 5.6875,2.5142 5.6875,5.6875 v 11.719 c 0,3.1733 -2.5142,5.6875 -5.6875,5.6875 -3.1732,0 -5.6562,-2.5142 -5.6562,-5.6875 v -11.719 c 0,-3.1733 2.483,-5.6875 5.6562,-5.6875 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="rect5740" /> + <path + d="m -1171.1,945.11 a 2.6676,2.6676 0 0 0 -2.1117,1.1113 l -7.9464,10.78 a 2.6676,2.6676 0 1 0 4.2788,3.1675 l 3.1675,-4.2789 v 38.232 a 2.6676,2.6676 0 1 0 5.3347,0 v -46.345 a 2.6676,2.6676 0 0 0 -2.7229,-2.6673 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path4250-1-3" /> + <path + d="m -1144.4,945.12 c -8.5059,0 -15.448,6.8868 -15.448,15.393 v 20.894 c 0,8.5059 6.9424,15.393 15.448,15.393 8.5059,0 15.448,-6.8868 15.448,-15.393 v -20.894 c 0,-8.5059 -6.9424,-15.393 -15.448,-15.393 z m 0,5.3346 c 5.6428,0 10.114,4.4153 10.114,10.058 v 20.894 c 0,5.6428 -4.4708,10.058 -10.114,10.058 -5.6428,0 -10.114,-4.4153 -10.114,-10.058 v -20.894 c 0,-5.6428 4.4708,-10.058 10.114,-10.058 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="rect5738-5" /> + <path + d="m -1107.5,944.76 c -8.5059,0 -15.448,6.8868 -15.448,15.393 v 20.894 c 0,8.5059 6.9424,15.393 15.448,15.393 8.5059,0 15.448,-6.8868 15.448,-15.393 v -20.894 c 0,-8.506 -6.9424,-15.393 -15.448,-15.393 z m 0,5.3347 c 5.6428,0 10.114,4.4153 10.114,10.058 v 20.894 c 0,5.6427 -4.4708,10.058 -10.114,10.058 -5.6428,0 -10.114,-4.4153 -10.114,-10.058 v -20.894 c 0,-5.6428 4.4708,-10.058 10.114,-10.058 z" + inkscape:connector-curvature="0" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="rect5763" /> + <path + inkscape:connector-curvature="0" + inkscape:transform-center-y="-426.79377" + inkscape:transform-center-x="933.15822" + d="m -981.29,613.51 a 3.5004,3.5004 0 0 0 -1.8867,6.6884 l 109.11,49.911 a 3.5004,3.5004 0 1 0 2.9043,-6.3686 l -109.11,-49.911 A 3.5004,3.5004 0 0 0 -981.29,613.51 Z" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path5787" /> + <path + inkscape:connector-curvature="0" + inkscape:transform-center-y="-773.89442" + inkscape:transform-center-x="673.81332" + d="m -705.38,246.62 a 3.5004,3.5004 0 0 0 -4.4791,5.3134 l 78.781,90.494 a 3.5004,3.5004 0 1 0 5.2739,-4.6022 l -78.781,-90.494 A 3.5004,3.5004 0 0 0 -705.38,246.62 Z" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path5789" /> + <path + inkscape:connector-curvature="0" + inkscape:transform-center-y="-976.42875" + inkscape:transform-center-x="315.47402" + d="m -325.06,33.219 a 3.5004,3.5004 0 0 0 -6.2068,3.1256 l 36.88,114.17 a 3.5004,3.5004 0 1 0 6.6582,-2.1593 l -36.88,-114.18 a 3.5004,3.5004 0 0 0 -0.4514,-0.9664 z" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path5791" /> + <path + inkscape:connector-curvature="0" + inkscape:transform-center-y="-1026.1273" + inkscape:transform-center-x="-0.023585956" + d="m 9.3597,-18.399 a 3.5004,3.5004 0 0 0 -6.8671,1.0659 l -0.011,119.98 a 3.5004,3.5004 0 1 0 6.9995,-0.01 l 0.011,-119.98 a 3.5004,3.5004 0 0 0 -0.1324,-1.0584 z" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path5793" /> + <path + inkscape:connector-curvature="0" + inkscape:transform-center-y="-165.18705" + inkscape:transform-center-x="1042.4061" + d="m -1068.4,895.12 a 1.888,3.5004 9.0712 0 0 -0.5103,6.8713 l 63.927,10.069 a 1.888,3.5004 9.0712 1 0 1.0946,-6.9134 l -63.927,-10.069 a 1.888,3.5004 9.0712 0 0 -0.5847,0.042 z" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path5795" /> + <path + inkscape:connector-curvature="0" + inkscape:transform-center-y="-249.64231" + inkscape:transform-center-x="1025.4638" + d="m -1050.7,808.09 a 1.888,3.5004 13.749 0 0 -1.0689,6.8068 l 62.893,15.249 a 1.888,3.5004 13.749 1 0 1.6548,-6.8011 l -62.893,-15.249 a 1.888,3.5004 13.749 0 0 -0.5862,-0.01 z" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path5797" /> + <path + inkscape:connector-curvature="0" + inkscape:transform-center-y="-325.18917" + inkscape:transform-center-x="1004.0664" + d="m -1028.4,730.25 a 1.888,3.5004 18.012 0 0 -1.5721,6.7085 l 61.585,19.882 a 1.888,3.5004 18.012 1 0 2.1559,-6.6593 l -61.585,-19.882 a 1.888,3.5004 18.012 0 0 -0.5842,-0.049 z" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path5799" /> + <path + inkscape:connector-curvature="0" + inkscape:transform-center-y="-388.82606" + inkscape:transform-center-x="981.17869" + d="m -1004.6,664.7 a 1.888,3.5004 21.684 0 0 -1.9984,6.5941 l 60.185,23.786 a 1.888,3.5004 21.684 1 0 2.5779,-6.5076 l -60.185,-23.786 a 1.888,3.5004 21.684 0 0 -0.5798,-0.087 z" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path5801" /> + <path + inkscape:connector-curvature="0" + inkscape:transform-center-y="-531.33261" + inkscape:transform-center-x="911.91157" + d="m -932.71,517.97 a 1.888,3.5004 30.294 0 0 -2.9631,6.2206 l 55.946,32.528 a 1.888,3.5004 30.294 1 0 3.5231,-6.0483 l -55.946,-32.528 a 1.888,3.5004 30.294 0 0 -0.5603,-0.1725 z" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path5803" /> + <path + inkscape:connector-curvature="0" + inkscape:transform-center-y="-616.96881" + inkscape:transform-center-x="856.29817" + d="m -875.09,429.84 a 1.888,3.5004 35.84 0 0 -3.5504,5.9051 l 52.541,37.782 a 1.888,3.5004 35.84 1 0 4.0911,-5.6795 l -52.541,-37.782 a 1.888,3.5004 35.84 0 0 -0.5409,-0.2259 z" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path5805" /> + <path + inkscape:connector-curvature="0" + inkscape:transform-center-y="-694.89709" + inkscape:transform-center-x="794.36465" + d="m -810.98,349.68 a 1.888,3.5004 41.246 0 0 -4.0909,5.5444 l 48.748,42.564 a 1.888,3.5004 41.246 1 0 4.608,-5.2689 l -48.748,-42.564 a 1.888,3.5004 41.246 0 0 -0.5173,-0.2758 z" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path5807" /> + <path + inkscape:connector-curvature="0" + inkscape:transform-center-y="-746.16601" + inkscape:transform-center-x="746.41375" + d="m -761.37,296.96 a 1.888,3.5004 45.057 0 0 -4.4504,5.2601 l 45.811,45.71 a 1.888,3.5004 45.057 1 0 4.948,-4.9509 l -45.811,-45.71 a 1.888,3.5004 45.057 0 0 -0.4978,-0.3096 z" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path5809" /> + <path + inkscape:connector-curvature="0" + inkscape:transform-center-y="-846.16619" + inkscape:transform-center-x="630.79324" + d="m -641.83,194.21 a 1.888,3.5004 53.363 0 0 -5.1636,4.5621 l 38.727,51.849 a 1.888,3.5004 53.363 1 0 5.6113,-4.1842 l -38.727,-51.849 a 1.888,3.5004 53.363 0 0 -0.4478,-0.3782 z" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path5811" /> + <path + inkscape:connector-curvature="0" + inkscape:transform-center-y="-902.21965" + inkscape:transform-center-x="547.62857" + d="m -555.89,136.67 a 1.888,3.5004 58.81 0 0 -5.5733,4.0513 l 33.631,55.29 a 1.888,3.5004 58.81 1 0 5.9832,-3.6326 l -33.631,-55.29 a 1.888,3.5004 58.81 0 0 -0.4099,-0.4191 z" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path5813" /> + <path + inkscape:connector-curvature="0" + inkscape:transform-center-y="-946.46289" + inkscape:transform-center-x="467.01752" + d="m -472.63,91.3 a 1.888,3.5004 63.803 0 0 -5.9048,3.5509 l 28.69,58.008 a 1.888,3.5004 63.803 1 0 6.2766,-3.098 l -28.69,-58.007 a 1.888,3.5004 63.803 0 0 -0.3719,-0.4531 z" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path5815" /> + <path + inkscape:connector-curvature="0" + inkscape:transform-center-y="-976.67475" + inkscape:transform-center-x="400.00472" + d="m -403.43,60.358 a 1.888,3.5004 67.795 0 0 -6.1376,3.1313 l 24.583,59.864 a 1.888,3.5004 67.795 1 0 6.4771,-2.6536 l -24.583,-59.864 a 1.888,3.5004 67.795 0 0 -0.3394,-0.4779 z" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path5817" /> + <path + inkscape:connector-curvature="0" + inkscape:transform-center-y="-1027.0199" + inkscape:transform-center-x="243.16165" + d="m -241.53,8.9388 a 1.888,3.5004 76.746 0 0 -6.5501,2.138 l 14.969,62.96 a 1.888,3.5004 76.746 1 0 6.811,-1.6135 l -14.97,-62.961 a 1.888,3.5004 76.746 0 0 -0.2609,-0.5249 z" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path5819" /> + <path + inkscape:connector-curvature="0" + inkscape:transform-center-y="-1040.3554" + inkscape:transform-center-x="177.64633" + d="m -173.93,-4.6054 a 1.888,3.5004 80.377 0 0 -6.6723,1.719 l 10.952,63.782 a 1.888,3.5004 80.377 1 0 6.8996,-1.179 l -10.952,-63.782 a 1.888,3.5004 80.377 0 0 -0.2272,-0.5404 z" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path5821" /> + <path + inkscape:connector-curvature="0" + inkscape:transform-center-y="-1049.0131" + inkscape:transform-center-x="116.05553" + d="m -110.39,-13.338 a 1.888,3.5004 83.754 0 0 -6.762,1.323 l 7.1761,64.316 a 1.888,3.5004 83.754 1 0 6.9571,-0.7705 l -7.1762,-64.316 a 1.888,3.5004 83.754 0 0 -0.1949,-0.5529 z" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path5823" /> + <path + inkscape:connector-curvature="0" + inkscape:transform-center-y="-1053.7903" + inkscape:transform-center-x="58.509766" + d="m -51.038,-18.083 a 1.888,3.5004 86.889 0 0 -6.8243,0.9512 l 3.6479,64.612 a 1.888,3.5004 86.889 1 0 6.9888,-0.3889 l -3.6479,-64.612 a 1.888,3.5004 86.889 0 0 -0.1645,-0.5627 z" + style="color:#000000;text-indent:0;text-transform:none;fill:#000000" + id="path5825" /> + <path + d="m -1090.6,-131.14 c -65.98,0 -119.09,53.114 -119.09,119.09 v 1374.5 c 0,65.979 53.114,119.09 119.09,119.09 h 665.31 c 29.008,0 39.174,-3.9241 56.5,-21.25 l 746.08,-745.9 c 23.302,-23.302 25.781,-31.589 25.781,-62.469 v -663.88 c 0,-65.979 -53.114,-119.09 -119.09,-119.09 z" + inkscape:connector-curvature="0" + style="fill:url(#linearGradient10503)" + sodipodi:nodetypes="sssssssssss" + id="path6078" /> + </g> + <text + id="text24840" + y="1795.9766" + x="-534.04657" + style="font-style:normal;font-weight:normal;font-size:81.67732239px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.18778539" + xml:space="preserve"><tspan + style="font-size:81.67732239px;stroke-width:2.18778539" + y="1795.9766" + x="-534.04657" + id="tspan24838" + sodipodi:role="line">https://openclipart.org/detail/205486/voltmeter-and-ammeter</tspan></text> + </g> + <path + inkscape:connector-curvature="0" + id="path26897" + d="M 1529.3463,1129.8524 H 2700.4096" + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <text + id="text26946" + y="913.46747" + x="1723.4104" + style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.25" + xml:space="preserve"><tspan + style="stroke-width:0.25" + y="913.46747" + x="1723.4104" + id="tspan26944" + sodipodi:role="line">[max]</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.25" + x="1523.4104" + y="1073.4675" + id="text26950"><tspan + sodipodi:role="line" + id="tspan26948" + x="1523.4104" + y="1073.4675" + style="stroke-width:0.25">[min]</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.25" + x="1583.4104" + y="1173.4675" + id="text26954"><tspan + sodipodi:role="line" + id="tspan26952" + x="1583.4104" + y="1173.4675" + style="stroke-width:0.25">[max]</tspan></text> + <text + id="text26958" + y="1485.4675" + x="1577.4104" + style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.25" + xml:space="preserve"><tspan + style="stroke-width:0.25" + y="1485.4675" + x="1577.4104" + id="tspan26956" + sodipodi:role="line">[min]</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.25" + x="1514.1893" + y="852.01276" + id="text27118"><tspan + sodipodi:role="line" + id="tspan27116" + x="1514.1893" + y="852.01276" + style="stroke-width:0.25">Second point of "needle" labeled SVG path moves along "range" labeled SVG path according to value. </tspan><tspan + id="tspan27124" + sodipodi:role="line" + x="1514.1893" + y="864.51276" + style="stroke-width:0.25">Value min and max range is either given as arguments or as "min" and "max" labeled SVG texts, or default to 0...100 if unspecified.</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.25" + x="1703.4104" + y="1047.4675" + id="text32265"><tspan + sodipodi:role="line" + id="tspan32263" + x="1703.4104" + y="1047.4675" + style="fill:#ff6600;fill-opacity:1;stroke-width:0.25">needle</tspan></text> + <text + id="text32303" + y="1067.4675" + x="1577.4104" + style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#3ee800;fill-opacity:1;stroke:none;stroke-width:0.25" + xml:space="preserve"><tspan + style="fill:#3ee800;fill-opacity:1;stroke-width:0.25" + y="1067.4675" + x="1577.4104" + id="tspan32301" + sodipodi:role="line">range</tspan></text> + <text + id="text32307" + y="1307.4675" + x="1575.4104" + style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.25" + xml:space="preserve"><tspan + style="fill:#ff6600;fill-opacity:1;stroke-width:0.25" + y="1307.4675" + x="1575.4104" + id="tspan32305" + sodipodi:role="line">needle</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#3ee800;fill-opacity:1;stroke:none;stroke-width:0.25" + x="1575.4104" + y="1207.4675" + id="text32311"><tspan + sodipodi:role="line" + id="tspan32309" + x="1575.4104" + y="1207.4675" + style="fill:#3ee800;fill-opacity:1;stroke-width:0.25">range</tspan></text> + </g> + <g + id="g3125" + inkscape:label="CircularBar Page" + transform="translate(2679.4073,787.70547)"> + <use + x="0" + y="0" + xlink:href="#g9813" + id="use9837" + width="100%" + height="100%" + transform="translate(0.5927,-787.70544)" + inkscape:label="HMI:Page:CircularBar" /> + <g + id="g3058"> + <g + id="g31471"> + <circle + id="path4349" + style="fill:url(#linearGradient10071);stroke:url(#linearGradient4378);stroke-width:2.13336658" + transform="scale(1,-1)" + cx="1974.9573" + cy="-1907.7942" + r="125.20776" /> + <path + transform="matrix(2.1333334,0,0,2.1333334,917.47072,723.36897)" + id="path4276" + style="fill:url(#radialGradient4372);stroke:url(#linearGradient4374);stroke-width:0.93251997" + sodipodi:type="inkscape:offset" + d="m 495.71875,499.5625 c -30.71038,0 -55.625,24.94721 -55.625,55.65625 0,30.70904 24.91462,55.65625 55.625,55.65625 30.71038,0 55.65625,-24.94587 55.65625,-55.65625 0,-30.71038 -24.94587,-55.65625 -55.65625,-55.65625 z m 0.5957,6.625 c 26.16416,-0.0377 49.91573,24.21255 48.50196,50.61719 a 1.906235,1.906235 0 0 0 -0.002,0.0312 c -0.96267,26.09835 -23.97335,48.63457 -50.44531,47.41601 a 1.906235,1.906235 0 0 0 -0.0703,-0.002 c -27.12401,-0.25004 -50.9578,-26.70889 -47.31641,-53.83984 a 1.906235,1.906235 0 0 0 0.008,-0.0703 c 2.26482,-23.38029 22.99305,-43.56741 46.70508,-44.05859 a 1.906235,1.906235 0 0 0 0.0781,-0.004 c 0.86395,-0.0528 1.71288,-0.0887 2.54101,-0.0898 z" + inkscape:original="M 495.71875 501.46875 C 466.0389 501.46875 442 525.5389 442 555.21875 C 442 584.8986 466.0389 608.96875 495.71875 608.96875 C 525.3986 608.96875 549.46875 584.8986 549.46875 555.21875 C 549.46875 525.5389 525.3986 501.46875 495.71875 501.46875 z M 496.3125 504.28125 C 523.64396 504.24185 548.1961 529.3142 546.71875 556.90625 C 545.71652 584.07711 521.8754 607.42646 494.28125 606.15625 C 465.94032 605.89499 441.28655 578.52263 445.09375 550.15625 C 447.45524 525.77795 468.89562 504.8879 493.65625 504.375 C 494.5429 504.3208 495.43084 504.28245 496.3125 504.28125 z " + inkscape:radius="1.9060444" /> + </g> + <g + style="fill:none;stroke-width:1.47405899" + transform="matrix(0.53304115,0,0,0.53229017,1417.5153,1776.3135)" + inkscape:label="HMI:CircularBar@/CIRCULARBAR" + id="g30664"> + <text + inkscape:label="value" + id="text30652" + y="272.72952" + x="1045.2592" + style="font-style:normal;font-weight:normal;font-size:70.65699005px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;opacity:1;fill-opacity:1;stroke:none;stroke-width:2.60381603px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="text-align:center;text-anchor:middle;fill-opacity:1;stroke:none;stroke-width:2.60381603px;stroke-opacity:1" + y="272.72952" + x="1045.2592" + id="tspan30650" + sodipodi:role="line">65%</tspan></text> + <path + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:url(#linearGradient31386);stroke-width:11.26410389;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:120.22967529;stroke-opacity:1;marker:none" + id="path30654" + inkscape:label="path" + sodipodi:type="arc" + sodipodi:cx="1045.7766" + sodipodi:cy="247.00946" + sodipodi:rx="209.17709" + sodipodi:ry="209.47221" + sodipodi:start="2.268928" + sodipodi:end="0.87266463" + d="M 911.32017,407.47449 A 209.17709,209.47221 0 0 1 849.21444,175.36575 209.17709,209.47221 0 0 1 1045.7766,37.537247 209.17709,209.47221 0 0 1 1242.3388,175.36574 209.17709,209.47221 0 0 1 1180.2331,407.47449" + sodipodi:open="true" /> + </g> + <g + id="g31467" + inkscape:label="g31467" + style="display:inline"> + <circle + id="path4282" + style="fill:url(#linearGradient4376);stroke-width:2.13333344" + cx="1974.1705" + cy="1908.6909" + r="76.17897" /> + <use + transform="matrix(0.53304115,0,0,0.53229017,1419.5153,1778.3135)" + style="opacity:1;vector-effect:none;fill:#cccccc;fill-opacity:1;stroke:none;stroke-width:4.00493336;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + x="0" + y="0" + xlink:href="#text30652" + id="use31590" + width="100%" + height="100%" /> + <use + transform="matrix(0.53304115,0,0,0.53229017,1417.5153,1776.3135)" + style="opacity:1;vector-effect:none;fill:#333333;fill-opacity:1;stroke:none;stroke-width:4.0050149;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + x="0" + y="0" + xlink:href="#text30652" + id="use31592" + width="100%" + height="100%" /> + </g> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none" + x="1512.8077" + y="1602.7185" + id="text17535"><tspan + sodipodi:role="line" + id="tspan17533" + x="1512.8077" + y="1602.7185">HMI:CircularBar:[min:max]@path</tspan></text> + <text + id="text24840-3" + y="2062.4612" + x="2067.7786" + style="font-style:normal;font-weight:normal;font-size:9.33333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.24999999" + xml:space="preserve"><tspan + style="font-size:9.33333302px;stroke-width:0.24999999" + y="2062.4612" + x="2067.7786" + id="tspan24838-1" + sodipodi:role="line">https://openclipart.org/detail/203239/gauges-vectorbased-superb-quality</tspan></text> + <g + style="stroke-width:1.47405899" + transform="matrix(0.53304115,0,0,0.53229017,1094.7583,1794.01)" + inkscape:label="HMI:CircularBar@/CIRCULARBAR" + id="g1047"> + <text + inkscape:label="value" + transform="scale(0.91814752,1.0891496)" + id="text1051" + y="218.54041" + x="1139.0072" + style="font-style:normal;font-weight:normal;font-size:90.1384964px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000001;fill-opacity:1;stroke:none;stroke-width:3.32173681px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="text-align:center;text-anchor:middle;fill:#000001;fill-opacity:1;stroke:none;stroke-width:3.32173681px;stroke-opacity:1" + y="218.54041" + x="1139.0072" + id="tspan1049" + sodipodi:role="line">[value]</tspan></text> + <path + sodipodi:open="true" + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ff6600;stroke-width:3.75470138;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:120.22967529;stroke-opacity:1;marker:none;marker-start:url(#marker30012);marker-end:url(#marker30310)" + id="path1044-3" + sodipodi:type="arc" + sodipodi:cx="1045.7766" + sodipodi:cy="247.00946" + sodipodi:rx="180" + sodipodi:ry="180" + sodipodi:start="2.6179939" + sodipodi:end="0.52359878" + d="m 889.89204,337.00946 a 180,180 0 0 1 40.1828,-227.888 180,180 0 0 1 231.40356,0 180,180 0 0 1 40.1828,227.888" + inkscape:label="path" /> + <text + transform="scale(0.99929531,1.0007052)" + inkscape:label="min" + id="text7984-5" + y="339.48706" + x="925.46155" + style="font-style:normal;font-weight:normal;font-size:42.93917084px;line-height:125%;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:1.07347918px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="text-align:end;text-anchor:end;fill:#ff6600;stroke-width:1.07347918px" + y="339.48706" + x="925.46155" + id="tspan7982-0" + sodipodi:role="line">0</tspan></text> + <text + transform="scale(0.9992953,1.0007052)" + inkscape:label="max" + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:42.93917084px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:1.07347918px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="1155.7532" + y="345.3743" + id="text7988-3"><tspan + sodipodi:role="line" + id="tspan7986-6" + x="1155.7532" + y="345.3743" + style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:1.07347918px">100</tspan></text> + </g> + <text + id="text26946-1" + y="1986.7517" + x="1708.0165" + style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.25" + xml:space="preserve"><tspan + style="stroke-width:0.25" + y="1986.7517" + x="1708.0165" + id="tspan26944-0" + sodipodi:role="line">[max]</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.25" + x="1568.494" + y="1986.853" + id="text26950-6"><tspan + sodipodi:role="line" + id="tspan26948-3" + x="1568.494" + y="1986.853" + style="stroke-width:0.25">[min]</tspan></text> + <text + id="text27130" + y="1624.3407" + x="1514.1893" + style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.25" + xml:space="preserve"><tspan + style="stroke-width:0.25" + y="1624.3407" + x="1514.1893" + id="tspan27126" + sodipodi:role="line">Inkscape's Arc labeled "path" End angle varies according to value. Arc cannot be closed yet, use wide stroke to fill.</tspan><tspan + style="stroke-width:0.25" + y="1636.8407" + x="1514.1893" + sodipodi:role="line" + id="tspan27128">Value min and max range is either given as arguments or as "min" and "max" labeled SVG texts, or default to 0...100 if unspecified.</tspan></text> + <g + id="g3045"> + <g + id="g4392" + transform="matrix(2.1333334,0,0,2.1333334,1479.7343,1201.5674)"> + <circle + id="path3982" + style="fill:url(#radialGradient4401);stroke:url(#linearGradient4403)" + transform="matrix(-0.93252,0,0,-0.93252,810.37,640.06)" + cx="487.55014" + cy="331.46683" + r="57.629204" /> + <circle + id="path4008" + style="opacity:0.86721999;fill:#000000;filter:url(#filter4030)" + transform="matrix(-0.66258,0,0,0.66258,678.79,115.47)" + cx="487.55014" + cy="331.46683" + r="57.629204" /> + <circle + id="path4002" + style="fill:url(#radialGradient4405);stroke:url(#linearGradient4407);stroke-width:1.50929999" + transform="matrix(-0.66258,0,0,0.66258,678.69,111.47)" + cx="487.55014" + cy="331.46683" + r="57.629204" /> + </g> + <g + id="g31570" + inkscape:label="HMI:CircularBar@/CIRCULARBAR" + transform="matrix(0.53304115,0,0,0.53229017,1681.1611,1776.3135)" + style="stroke-width:1.47405899"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:70.55891418px;line-height:1.27999997;font-family:Gautami;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:middle;white-space:normal;shape-padding:0;opacity:1;vector-effect:none;fill:#cccccc;fill-opacity:1;stroke:none;stroke-width:4.00493336;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + x="1045.2592" + y="272.72952" + id="text31566" + inkscape:label="value"><tspan + sodipodi:role="line" + id="tspan31564" + x="1045.2592" + y="272.72952" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:70.55891418px;line-height:1.27999997;font-family:Gautami;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:middle;white-space:normal;shape-padding:0;vector-effect:none;fill:#cccccc;fill-opacity:1;stroke:none;stroke-width:4.00493336;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1">65%</tspan></text> + <path + sodipodi:open="true" + d="M 925.18787,390.92429 A 187.60278,187.86746 0 0 1 869.48766,182.75501 187.60278,187.86746 0 0 1 1045.7766,59.141998 187.60278,187.86746 0 0 1 1222.0656,182.755 187.60278,187.86746 0 0 1 1166.3654,390.92429" + sodipodi:end="0.87266463" + sodipodi:start="2.268928" + sodipodi:ry="187.86746" + sodipodi:rx="187.60278" + sodipodi:cy="247.00946" + sodipodi:cx="1045.7766" + sodipodi:type="arc" + inkscape:label="path" + id="path31568" + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:url(#linearGradient10485);stroke-width:18.77350616;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:120.22967529;stroke-opacity:1;marker:none" /> + </g> + <use + transform="matrix(0.53304115,0,0,0.53229017,1681.1611,1776.3135)" + x="0" + y="0" + xlink:href="#path31568" + id="use31670" + width="100%" + height="100%" + style="opacity:0.51399997;stroke-width:1.47405899;filter:url(#filter31680)" /> + </g> + <g + id="g3034"> + <g + id="g3010"> + <circle + id="path3836" + style="fill:none;stroke:url(#linearGradient10487);stroke-width:4.26666689" + transform="scale(-1)" + cx="-2500.2302" + cy="-1911.7058" + r="122.94231" /> + <circle + id="path3826" + style="opacity:0.31950001;fill:none;stroke:url(#linearGradient10489);stroke-width:4.26666689" + cx="2500.231" + cy="1909.5803" + r="122.94231" /> + <circle + id="path3848" + style="fill:url(#radialGradient10491);stroke-width:1.98937607" + transform="scale(-1)" + cx="-2500.4646" + cy="-1911.9562" + r="114.64616" /> + <ellipse + ry="110.12065" + rx="108.61215" + id="path3850" + style="opacity:0.46813001;fill:none;stroke:url(#linearGradient10493);stroke-width:3.19992709" + transform="scale(-1)" + cx="-2499.5879" + cy="-1909.5483" /> + </g> + <g + style="fill:none;stroke-width:1.47405899" + transform="matrix(0.53304115,0,0,0.53229017,1942.7889,1776.3135)" + inkscape:label="HMI:CircularBar@/CIRCULARBAR" + id="g2608"> + <text + inkscape:label="value" + id="text2604" + y="272.72952" + x="1045.2592" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:70.55891418px;line-height:1.27999997;font-family:Gautami;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:middle;white-space:normal;shape-padding:0;opacity:1;vector-effect:none;fill-opacity:1" + xml:space="preserve"><tspan + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:70.55891418px;line-height:1.27999997;font-family:Gautami;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:middle;white-space:normal;shape-padding:0;vector-effect:none;fill-opacity:1" + y="272.72952" + x="1045.2592" + id="tspan2602" + sodipodi:role="line">65%</tspan></text> + <path + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:url(#radialGradient10495);stroke-width:84.48078156;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:120.22967529;stroke-opacity:1;marker:none" + id="path2606" + inkscape:label="path" + sodipodi:type="arc" + sodipodi:cx="1045.1316" + sodipodi:cy="253.72691" + sodipodi:rx="150.08221" + sodipodi:ry="150.29396" + sodipodi:start="2.6179939" + sodipodi:end="0.52359878" + d="m 915.15658,328.87389 a 150.08221,150.29396 0 0 1 33.50403,-190.27883 150.08221,150.29396 0 0 1 192.94199,0 150.08221,150.29396 0 0 1 33.504,190.27883" + sodipodi:open="true" /> + </g> + <g + id="g3004"> + <ellipse + id="path3917" + style="opacity:0.58091;fill:url(#radialGradient10497);stroke-width:1.65561378" + transform="scale(-1)" + cx="-2500.0576" + cy="-1910.7838" + rx="95.035629" + ry="95.789268" /> + <circle + id="path3870" + style="fill:#000000;stroke-width:2.13333344" + cx="2499.887" + cy="1911.3699" + r="57.322792" /> + <ellipse + ry="51.288994" + rx="48.272099" + id="path3872" + style="fill:url(#radialGradient10499);stroke-width:1.85178936" + cx="2497.2419" + cy="1911.7377" /> + <path + id="path3903" + d="m 2496.7959,1849.8538 c -40.7424,0.2449 -70.9077,47.8848 -54.0672,85.0005 13.4447,35.2341 62.5494,50.2187 93.1328,26.8672 30.8438,-21.1872 34.7542,-71.9723 5.2668,-96.0661 -11.9226,-10.8086 -28.2112,-16.7872 -44.3328,-15.7999 z" + style="opacity:0.63071002;fill:none;stroke:url(#linearGradient10501);stroke-width:3.20000005" + inkscape:connector-curvature="0" /> + <use + height="100%" + width="100%" + id="use2935" + xlink:href="#text2604" + y="0" + x="0" + style="opacity:0.81327999;vector-effect:none;fill:#666666;fill-opacity:1;stroke-width:1.87731254;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + transform="matrix(0.53304115,0,0,0.53229017,1944.7889,1778.3135)" /> + <use + height="100%" + width="100%" + id="use2937" + xlink:href="#text2604" + y="0" + x="0" + style="opacity:1;vector-effect:none;fill:#cccccc;fill-opacity:1;stroke-width:1.87731254;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + transform="matrix(0.53304115,0,0,0.53229017,1942.7889,1776.3135)" /> + </g> + </g> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5" + x="1905.4562" + y="2520.5203" + id="text3613"><tspan + sodipodi:role="line" + id="tspan3611" + x="1905.4562" + y="2538.2156" + style="stroke-width:0.5" /></text> + <g + id="g6809" + transform="translate(2680,780)" + inkscape:label="Switch Page"> + <use + x="0" + y="0" + xlink:href="#g9818" + id="use9854" + width="100%" + height="100%" + transform="translate(0,-779.99997)" + inkscape:label="HMI:Page:Switch" + style="display:inline" + sodipodi:insensitive="true" /> + <text + id="text30640" + y="2390.3906" + x="1512.8077" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none" + xml:space="preserve"><tspan + y="2390.3906" + x="1512.8077" + id="tspan30638" + sodipodi:role="line">HMI:Switch@path</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#fffffb;fill-opacity:1;stroke:none;stroke-width:0.25" + x="1514.1893" + y="2412.0127" + id="text30646"><tspan + id="tspan30644" + sodipodi:role="line" + x="1514.1893" + y="2412.0127" + style="fill:#fffffb;fill-opacity:1;stroke-width:0.25">Display only childs of widget's element (a SVG group) who's label match value.</tspan></text> + <path + inkscape:connector-curvature="0" + d="m 1705.0033,2700.5501 v -200 m 0,200 h 63.222 m -63.222,-40 h 63.222 m -63.222,-40 h 63.222 m -63.222,-40 h 63.222 m -63.222,-40 h 63.222 m -123.222,-40 h 123.222" + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path3520" /> + <text + id="text3539" + y="2500.5203" + x="1525.4562" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5" + xml:space="preserve"><tspan + style="stroke-width:0.5" + y="2500.5203" + x="1525.4562" + id="tspan3537" + sodipodi:role="line">HMI:Switch</tspan><tspan + id="tspan3573" + style="stroke-width:0.5" + y="2525.5203" + x="1525.4562" + sodipodi:role="line">HMI_INT</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5" + x="1785.4562" + y="2500.5203" + id="text3543"><tspan + sodipodi:role="line" + id="tspan3541" + x="1785.4562" + y="2500.5203" + style="stroke-width:0.5">1</tspan></text> + <text + id="text3547" + y="2540.5203" + x="1785.4562" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5" + xml:space="preserve"><tspan + style="stroke-width:0.5" + y="2540.5203" + x="1785.4562" + id="tspan3545" + sodipodi:role="line">2</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5" + x="1785.4562" + y="2580.5203" + id="text3551"><tspan + id="tspan3553" + sodipodi:role="line" + x="1785.4562" + y="2580.5203" + style="stroke-width:0.5">3</tspan></text> + <text + id="text3559" + y="2620.5203" + x="1785.4562" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5" + xml:space="preserve"><tspan + style="stroke-width:0.5" + y="2620.5203" + x="1785.4562" + sodipodi:role="line" + id="tspan3557">42</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5" + x="1785.4562" + y="2660.5203" + id="text3563"><tspan + id="tspan3565" + sodipodi:role="line" + x="1785.4562" + y="2660.5203" + style="stroke-width:0.5">4</tspan></text> + <text + id="text3571" + y="2700.5203" + x="1785.4562" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5" + xml:space="preserve"><tspan + style="stroke-width:0.5" + y="2700.5203" + x="1785.4562" + sodipodi:role="line" + id="tspan3569">5</tspan></text> + <path + id="path3575" + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 1705.0033,3000.5501 v -200 m 0,200 h 63.222 m -63.222,-40 h 63.222 m -63.222,-40 h 63.222 m -63.222,-40 h 63.222 m -63.222,-40 h 63.222 m -123.222,-40 h 123.222" + inkscape:connector-curvature="0" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5" + x="1525.4562" + y="2800.5203" + id="text3581"><tspan + sodipodi:role="line" + id="tspan3577" + x="1525.4562" + y="2800.5203" + style="stroke-width:0.5">HMI:Switch</tspan><tspan + sodipodi:role="line" + x="1525.4562" + y="2825.5203" + style="stroke-width:0.5" + id="tspan3579">HMI_STRING</tspan></text> + <text + id="text3585" + y="2800.5203" + x="1785.4562" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5" + xml:space="preserve"><tspan + style="stroke-width:0.5" + y="2800.5203" + x="1785.4562" + id="tspan3583" + sodipodi:role="line">"aa"</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5" + x="1785.4562" + y="2840.5203" + id="text3589"><tspan + sodipodi:role="line" + id="tspan3587" + x="1785.4562" + y="2840.5203" + style="stroke-width:0.5">"abba"</tspan></text> + <text + id="text3593" + y="2880.5203" + x="1785.4562" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5" + xml:space="preserve"><tspan + style="stroke-width:0.5" + y="2880.5203" + x="1785.4562" + sodipodi:role="line" + id="tspan3591">"mhoo"</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5" + x="1785.4562" + y="2920.5203" + id="text3597"><tspan + id="tspan3595" + sodipodi:role="line" + x="1785.4562" + y="2920.5203" + style="stroke-width:0.5">"ggg"</tspan></text> + <text + id="text3601" + y="2960.5203" + x="1785.4562" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5" + xml:space="preserve"><tspan + style="stroke-width:0.5" + y="2960.5203" + x="1785.4562" + sodipodi:role="line" + id="tspan3599">"wtf"</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5" + x="1785.4562" + y="3000.5203" + id="text3605"><tspan + id="tspan3603" + sodipodi:role="line" + x="1785.4562" + y="3000.5203" + style="stroke-width:0.5">"xxx"</tspan></text> + <path + sodipodi:nodetypes="cccccccccccc" + id="path3607" + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 1825.0033,2700.5501 h 63.222 m -63.222,-40 h 63.222 m -63.222,-40 h 63.222 m -63.222,-40 h 63.222 m -63.222,-40 h 63.222 m -63.222,-40 h 63.222" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + d="m 1865.0033,3000.5501 h 63.222 m -63.222,-40 h 63.222 m -63.222,-40 h 63.222 m -63.222,-40 h 63.222 m -63.222,-40 h 63.222 m -63.222,-40 h 63.222" + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path3609" + sodipodi:nodetypes="cccccccccccc" /> + <g + transform="translate(0,-20)" + inkscape:label="HMI:Switch@/SWITCHINT" + id="g3755"> + <path + inkscape:label="3" + sodipodi:type="star" + style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.43566883px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" + id="path3635" + sodipodi:sides="3" + sodipodi:cx="1909.8937" + sodipodi:cy="2602.8892" + sodipodi:r1="12.249084" + sodipodi:r2="6.1245413" + sodipodi:arg1="0.1798535" + sodipodi:arg2="1.2270511" + inkscape:flatsided="false" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 1921.9452,2605.0803 -9.9875,3.5751 -9.9874,3.5751 1.8976,-10.4369 1.8976,-10.4369 8.0899,6.8618 z" /> + <path + inkscape:label="42" + d="m 1921.9452,2639.0803 -6.1245,-0.6483 5.6633,2.4201 -5.9594,-1.554 5.2393,3.2371 -5.6613,-2.4247 4.6984,3.9818 -5.2367,-3.2415 4.0525,4.6377 -4.6951,-3.9858 3.316,5.1898 -4.0486,-4.641 2.5054,5.6261 -3.3116,-5.1926 1.6389,5.9367 -2.5007,-5.6282 0.7358,6.1146 -1.634,-5.938 -0.1838,6.156 -0.7307,-6.1152 -1.0992,6.0598 0.1889,-6.1558 -1.9901,5.8283 1.1042,-6.0589 -2.8365,5.4666 1.9949,-5.8266 -3.6195,4.9828 2.841,-5.4643 -4.3218,4.3877 3.6237,-4.9798 -4.9274,3.6945 4.3254,-4.384 -5.4231,2.9188 4.9306,-3.6904 -5.7976,2.078 5.4255,-2.9144 -6.0425,1.1907 5.7993,-2.0731 -6.1525,0.2768 6.0435,-1.1857 -6.125,-0.6433 6.1527,-0.2717 -5.9607,-1.5489 6.1244,0.6483 -5.6632,-2.42 5.9594,1.5539 -5.2394,-3.2371 5.6613,2.4247 -4.6983,-3.9818 5.2366,3.2415 -4.0524,-4.6376 4.695,3.9857 -3.3159,-5.1898 4.0485,4.641 -2.5054,-5.6261 3.3117,5.1926 -1.639,-5.9366 2.5008,5.6281 -0.7358,-6.1146 1.634,5.938 0.1837,-6.156 0.7307,6.1152 1.0992,-6.0598 -0.1888,6.1558 1.99,-5.8283 -1.1042,6.0589 2.8365,-5.4666 -1.9949,5.8266 3.6196,-4.9827 -2.8411,5.4642 4.3218,-4.3877 -3.6237,4.9798 4.9275,-3.6945 -4.3254,4.3841 5.423,-2.9189 -4.9305,3.6904 5.7975,-2.078 -5.4255,2.9144 6.0425,-1.1907 -5.7992,2.0732 6.1524,-0.2768 -6.0435,1.1856 6.1251,0.6433 -6.1527,0.2717 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="false" + sodipodi:arg2="0.25465333" + sodipodi:arg1="0.1798535" + sodipodi:r2="6.1245413" + sodipodi:r1="12.249084" + sodipodi:cy="2636.8892" + sodipodi:cx="1909.8937" + sodipodi:sides="42" + id="path3637" + style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.43566883px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" + sodipodi:type="star" /> + <path + inkscape:label="4" + sodipodi:type="star" + style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.43566883px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" + id="path3639" + sodipodi:sides="4" + sodipodi:cx="1909.8937" + sodipodi:cy="2676.8892" + sodipodi:r1="12.249084" + sodipodi:r2="6.1245413" + sodipodi:arg1="0.1798535" + sodipodi:arg2="0.96525166" + inkscape:flatsided="false" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 1921.9452,2679.0803 -8.5654,2.8444 -5.6773,7.016 -2.8444,-8.5654 -7.0159,-5.6773 8.5653,-2.8444 5.6774,-7.0159 2.8443,8.5653 z" /> + <path + inkscape:label="5" + d="m 1921.9452,2719.0803 -7.8206,2.2371 -2.5907,7.7105 -4.5443,-6.7465 -8.1337,-0.081 5.012,-6.4066 -2.4362,-7.7608 7.6419,2.787 6.6281,-4.7152 -0.2891,8.1291 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="false" + sodipodi:arg2="0.80817203" + sodipodi:arg1="0.1798535" + sodipodi:r2="6.1245413" + sodipodi:r1="12.249084" + sodipodi:cy="2716.8892" + sodipodi:cx="1909.8937" + sodipodi:sides="5" + id="path3641" + style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.43566883px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" + sodipodi:type="star" /> + <path + inkscape:label="2" + style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.43566883px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" + d="m 1920.4968,2552.3613 -8.5391,6.2941 -8.539,6.2941 z" + id="path3643" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccc" /> + <circle + inkscape:label="1" + style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.21478893px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" + id="path3651" + cx="1906.7977" + cy="2520.55" + r="1.2603201" /> + </g> + <g + transform="translate(-58.533071,-260.20956)" + id="g3747"> + <path + d="m 2601.9453,2845.0803 -9.9874,3.5751 -9.9875,3.5751 1.8976,-10.4369 1.8977,-10.4369 8.0898,6.8618 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="false" + sodipodi:arg2="1.2270511" + sodipodi:arg1="0.1798535" + sodipodi:r2="6.1245413" + sodipodi:r1="12.249084" + sodipodi:cy="2842.8892" + sodipodi:cx="2589.8938" + sodipodi:sides="3" + id="path3717" + style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.43566883px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" + sodipodi:type="star" + inkscape:label="3" /> + <path + sodipodi:type="star" + style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.43566883px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" + id="path3719" + sodipodi:sides="42" + sodipodi:cx="2589.8938" + sodipodi:cy="2876.8892" + sodipodi:r1="12.249084" + sodipodi:r2="6.1245413" + sodipodi:arg1="0.1798535" + sodipodi:arg2="0.25465333" + inkscape:flatsided="false" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 2601.9453,2879.0803 -6.1245,-0.6483 5.6633,2.4201 -5.9594,-1.554 5.2393,3.2371 -5.6613,-2.4247 4.6984,3.9818 -5.2366,-3.2415 4.0524,4.6377 -4.6951,-3.9858 3.316,5.1898 -4.0486,-4.641 2.5055,5.6261 -3.3117,-5.1926 1.6389,5.9367 -2.5007,-5.6282 0.7358,6.1146 -1.634,-5.938 -0.1837,6.156 -0.7308,-6.1152 -1.0991,6.0598 0.1888,-6.1558 -1.9901,5.8283 1.1043,-6.0589 -2.8366,5.4666 1.995,-5.8266 -3.6196,4.9828 2.841,-5.4643 -4.3218,4.3877 3.6238,-4.9798 -4.9275,3.6945 4.3254,-4.384 -5.4231,2.9188 4.9306,-3.6904 -5.7976,2.078 5.4255,-2.9144 -6.0425,1.1907 5.7993,-2.0731 -6.1525,0.2768 6.0435,-1.1857 -6.125,-0.6433 6.1527,-0.2717 -5.9607,-1.5489 6.1245,0.6483 -5.6633,-2.42 5.9594,1.5539 -5.2393,-3.2371 5.6612,2.4247 -4.6983,-3.9818 5.2366,3.2415 -4.0524,-4.6376 4.6951,3.9857 -3.316,-5.1898 4.0486,4.641 -2.5055,-5.6261 3.3117,5.1926 -1.6389,-5.9366 2.5007,5.6281 -0.7358,-6.1146 1.634,5.938 0.1837,-6.156 0.7308,6.1152 1.0991,-6.0598 -0.1888,6.1558 1.9901,-5.8283 -1.1043,6.0589 2.8366,-5.4666 -1.995,5.8266 3.6196,-4.9827 -2.841,5.4642 4.3218,-4.3877 -3.6238,4.9798 4.9275,-3.6945 -4.3254,4.3841 5.4231,-2.9189 -4.9306,3.6904 5.7976,-2.078 -5.4256,2.9144 6.0425,-1.1907 -5.7992,2.0732 6.1525,-0.2768 -6.0435,1.1856 6.125,0.6433 -6.1527,0.2717 z" + inkscape:label="42" /> + <path + d="m 2601.9453,2919.0803 -8.5654,2.8444 -5.6773,7.016 -2.8444,-8.5654 -7.0159,-5.6773 8.5653,-2.8444 5.6774,-7.0159 2.8443,8.5653 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="false" + sodipodi:arg2="0.96525166" + sodipodi:arg1="0.1798535" + sodipodi:r2="6.1245413" + sodipodi:r1="12.249084" + sodipodi:cy="2916.8892" + sodipodi:cx="2589.8938" + sodipodi:sides="4" + id="path3721" + style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.43566883px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" + sodipodi:type="star" + inkscape:label="4" /> + <path + sodipodi:type="star" + style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.43566883px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" + id="path3723" + sodipodi:sides="5" + sodipodi:cx="2589.8938" + sodipodi:cy="2956.8892" + sodipodi:r1="12.249084" + sodipodi:r2="6.1245413" + sodipodi:arg1="0.1798535" + sodipodi:arg2="0.80817203" + inkscape:flatsided="false" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 2601.9453,2959.0803 -7.8205,2.2371 -2.5908,7.7105 -4.5442,-6.7465 -8.1338,-0.081 5.012,-6.4066 -2.4361,-7.7608 7.6418,2.787 6.6282,-4.7152 -0.2892,8.1291 z" + inkscape:label="5" /> + <path + sodipodi:nodetypes="cccc" + inkscape:connector-curvature="0" + id="path3725" + d="m 2600.4968,2792.3613 -8.5391,6.2941 -8.539,6.2941 z" + style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.43566883px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" + inkscape:label="2" /> + <circle + r="1.2603201" + cy="2760.55" + cx="2586.7979" + id="circle3727" + style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.21478893px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" + inkscape:label="1" /> + </g> + <g + transform="translate(-2,20)" + inkscape:label="HMI:Switch@/SWITCHSTRING" + id="g3681"> + <path + inkscape:label=""mhoo"" + d="m 1961.9452,2865.0803 -9.9875,3.5751 -9.9874,3.5751 1.8976,-10.4369 1.8976,-10.4369 8.0899,6.8618 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="false" + sodipodi:arg2="1.2270511" + sodipodi:arg1="0.1798535" + sodipodi:r2="6.1245413" + sodipodi:r1="12.249084" + sodipodi:cy="2862.8892" + sodipodi:cx="1949.8937" + sodipodi:sides="3" + id="path3653" + style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.43566883px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" + sodipodi:type="star" /> + <path + inkscape:label=""ggg"" + sodipodi:type="star" + style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.43566883px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" + id="path3655" + sodipodi:sides="42" + sodipodi:cx="1949.8937" + sodipodi:cy="2896.8892" + sodipodi:r1="12.249084" + sodipodi:r2="6.1245413" + sodipodi:arg1="0.1798535" + sodipodi:arg2="0.25465333" + inkscape:flatsided="false" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 1961.9452,2899.0803 -6.1245,-0.6483 5.6633,2.4201 -5.9594,-1.554 5.2393,3.2371 -5.6613,-2.4247 4.6984,3.9818 -5.2367,-3.2415 4.0525,4.6377 -4.6951,-3.9858 3.316,5.1898 -4.0486,-4.641 2.5054,5.6261 -3.3116,-5.1926 1.6389,5.9367 -2.5007,-5.6282 0.7358,6.1146 -1.634,-5.938 -0.1838,6.156 -0.7307,-6.1152 -1.0992,6.0598 0.1889,-6.1558 -1.9901,5.8283 1.1042,-6.0589 -2.8365,5.4666 1.9949,-5.8266 -3.6195,4.9828 2.841,-5.4643 -4.3218,4.3877 3.6237,-4.9798 -4.9274,3.6945 4.3254,-4.384 -5.4231,2.9188 4.9306,-3.6904 -5.7976,2.078 5.4255,-2.9144 -6.0425,1.1907 5.7993,-2.0731 -6.1525,0.2768 6.0435,-1.1857 -6.125,-0.6433 6.1527,-0.2717 -5.9607,-1.5489 6.1244,0.6483 -5.6632,-2.42 5.9594,1.5539 -5.2394,-3.2371 5.6613,2.4247 -4.6983,-3.9818 5.2366,3.2415 -4.0524,-4.6376 4.695,3.9857 -3.3159,-5.1898 4.0485,4.641 -2.5054,-5.6261 3.3117,5.1926 -1.639,-5.9366 2.5008,5.6281 -0.7358,-6.1146 1.634,5.938 0.1837,-6.156 0.7307,6.1152 1.0992,-6.0598 -0.1888,6.1558 1.99,-5.8283 -1.1042,6.0589 2.8365,-5.4666 -1.9949,5.8266 3.6196,-4.9827 -2.8411,5.4642 4.3218,-4.3877 -3.6237,4.9798 4.9275,-3.6945 -4.3254,4.3841 5.423,-2.9189 -4.9305,3.6904 5.7975,-2.078 -5.4255,2.9144 6.0425,-1.1907 -5.7992,2.0732 6.1524,-0.2768 -6.0435,1.1856 6.1251,0.6433 -6.1527,0.2717 z" /> + <path + inkscape:label=""wtf"" + d="m 1961.9452,2939.0803 -8.5654,2.8444 -5.6773,7.016 -2.8444,-8.5654 -7.0159,-5.6773 8.5653,-2.8444 5.6774,-7.0159 2.8443,8.5653 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="false" + sodipodi:arg2="0.96525166" + sodipodi:arg1="0.1798535" + sodipodi:r2="6.1245413" + sodipodi:r1="12.249084" + sodipodi:cy="2936.8892" + sodipodi:cx="1949.8937" + sodipodi:sides="4" + id="path3657" + style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.43566883px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" + sodipodi:type="star" /> + <path + inkscape:label=""xxx"" + sodipodi:type="star" + style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.43566883px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" + id="path3659" + sodipodi:sides="5" + sodipodi:cx="1949.8937" + sodipodi:cy="2976.8892" + sodipodi:r1="12.249084" + sodipodi:r2="6.1245413" + sodipodi:arg1="0.1798535" + sodipodi:arg2="0.80817203" + inkscape:flatsided="false" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 1961.9452,2979.0803 -7.8206,2.2371 -2.5907,7.7105 -4.5443,-6.7465 -8.1337,-0.081 5.012,-6.4066 -2.4362,-7.7608 7.6419,2.787 6.6281,-4.7152 -0.2891,8.1291 z" /> + <path + inkscape:label=""abba"" + sodipodi:nodetypes="cccc" + inkscape:connector-curvature="0" + id="path3661" + d="m 1960.4968,2812.3613 -8.5391,6.2941 -8.539,6.2941 z" + style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.43566883px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" /> + <circle + inkscape:label=""aa"" + r="1.2603201" + cy="2780.55" + cx="1946.7977" + id="circle3663" + style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.21478893px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" /> + </g> + <path + id="path3683" + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 2225.0033,2700.5501 v -200 m 0,200 h 63.222 m -63.222,-40 h 63.222 m -63.222,-40 h 63.222 m -63.222,-40 h 63.222 m -63.222,-40 h 63.222 m -123.222,-40 h 123.222" + inkscape:connector-curvature="0" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5" + x="2045.4561" + y="2500.5203" + id="text3689"><tspan + sodipodi:role="line" + id="tspan3685" + x="2045.4561" + y="2500.5203" + style="stroke-width:0.5">HMI:Switch</tspan><tspan + sodipodi:role="line" + x="2045.4561" + y="2525.5203" + style="stroke-width:0.5" + id="tspan3687">HMI_INT</tspan></text> + <text + id="text3693" + y="2500.5203" + x="2305.4561" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5" + xml:space="preserve"><tspan + style="stroke-width:0.5" + y="2500.5203" + x="2305.4561" + id="tspan3691" + sodipodi:role="line">1</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5" + x="2305.4561" + y="2540.5203" + id="text3697"><tspan + sodipodi:role="line" + id="tspan3695" + x="2305.4561" + y="2540.5203" + style="stroke-width:0.5">2</tspan></text> + <text + id="text3701" + y="2580.5203" + x="2305.4561" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5" + xml:space="preserve"><tspan + style="stroke-width:0.5" + y="2580.5203" + x="2305.4561" + sodipodi:role="line" + id="tspan3699">3</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5" + x="2305.4561" + y="2620.5203" + id="text3705"><tspan + id="tspan3703" + sodipodi:role="line" + x="2305.4561" + y="2620.5203" + style="stroke-width:0.5">42</tspan></text> + <text + id="text3709" + y="2660.5203" + x="2305.4561" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5" + xml:space="preserve"><tspan + style="stroke-width:0.5" + y="2660.5203" + x="2305.4561" + sodipodi:role="line" + id="tspan3707">4</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5" + x="2305.4561" + y="2700.5203" + id="text3713"><tspan + id="tspan3711" + sodipodi:role="line" + x="2305.4561" + y="2700.5203" + style="stroke-width:0.5">5</tspan></text> + <path + inkscape:connector-curvature="0" + d="m 2345.0033,2700.5501 63.222,-100 m -63.222,60 63.222,-60 m -63.222,20 63.222,-20 m -63.222,-20 63.222,20 m -63.222,-60 63.222,60 m -63.222,-100 63.222,100" + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path3715" + sodipodi:nodetypes="cccccccccccc" /> + <g + inkscape:label="HMI:Switch@/SWITCHINT" + transform="translate(-140,-244)" + id="g3805"> + <use + x="0" + y="0" + xlink:href="#path3717" + id="use3757" + width="100%" + height="100%" + transform="translate(-20.000044,-4.6430426e-5)" /> + <use + x="0" + y="0" + xlink:href="#path3719" + id="use3759" + width="100%" + height="100%" + transform="translate(-20.000044,-35.134605)" /> + <use + x="0" + y="0" + xlink:href="#path3721" + id="use3761" + width="100%" + height="100%" + transform="translate(-20.000044,-75.134605)" /> + <use + x="0" + y="0" + xlink:href="#path3723" + id="use3763" + width="100%" + height="100%" + transform="translate(-20.000044,-115.83893)" /> + <use + x="0" + y="0" + xlink:href="#path3725" + id="use3765" + width="100%" + height="100%" + transform="translate(-20.000044,43.099156)" /> + <use + x="0" + y="0" + xlink:href="#circle3727" + id="use3767" + width="100%" + height="100%" + transform="translate(-20.000044,81.204506)" /> + </g> + <path + sodipodi:nodetypes="cccccccccccc" + id="path3807" + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 2516.2253,2700.5501 -63.222,-100 m 63.222,60 -63.222,-60 m 63.222,20 -63.222,-20 m 63.222,-20 -63.222,20 m 63.222,-60 -63.222,60 m 63.222,-100 -63.222,100" + inkscape:connector-curvature="0" /> + <path + sodipodi:nodetypes="cc" + style="fill:#ffffff;fill-opacity:1;stroke:#fffffc;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Lend-3)" + d="m 2515.0423,2490.0031 h -56.322" + id="path8203-6" + inkscape:connector-curvature="0" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffee;fill-opacity:1;stroke:none;stroke-width:0.5" + x="2459.113" + y="2474.7529" + id="text8753-2"><tspan + sodipodi:role="line" + x="2459.113" + y="2474.7529" + id="tspan8765-1" + style="fill:#ffffee;fill-opacity:1;stroke-width:0.5">clone </tspan></text> + <g + inkscape:label="HMI:Switch@/SWICTHTHREE" + id="g5482"> + <g + inkscape:label="3" + id="g5259" + transform="translate(377.68172,1911.1984)"> + <use + height="100%" + width="100%" + id="use4514" + xlink:href="#g29149" + y="0" + x="0" + transform="matrix(0.1142708,0,0,0.1142708,2084.8332,915.30993)" /> + <use + height="100%" + width="100%" + id="use4516" + xlink:href="#g19348" + y="0" + x="0" + transform="matrix(0.1142708,0,0,0.1142708,2084.8332,915.30993)" /> + <use + height="100%" + width="100%" + id="use4518" + xlink:href="#g24628" + y="0" + x="0" + transform="matrix(0.1142708,0,0,0.1142708,2084.8332,915.30993)" /> + </g> + <use + inkscape:label="2" + transform="translate(-84.862699,997.78118)" + x="0" + y="0" + xlink:href="#g3034" + id="use5261" + width="100%" + height="100%" /> + <use + inkscape:label="1" + x="0" + y="0" + xlink:href="#g8197" + id="use5459" + width="100%" + height="100%" + transform="matrix(0.79711171,0,0,0.79711171,534.15682,1843.6646)" /> + </g> + <text + id="text5488" + y="2880.5203" + x="2133.4561" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5" + xml:space="preserve"><tspan + id="tspan5486" + style="stroke-width:0.5" + y="2880.5203" + x="2133.4561" + sodipodi:role="line">HMI:Switch</tspan><tspan + id="tspan5492" + style="stroke-width:0.5" + y="2905.5203" + x="2133.4561" + sodipodi:role="line">can contain</tspan><tspan + id="tspan5494" + style="stroke-width:0.5" + y="2930.5203" + x="2133.4561" + sodipodi:role="line">other widgets</tspan><tspan + id="tspan5498" + style="stroke-width:0.5" + y="2955.5203" + x="2133.4561" + sodipodi:role="line">(or clones</tspan><tspan + id="tspan5502" + style="stroke-width:0.5" + y="2980.5203" + x="2133.4561" + sodipodi:role="line">of them)</tspan></text> + </g> + <g + id="g9918" + transform="translate(1340)"> + <use + height="100%" + width="100%" + transform="translate(2680)" + id="use9906" + xlink:href="#g9808" + y="0" + x="0" + inkscape:label="HMI:Page:DropDown" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none" + x="4192.8076" + y="1610.3906" + id="text5596"><tspan + sodipodi:role="line" + id="tspan5594" + x="4192.8076" + y="1610.3906">HMI:DropDown:[item0:item1:....]@path</tspan></text> + <text + id="text6121" + y="1632.0127" + x="4194.1895" + style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.25" + xml:space="preserve"><tspan + style="stroke-width:0.25" + y="1632.0127" + x="4194.1895" + sodipodi:role="line" + id="tspan6119">TODO</tspan></text> + </g> + <g + id="g9926" + transform="translate(1340)"> + <use + height="100%" + width="100%" + transform="translate(2680)" + id="use9908" + xlink:href="#g9813" + y="0" + x="0" + inkscape:label="HMI:Page:Input" /> + <text + id="text6570" + y="2390.4241" + x="4192.2148" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none" + xml:space="preserve"><tspan + y="2390.4241" + x="4192.2148" + id="tspan6568" + sodipodi:role="line">HMI:Input@path</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.25" + x="4193.5967" + y="2412.0461" + id="text6604"><tspan + id="tspan6602" + sodipodi:role="line" + x="4193.5967" + y="2412.0461" + style="stroke-width:0.25">TODO</tspan></text> + </g> + <g + id="g9933" + transform="translate(1340)"> + <use + height="100%" + width="100%" + transform="translate(2680)" + id="use9910" + xlink:href="#g9818" + y="0" + x="0" + inkscape:label="HMI:Page:Display" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none" + x="4192.8076" + y="3170.3906" + id="text6827"><tspan + sodipodi:role="line" + id="tspan6825" + x="4192.8076" + y="3170.3906">HMI:Display@path</tspan></text> + <text + id="text6831" + y="3192.0127" + x="4194.1895" + style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#fffffb;fill-opacity:1;stroke:none;stroke-width:0.25" + xml:space="preserve"><tspan + style="fill:#fffffb;fill-opacity:1;stroke-width:0.25" + y="3192.0127" + x="4194.1895" + sodipodi:role="line" + id="tspan6829">TODO</tspan></text> + </g> + <g + id="g9803"> + <rect + style="color:#000000;fill-opacity:1" + id="rect8168" + width="1280" + height="720" + x="1480" + y="780" + inkscape:label="page" /> + <path + inkscape:label="button" + style="stroke-width:8.65513134" + d="m 2621.5859,851.9308 h -25.9654 L 2664.8616,800 l 69.241,51.9308 h -25.9654 v 51.9308 h -34.6205 v -25.9654 h -17.3103 v 25.9654 h -34.6205 z" + id="polygon8206" + inkscape:connector-curvature="0" /> + <text + inkscape:label="text" + id="text8212" + y="859.07928" + x="2664.4124" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill-opacity:1;stroke-width:0.5" + xml:space="preserve"><tspan + style="text-align:center;text-anchor:middle;fill-opacity:1;stroke-width:0.5" + y="859.07928" + x="2664.4124" + id="tspan8210" + sodipodi:role="line">Home</tspan></text> + </g> + <g + id="g9808"> + <use + style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + x="0" + y="0" + xlink:href="#rect8168" + id="use8811" + width="100%" + height="100%" + transform="translate(0,780)" /> + <g + id="g9945" + inkscape:label="HMI:Jump:Home"> + <use + transform="translate(0,780)" + height="100%" + width="100%" + id="use8813" + xlink:href="#polygon8206" + y="0" + x="0" + style="opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke-width:8.65513134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <use + transform="translate(0,780)" + height="100%" + width="100%" + id="use8815" + xlink:href="#text8212" + y="0" + x="0" + style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.49999997px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + </g> + </g> + <g + id="g9813"> + <use + style="opacity:1;vector-effect:none;fill:#b3b3b3;fill-opacity:1;stroke:#000000;stroke-width:1.06666672;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + transform="translate(0,1560)" + height="100%" + width="100%" + id="use8838" + xlink:href="#rect8168" + y="0" + x="0" /> + <g + id="g9941" + inkscape:label="HMI:Jump:Home"> + <use + x="0" + y="0" + xlink:href="#polygon8206" + id="use8840" + width="100%" + height="100%" + transform="translate(0,1560)" + style="opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke-width:8.65513134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <use + x="0" + y="0" + xlink:href="#text8212" + id="use8842" + width="100%" + height="100%" + transform="translate(0,1560)" + style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.49999997px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + </g> + </g> + <g + id="g9818"> + <use + style="opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.06666672;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + x="0" + y="0" + xlink:href="#rect8168" + id="use8877" + width="100%" + height="100%" + transform="translate(0,2340)" /> + <g + id="g9937" + inkscape:label="HMI:Jump:Home"> + <use + transform="translate(0,2340)" + height="100%" + width="100%" + id="use8879" + xlink:href="#polygon8206" + y="0" + x="0" + style="opacity:1;vector-effect:none;fill:#fffffc;fill-opacity:1;stroke:none;stroke-width:8.65513134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <use + transform="translate(0,2340)" + height="100%" + width="100%" + id="use8881" + xlink:href="#text8212" + y="0" + x="0" + style="opacity:1;vector-effect:none;fill:#000009;fill-opacity:1;stroke:none;stroke-width:0.49999997px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + </g> + </g> + <g + id="g9959" + transform="translate(2680)"> + <use + inkscape:label="HMI:Page:Button" + x="0" + y="0" + xlink:href="#g9808" + id="use9947" + transform="translate(2680)" + width="100%" + height="100%" /> + <text + id="text9951" + y="1610.3906" + x="4192.8076" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none" + xml:space="preserve"><tspan + y="1610.3906" + x="4192.8076" + id="tspan9949" + sodipodi:role="line">HMI:Button@path</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.25" + x="4194.1895" + y="1632.0127" + id="text9957"><tspan + id="tspan9955" + sodipodi:role="line" + x="4194.1895" + y="1632.0127" + style="stroke-width:0.25">TODO</tspan></text> + </g> + <g + id="g9973" + transform="translate(2680)"> + <use + inkscape:label="HMI:Page:ForEach" + x="0" + y="0" + xlink:href="#g9813" + id="use9961" + transform="translate(2680)" + width="100%" + height="100%" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none" + x="4192.2148" + y="2390.4241" + id="text9965"><tspan + sodipodi:role="line" + id="tspan9963" + x="4192.2148" + y="2390.4241">HMI:ForEach@path</tspan></text> + <text + id="text9971" + y="2412.0461" + x="4193.5967" + style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.25" + xml:space="preserve"><tspan + style="stroke-width:0.25" + y="2412.0461" + x="4193.5967" + sodipodi:role="line" + id="tspan9969">TODO</tspan></text> + </g> + <g + id="g9985" + transform="translate(2680)"> + <use + inkscape:label="HMI:Page:JsonTable" + x="0" + y="0" + xlink:href="#g9818" + id="use9975" + transform="translate(2680)" + width="100%" + height="100%" /> + <text + id="text9979" + y="3170.3906" + x="4192.8076" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none" + xml:space="preserve"><tspan + y="3170.3906" + x="4192.8076" + id="tspan9977" + sodipodi:role="line">HMI:JsonTable@path</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#fffffb;fill-opacity:1;stroke:none;stroke-width:0.25" + x="4194.1895" + y="3192.0127" + id="text9983"><tspan + id="tspan9981" + sodipodi:role="line" + x="4194.1895" + y="3192.0127" + style="fill:#fffffb;fill-opacity:1;stroke-width:0.25">TODO</tspan></text> + </g> + <g + id="g31721" + inkscape:label="Page Jump and Back"> + <use + inkscape:label="HMI:Page:DropDown" + x="0" + y="0" + xlink:href="#g9808" + id="use10505" + transform="translate(1340)" + width="100%" + height="100%" + style="display:inline" + sodipodi:insensitive="true" /> + <text + id="text10509" + y="1610.3906" + x="2852.8076" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none" + xml:space="preserve"><tspan + y="1610.3906" + x="2852.8076" + id="tspan10507" + sodipodi:role="line">HMI:Page:PageName[@RootPath]</tspan><tspan + y="1660.3906" + x="2852.8076" + sodipodi:role="line" + id="tspan31421">HMI:Jump:PageName[@RelativePath]</tspan><tspan + y="1710.3906" + x="2852.8076" + sodipodi:role="line" + id="tspan31423">HMI:Back</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.25" + x="2854.1895" + y="1744.0127" + id="text10513"><tspan + id="tspan10511" + sodipodi:role="line" + x="2854.1895" + y="1744.0127" + style="stroke-width:0.25">Pages are full screen, only one is displayed at the same time.</tspan><tspan + sodipodi:role="line" + x="2854.1895" + y="1756.5127" + style="stroke-width:0.25" + id="tspan31431">If widget's bounding box is included in page bounding box, then widget is part of page.</tspan><tspan + sodipodi:role="line" + x="2854.1895" + y="1769.0127" + style="stroke-width:0.25" + id="tspan24710">Page change is triggered by HMI:Jump and HMI:Back (TODO: /CURRENTPAGE).</tspan><tspan + sodipodi:role="line" + x="2854.1895" + y="1781.5127" + style="stroke-width:0.25" + id="tspan31507">HMI:Back takes no parameter and just go back one step in page change history.</tspan><tspan + sodipodi:role="line" + x="2854.1895" + y="1794.0127" + style="stroke-width:0.25" + id="tspan31509">HMI:Jump can have "inactive", "active" and "disabled" labeled children:</tspan><tspan + sodipodi:role="line" + x="2854.1895" + y="1806.5127" + style="stroke-width:0.25" + id="tspan31511"> - "inactive" is shown when target page is not currently displayed</tspan><tspan + sodipodi:role="line" + x="2854.1895" + y="1819.0127" + style="stroke-width:0.25" + id="tspan31513"> - "active" is shown when target page is currently displayed</tspan><tspan + sodipodi:role="line" + x="2854.1895" + y="1831.5127" + style="stroke-width:0.25" + id="tspan31515"> - "disabled" is shown when relative page's RootPath is set to 0, disabling jump.</tspan></text> + <text + id="text31455" + y="2112.0127" + x="2854.1895" + style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.25" + xml:space="preserve"><tspan + style="stroke-width:0.25" + y="2112.0127" + x="2854.1895" + sodipodi:role="line" + id="tspan31466">When [@RootPath] is given, page is a relative page.</tspan><tspan + id="tspan31443" + style="stroke-width:0.25" + y="2124.5127" + x="2854.1895" + sodipodi:role="line">When using HMI:Jump to reach a relative page, a compatible [@RelativePath] may be provided.</tspan><tspan + id="tspan31445" + style="stroke-width:0.25" + y="2137.0127" + x="2854.1895" + sodipodi:role="line">To be compatible, RootPath and RelativePath must both point to same HMI_NODE (i.e same POU).</tspan><tspan + id="tspan31447" + style="stroke-width:0.25" + y="2149.5127" + x="2854.1895" + sodipodi:role="line">Every widget using a path descendant of RootPath in a relative page is relative.</tspan><tspan + id="tspan31449" + style="stroke-width:0.25" + y="2162.0127" + x="2854.1895" + sodipodi:role="line">Relative widgets get the RootPath section of their path replaced by RelativePath.</tspan><tspan + id="tspan31451" + style="stroke-width:0.25" + y="2174.5127" + x="2854.1895" + sodipodi:role="line" /><tspan + id="tspan31453" + style="stroke-width:0.25" + y="2187.0127" + x="2854.1895" + sodipodi:role="line" /></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none" + x="2852.8076" + y="2082.3906" + id="text31500"><tspan + id="tspan31498" + sodipodi:role="line" + x="2852.8076" + y="2082.3906">Relative pages</tspan></text> + <rect + y="1570.8585" + x="3642.8337" + height="164.25635" + width="236.32014" + id="rect20533" + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.86794662;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" /> + <rect + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.86794662;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" + id="rect28563" + width="127.0032" + height="52.087524" + x="3743.3491" + y="1588.9159" /> + <rect + y="1674.9159" + x="3743.3491" + height="54.183105" + width="129.09868" + id="rect28565" + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.86794662;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" /> + <rect + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.86794662;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" + id="rect28597" + width="236.32014" + height="164.25635" + x="3642.8337" + y="1748.8585" /> + <rect + y="1766.9159" + x="3743.3491" + height="52.087524" + width="127.0032" + id="rect28599" + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.86794662;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" /> + <rect + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.86794662;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" + id="rect28601" + width="129.09868" + height="54.183105" + x="3743.3491" + y="1852.9159" /> + <rect + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.86794662;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" + id="rect28625" + width="127.0032" + height="52.087524" + x="3743.3491" + y="1944.9159" /> + <rect + y="2030.9159" + x="3743.3491" + height="54.183105" + width="129.09868" + id="rect28627" + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.86794662;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" /> + <rect + y="1926.8585" + x="3642.8337" + height="164.25635" + width="236.32014" + id="rect28623" + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.86794662;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" /> + <rect + y="2120.916" + x="3743.3491" + height="52.087524" + width="127.0032" + id="rect28651" + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.86794662;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" /> + <rect + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.86794662;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" + id="rect28653" + width="129.09868" + height="54.183105" + x="3743.3491" + y="2206.916" /> + <rect + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.86794662;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" + id="rect28649" + width="236.32014" + height="164.25635" + x="3642.8337" + y="2102.8584" /> + <rect + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.86794662;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" + id="rect29757" + width="98.502846" + height="52.087524" + x="3355.3491" + y="1870.9159" /> + <rect + y="1958.9159" + x="3355.3491" + height="54.183105" + width="97.664452" + id="rect29759" + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.86794662;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" /> + <g + transform="matrix(0.9339736,0,0,0.9339736,570.22762,-7.4794549)" + id="g19637"> + <path + style="fill:#41fe00;fill-opacity:1;stroke:#000100;stroke-width:1.88976383;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 3397.4424,1713.5338 a 22.827207,22.827207 0 0 1 22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,-22.8272 22.827207,22.827207 0 0 1 22.8272,-22.8272 z" + id="path841" + inkscape:connector-curvature="0" /> + <path + style="opacity:1;vector-effect:none;fill:#41fefb;fill-opacity:1;stroke:#000100;stroke-width:1.88976383;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 3397.4424,1998.8049 a 22.827207,22.827207 0 0 1 22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,-22.8272 22.827207,22.827207 0 0 1 22.8272,-22.8272 z" + id="circle851" + inkscape:connector-curvature="0" /> + <path + style="opacity:1;vector-effect:none;fill:#41fe00;fill-opacity:1;stroke:#000100;stroke-width:1.88976383;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 3397.4424,1903.7145 a 22.827207,22.827207 0 0 1 22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,-22.8272 22.827207,22.827207 0 0 1 22.8272,-22.8272 z" + id="circle853" + inkscape:connector-curvature="0" /> + <path + style="fill:#41fefb;fill-opacity:1;stroke:#000100;stroke-width:1.88976383;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 3397.4424,1808.6242 a 22.827207,22.827207 0 0 1 22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,-22.8272 22.827207,22.827207 0 0 1 22.8272,-22.8272 z" + id="circle855" + inkscape:connector-curvature="0" /> + <path + style="fill:#888888;fill-opacity:1;stroke:#000100;stroke-width:1.88977504;stroke-miterlimit:4;stroke-dasharray:5.66932509, 1.88977503;stroke-dashoffset:0;stroke-opacity:1" + d="m 3179.444,1920.411 a 22.827207,22.827207 0 0 1 22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,-22.8272 22.827207,22.827207 0 0 1 22.8272,-22.8272 z" + id="circle843" + inkscape:connector-curvature="0" /> + <path + style="opacity:1;vector-effect:none;fill:#ffff02;fill-opacity:1;stroke:#000100;stroke-width:1.88977504;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:5.66932509, 1.88977503;stroke-dashoffset:0;stroke-opacity:1" + d="m 3288.4432,1951.2597 a 22.827207,22.827207 0 0 1 22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,-22.8272 22.827207,22.827207 0 0 1 22.8272,-22.8272 z" + id="circle847" + inkscape:connector-curvature="0" /> + <path + style="fill:#ffff02;fill-opacity:1;stroke:#000100;stroke-width:1.88977504;stroke-miterlimit:4;stroke-dasharray:5.66932509, 1.88977503;stroke-dashoffset:0;stroke-opacity:1" + d="m 3288.4432,1761.079 a 22.827207,22.827207 0 0 1 22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,-22.8272 22.827207,22.827207 0 0 1 22.8272,-22.8272 z" + id="circle849" + inkscape:connector-curvature="0" /> + <path + sodipodi:nodetypes="cc" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.88976383;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker14681)" + d="m 3202.1732,1945.5633 64.3092,22.561" + id="path873" + inkscape:connector-curvature="0" /> + <path + sodipodi:nodetypes="cc" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.88976383;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker22786)" + d="m 3189.8361,1923.0289 81.406,-124.1166" + id="path875" + inkscape:connector-curvature="0" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.88976383;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker20902)" + d="m 3309.3661,1983.2134 67.1534,29.2922" + id="path877" + inkscape:connector-curvature="0" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.88976383;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker14281)" + d="m 3309.3661,1964.9604 67.1534,-29.2921" + id="path879-5" + inkscape:connector-curvature="0" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.88976383;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker13481)" + d="m 3309.3661,1793.0327 67.1534,29.2922" + id="path881" + inkscape:connector-curvature="0" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.88976383;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker13093)" + d="m 3309.3661,1774.7797 67.1534,-29.2922" + id="path883" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path14267" + d="m 3397.4424,2188.9856 a 22.827207,22.827207 0 0 1 22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,-22.8272 22.827207,22.827207 0 0 1 22.8272,-22.8272 z" + style="opacity:1;vector-effect:none;fill:#41fefb;fill-opacity:1;stroke:#000100;stroke-width:1.88976383;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <path + inkscape:connector-curvature="0" + id="path14269" + d="m 3397.4424,2093.8953 a 22.827207,22.827207 0 0 1 22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,-22.8272 22.827207,22.827207 0 0 1 22.8272,-22.8272 z" + style="opacity:1;vector-effect:none;fill:#41fe00;fill-opacity:1;stroke:#000100;stroke-width:1.88976383;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <path + inkscape:connector-curvature="0" + id="path14271" + d="m 3288.4432,2141.4404 a 22.827207,22.827207 0 0 1 22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,-22.8272 22.827207,22.827207 0 0 1 22.8272,-22.8272 z" + style="opacity:1;vector-effect:none;fill:#ffff02;fill-opacity:1;stroke:#000100;stroke-width:1.88977504;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:5.66932509, 1.88977503;stroke-dashoffset:0;stroke-opacity:1" /> + <path + inkscape:connector-curvature="0" + id="path14275" + d="m 3309.3661,2173.3942 67.1534,29.2921" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.88976383;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker12717)" /> + <path + inkscape:connector-curvature="0" + id="path14277" + d="m 3309.3661,2155.1411 67.1534,-29.2921" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.88976383;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker13869)" /> + <path + sodipodi:nodetypes="cc" + inkscape:connector-curvature="0" + id="path15085" + d="m 3185.5597,1965.1532 94.6058,177.9637" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.88976383;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker15089)" /> + <path + inkscape:connector-curvature="0" + id="path12689" + d="m 3179.444,2205.6822 a 22.827207,22.827207 0 0 1 22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,-22.8272 22.827207,22.827207 0 0 1 22.8272,-22.8272 z" + style="fill:#df28c1;fill-opacity:1;stroke:#000100;stroke-width:1.88977504;stroke-miterlimit:4;stroke-dasharray:5.66932509, 1.88977503;stroke-dashoffset:0;stroke-opacity:1" /> + <path + inkscape:connector-curvature="0" + id="path12695" + d="m 2790.1344,2063.0466 a 22.827207,22.827207 0 0 1 22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,-22.8272 22.827207,22.827207 0 0 1 22.8272,-22.8272 z" + style="fill:#ba0000;fill-opacity:1;stroke:none;stroke-width:1.88977504;stroke-miterlimit:4;stroke-dasharray:5.66932509, 1.88977503;stroke-dashoffset:0;stroke-opacity:1" /> + <path + inkscape:connector-curvature="0" + id="path12697" + d="m 2899.1336,2158.137 a 22.827207,22.827207 0 0 1 22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,-22.8272 22.827207,22.827207 0 0 1 22.8272,-22.8272 z" + style="fill:#2e8900;fill-opacity:1;stroke:#000100;stroke-width:1.88977504;stroke-miterlimit:4;stroke-dasharray:5.66932509, 1.88977503;stroke-dashoffset:0;stroke-opacity:1" /> + <path + inkscape:connector-curvature="0" + id="path12699" + d="m 2899.1336,1967.9563 a 22.827207,22.827207 0 0 1 22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,-22.8272 22.827207,22.827207 0 0 1 22.8272,-22.8272 z" + style="fill:#d77f00;fill-opacity:1;stroke:#000100;stroke-width:1.88977504;stroke-miterlimit:4;stroke-dasharray:5.66932509, 1.88977503;stroke-dashoffset:0;stroke-opacity:1" /> + <path + inkscape:connector-curvature="0" + id="path12701" + d="m 2807.3355,2100.88 74.597,65.0781" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.88976383;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1197)" /> + <path + inkscape:connector-curvature="0" + id="path12703" + d="m 2807.3355,2070.8677 74.597,-65.0781" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.88976383;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1207)" /> + <path + sodipodi:nodetypes="cc" + inkscape:connector-curvature="0" + id="path12705" + d="m 2919.9445,2188.2957 238.5766,31.0872" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.88976383;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1187)" /> + <path + sodipodi:nodetypes="cc" + inkscape:connector-curvature="0" + id="path12707" + d="m 2917.4342,2170.0427 45.1645,-26.1509" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.88976383;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1177)" /> + <path + sodipodi:nodetypes="cc" + inkscape:connector-curvature="0" + id="path12709" + d="m 2920.5754,1997.6662 40.6771,27.946" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.88976383;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1167)" /> + <path + sodipodi:nodetypes="cc" + inkscape:connector-curvature="0" + id="path12711" + d="m 2916.3544,1974.9257 242.1667,-22.5609" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.88976383;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1157)" /> + <path + style="opacity:1;vector-effect:none;fill:#41fefb;fill-opacity:1;stroke:#000100;stroke-width:1.88976383;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 3397.4424,2378.9856 a 22.827207,22.827207 0 0 1 22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,-22.8272 22.827207,22.827207 0 0 1 22.8272,-22.8272 z" + id="path21346" + inkscape:connector-curvature="0" /> + <path + style="opacity:1;vector-effect:none;fill:#41fe00;fill-opacity:1;stroke:#000100;stroke-width:1.88976383;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 3397.4424,2283.8953 a 22.827207,22.827207 0 0 1 22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,-22.8272 22.827207,22.827207 0 0 1 22.8272,-22.8272 z" + id="path21348" + inkscape:connector-curvature="0" /> + <path + style="opacity:1;vector-effect:none;fill:#ffff02;fill-opacity:1;stroke:#000100;stroke-width:1.88977504;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:5.66932509, 1.88977503;stroke-dashoffset:0;stroke-opacity:1" + d="m 3288.4432,2331.4404 a 22.827207,22.827207 0 0 1 22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,-22.8272 22.827207,22.827207 0 0 1 22.8272,-22.8272 z" + id="path21350" + inkscape:connector-curvature="0" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.88976383;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker12717)" + d="m 3309.3661,2363.3942 67.1534,29.2921" + id="path21352" + inkscape:connector-curvature="0" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.88976383;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker13869)" + d="m 3309.3661,2345.1411 67.1534,-29.2921" + id="path21354" + inkscape:connector-curvature="0" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.88976383;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker21366)" + d="m 3192.561,2246.4305 82.8503,88.6965" + id="path21362" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + <path + inkscape:connector-curvature="0" + id="path12691" + d="m 2982.4361,2110.5918 a 22.827207,22.827207 0 0 1 22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,-22.8272 22.827207,22.827207 0 0 1 22.8272,-22.8272 z" + style="fill:#4528c1;fill-opacity:1;stroke:#000100;stroke-width:1.88976383;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + inkscape:connector-curvature="0" + id="path12693" + d="m 2982.4361,2015.5015 a 22.827207,22.827207 0 0 1 22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,-22.8272 22.827207,22.827207 0 0 1 22.8272,-22.8272 z" + style="fill:#4585c1;fill-opacity:1;stroke:#000100;stroke-width:1.88976383;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + </g> + <text + id="text20892" + y="1947.4917" + x="3172.6416" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + xml:space="preserve"><tspan + style="stroke-width:0.5" + y="1947.4917" + x="3172.6416" + id="tspan20890" + sodipodi:role="line">/</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:9.33974457px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23349333" + x="3644.752" + y="1580.1208" + id="text23772"><tspan + id="tspan28514" + sodipodi:role="line" + x="3644.752" + y="1580.1208" + style="stroke-width:0.23349333">HMI:MyPage@/A/B/C0</tspan></text> + <path + inkscape:connector-curvature="0" + id="path24724" + d="M 3988.9001,1724.9696 H 3881.6162" + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.7649895;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker25174)" /> + <text + id="text25616" + y="1719.4069" + x="3911.6536" + style="font-style:normal;font-weight:normal;font-size:13.25997066px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.33149907" + xml:space="preserve"><tspan + style="stroke-width:0.33149907" + y="1719.4069" + x="3911.6536" + id="tspan25614" + sodipodi:role="line">HMI:Jump:MyPage</tspan></text> + <path + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.7649895;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker25626)" + d="M 3988.9001,1902.9696 H 3881.6162" + id="path25618" + inkscape:connector-curvature="0" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:13.25997066px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.33149907" + x="3911.6536" + y="1897.4069" + id="text25622"><tspan + sodipodi:role="line" + id="tspan25620" + x="3911.6536" + y="1897.4069" + style="stroke-width:0.33149907">HMI:Jump:MyPage@/A/B/C1</tspan></text> + <path + inkscape:connector-curvature="0" + id="path26120" + d="M 3988.9001,2076.9696 H 3881.6162" + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.7649895;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker26128)" /> + <text + id="text26124" + y="2071.4067" + x="3911.6536" + style="font-style:normal;font-weight:normal;font-size:13.25997066px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.33149907" + xml:space="preserve"><tspan + style="stroke-width:0.33149907" + y="2071.4067" + x="3911.6536" + id="tspan26122" + sodipodi:role="line">HMI:Jump:MyPage@/A/B/C2</tspan></text> + <path + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.7649895;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker27950)" + d="M 3988.9001,2254.9696 H 3881.6162" + id="path27942" + inkscape:connector-curvature="0" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:13.25997066px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.33149907" + x="3911.6536" + y="2249.4067" + id="text27946"><tspan + sodipodi:role="line" + id="tspan27944" + x="3911.6536" + y="2249.4067" + style="stroke-width:0.33149907">HMI:Jump:MyPage@/D/E/F</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + x="3270.6416" + y="1859.4917" + id="text28484"><tspan + sodipodi:role="line" + id="tspan28482" + x="3270.6416" + y="1859.4917" + style="stroke-width:0.5">A</tspan></text> + <text + id="text28488" + y="1813.4917" + x="3532.6416" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + xml:space="preserve"><tspan + style="stroke-width:0.5" + y="1813.4917" + x="3532.6416" + id="tspan28486" + sodipodi:role="line">B</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + x="3628.6416" + y="1665.4917" + id="text28492"><tspan + sodipodi:role="line" + id="tspan28490" + x="3628.6416" + y="1665.4917" + style="stroke-width:0.5">C0</tspan></text> + <text + id="text28496" + y="1841.4917" + x="3628.6416" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + xml:space="preserve"><tspan + style="stroke-width:0.5" + y="1841.4917" + x="3628.6416" + id="tspan28494" + sodipodi:role="line">C1</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + x="3628.6416" + y="2021.4917" + id="text28500"><tspan + sodipodi:role="line" + id="tspan28498" + x="3628.6416" + y="2021.4917" + style="stroke-width:0.5">C2</tspan></text> + <text + id="text28504" + y="2035.4917" + x="3270.6416" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + xml:space="preserve"><tspan + style="stroke-width:0.5" + y="2035.4917" + x="3270.6416" + id="tspan28502" + sodipodi:role="line">D</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + x="3530.6416" + y="2079.4917" + id="text28508"><tspan + sodipodi:role="line" + id="tspan28506" + x="3530.6416" + y="2079.4917" + style="stroke-width:0.5">E</tspan></text> + <text + id="text28512" + y="2199.4917" + x="3634.6416" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + xml:space="preserve"><tspan + style="stroke-width:0.5" + y="2199.4917" + x="3634.6416" + id="tspan28510" + sodipodi:role="line">F</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:13.25997066px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.33149907" + x="3911.6536" + y="1739.4069" + id="text28532"><tspan + sodipodi:role="line" + id="tspan28530" + x="3911.6536" + y="1739.4069" + style="stroke-width:0.33149907">HMI:Jump:MyPage@/A/B/C0</tspan></text> + <text + id="text28488-8" + y="1620.8591" + x="3736.2322" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + xml:space="preserve"><tspan + style="stroke-width:0.5" + y="1620.8591" + x="3736.2322" + id="tspan28486-8" + sodipodi:role="line">G</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + x="3736.2322" + y="1710.8591" + id="text28587"><tspan + sodipodi:role="line" + id="tspan28585" + x="3736.2322" + y="1710.8591" + style="stroke-width:0.5">H</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:9.33974457px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23349333" + x="3758.752" + y="1598.1208" + id="text28591"><tspan + sodipodi:role="line" + id="tspan28589" + x="3758.752" + y="1598.1208" + style="stroke-width:0.23349333">HMI:Widget@/A/B/C0/G</tspan></text> + <text + id="text28595" + y="1684.1208" + x="3758.752" + style="font-style:normal;font-weight:normal;font-size:9.33974457px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23349333" + xml:space="preserve"><tspan + style="stroke-width:0.23349333" + y="1684.1208" + x="3758.752" + id="tspan28593" + sodipodi:role="line">HMI:Widget@/A/B/C0/H</tspan></text> + <text + id="text28605" + y="1758.1208" + x="3644.752" + style="font-style:normal;font-weight:normal;font-size:9.33974457px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23349333" + xml:space="preserve"><tspan + style="stroke-width:0.23349333" + y="1758.1208" + x="3644.752" + sodipodi:role="line" + id="tspan28603">HMI:MyPage@/A/B/C0</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + x="3736.2322" + y="1798.8591" + id="text28609"><tspan + sodipodi:role="line" + id="tspan28607" + x="3736.2322" + y="1798.8591" + style="stroke-width:0.5">G</tspan></text> + <text + id="text28613" + y="1888.8591" + x="3736.2322" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + xml:space="preserve"><tspan + style="stroke-width:0.5" + y="1888.8591" + x="3736.2322" + id="tspan28611" + sodipodi:role="line">H</tspan></text> + <text + id="text28617" + y="1776.1208" + x="3758.752" + style="font-style:normal;font-weight:normal;font-size:9.33974457px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23349333" + xml:space="preserve"><tspan + style="stroke-width:0.23349333" + y="1776.1208" + x="3758.752" + id="tspan28615" + sodipodi:role="line">HMI:Widget@/A/B/C0/G</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:9.33974457px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23349333" + x="3758.752" + y="1862.1208" + id="text28621"><tspan + sodipodi:role="line" + id="tspan28619" + x="3758.752" + y="1862.1208" + style="stroke-width:0.23349333">HMI:Widget@/A/B/C0/H</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:9.33974457px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23349333" + x="3644.752" + y="1936.1208" + id="text28631"><tspan + id="tspan28629" + sodipodi:role="line" + x="3644.752" + y="1936.1208" + style="stroke-width:0.23349333">HMI:MyPage@/A/B/C0</tspan></text> + <text + id="text28635" + y="1976.8591" + x="3736.2322" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + xml:space="preserve"><tspan + style="stroke-width:0.5" + y="1976.8591" + x="3736.2322" + id="tspan28633" + sodipodi:role="line">G</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + x="3736.2322" + y="2066.8591" + id="text28639"><tspan + sodipodi:role="line" + id="tspan28637" + x="3736.2322" + y="2066.8591" + style="stroke-width:0.5">H</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:9.33974457px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23349333" + x="3758.752" + y="1954.1208" + id="text28643"><tspan + sodipodi:role="line" + id="tspan28641" + x="3758.752" + y="1954.1208" + style="stroke-width:0.23349333">HMI:Widget@/A/B/C0/G</tspan></text> + <text + id="text28647" + y="2040.1208" + x="3758.752" + style="font-style:normal;font-weight:normal;font-size:9.33974457px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23349333" + xml:space="preserve"><tspan + style="stroke-width:0.23349333" + y="2040.1208" + x="3758.752" + id="tspan28645" + sodipodi:role="line">HMI:Widget@/A/B/C0/H</tspan></text> + <text + id="text28657" + y="2112.1208" + x="3644.752" + style="font-style:normal;font-weight:normal;font-size:9.33974457px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23349333" + xml:space="preserve"><tspan + style="stroke-width:0.23349333" + y="2112.1208" + x="3644.752" + sodipodi:role="line" + id="tspan28655">HMI:MyPage@/A/B/C0</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + x="3736.2322" + y="2152.8591" + id="text28661"><tspan + sodipodi:role="line" + id="tspan28659" + x="3736.2322" + y="2152.8591" + style="stroke-width:0.5">G</tspan></text> + <text + id="text28665" + y="2242.8591" + x="3736.2322" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + xml:space="preserve"><tspan + style="stroke-width:0.5" + y="2242.8591" + x="3736.2322" + id="tspan28663" + sodipodi:role="line">H</tspan></text> + <text + id="text28669" + y="2130.1208" + x="3758.752" + style="font-style:normal;font-weight:normal;font-size:9.33974457px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23349333" + xml:space="preserve"><tspan + style="stroke-width:0.23349333" + y="2130.1208" + x="3758.752" + id="tspan28667" + sodipodi:role="line">HMI:Widget@/A/B/C0/G</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:9.33974457px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23349333" + x="3758.752" + y="2216.1208" + id="text28673"><tspan + sodipodi:role="line" + id="tspan28671" + x="3758.752" + y="2216.1208" + style="stroke-width:0.23349333">HMI:Widget@/A/B/C0/H</tspan></text> + <text + id="text28677" + y="1638.1208" + x="3758.752" + style="font-style:normal;font-weight:normal;font-size:9.33974457px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23349333" + xml:space="preserve"><tspan + style="stroke-width:0.23349333" + y="1638.1208" + x="3758.752" + id="tspan28675" + sodipodi:role="line">real path: /A/B/C0/G</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:9.33974457px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23349333" + x="3758.752" + y="1724.1208" + id="text28681"><tspan + sodipodi:role="line" + id="tspan28679" + x="3758.752" + y="1724.1208" + style="stroke-width:0.23349333">real path: /A/B/C0/H</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:9.33974457px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23349333" + x="3758.752" + y="1816.1208" + id="text28685"><tspan + sodipodi:role="line" + id="tspan28683" + x="3758.752" + y="1816.1208" + style="stroke-width:0.23349333">real path: /A/B/C1/G</tspan></text> + <text + id="text28689" + y="1902.1208" + x="3758.752" + style="font-style:normal;font-weight:normal;font-size:9.33974457px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23349333" + xml:space="preserve"><tspan + style="stroke-width:0.23349333" + y="1902.1208" + x="3758.752" + id="tspan28687" + sodipodi:role="line">real path: /A/B/C1/H</tspan></text> + <text + id="text28693" + y="1994.1208" + x="3758.752" + style="font-style:normal;font-weight:normal;font-size:9.33974457px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23349333" + xml:space="preserve"><tspan + style="stroke-width:0.23349333" + y="1994.1208" + x="3758.752" + id="tspan28691" + sodipodi:role="line">real path: /A/B/C2/G</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:9.33974457px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23349333" + x="3758.752" + y="2080.1208" + id="text28697"><tspan + sodipodi:role="line" + id="tspan28695" + x="3758.752" + y="2080.1208" + style="stroke-width:0.23349333">real path: /A/B/C3/H</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:9.33974457px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23349333" + x="3758.752" + y="2168.1208" + id="text28701"><tspan + sodipodi:role="line" + id="tspan28699" + x="3758.752" + y="2168.1208" + style="stroke-width:0.23349333">real path: /D/E/F/G</tspan></text> + <text + id="text28705" + y="2254.1208" + x="3758.752" + style="font-style:normal;font-weight:normal;font-size:9.33974457px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23349333" + xml:space="preserve"><tspan + style="stroke-width:0.23349333" + y="2254.1208" + x="3758.752" + id="tspan28703" + sodipodi:role="line">real path: /D/E/F/H</tspan></text> + <rect + y="1854.8585" + x="3314.7683" + height="164.25647" + width="147.04692" + id="rect29755" + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.86794662;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:9.33974457px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23349333" + x="3316.752" + y="1864.1208" + id="text29763"><tspan + id="tspan29761" + sodipodi:role="line" + x="3316.752" + y="1864.1208" + style="stroke-width:0.23349333">HMI:SomePage</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:9.33974457px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23349333" + x="3370.752" + y="1880.1208" + id="text29767"><tspan + sodipodi:role="line" + id="tspan29765" + x="3370.752" + y="1880.1208" + style="stroke-width:0.23349333">HMI:Widget@/A/I</tspan></text> + <text + id="text29771" + y="1968.1208" + x="3370.752" + style="font-style:normal;font-weight:normal;font-size:9.33974457px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23349333" + xml:space="preserve"><tspan + style="stroke-width:0.23349333" + y="1968.1208" + x="3370.752" + id="tspan29769" + sodipodi:role="line">HMI:Widget@/D/J</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + x="3352.3206" + y="1902.8329" + id="text28484-9"><tspan + sodipodi:role="line" + id="tspan28482-7" + x="3352.3206" + y="1902.8329" + style="stroke-width:0.5">I</tspan></text> + <text + id="text29985" + y="1992.8329" + x="3352.3206" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + xml:space="preserve"><tspan + style="stroke-width:0.5" + y="1992.8329" + x="3352.3206" + id="tspan29983" + sodipodi:role="line">J</tspan></text> + <path + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.7649895;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker30413)" + d="M 3572.4377,1951.115 H 3465.1538" + id="path30405" + inkscape:connector-curvature="0" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:13.25997066px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.33149907" + x="3465.8237" + y="1967.2129" + id="text30409"><tspan + sodipodi:role="line" + id="tspan30407" + x="3465.8237" + y="1967.2129" + style="stroke-width:0.33149907">HMI:Jump:SomePage</tspan></text> + <text + id="text31389" + y="1912.1208" + x="3124.752" + style="font-style:normal;font-weight:normal;font-size:9.33974457px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23349333" + xml:space="preserve"><tspan + style="stroke-width:0.23349333" + y="1912.1208" + x="3124.752" + sodipodi:role="line" + id="tspan31387">HMI_TREE root</tspan></text> + <path + inkscape:connector-curvature="0" + id="path12699-3" + d="m 2905.556,1872.8754 a 21.320009,21.320009 0 0 1 21.32,21.32 21.320009,21.320009 0 0 1 -21.32,21.32 21.320009,21.320009 0 0 1 -21.32,-21.32 21.320009,21.320009 0 0 1 21.32,-21.32 z" + style="fill:none;fill-opacity:1;stroke:#000100;stroke-width:1.76499999;stroke-miterlimit:4;stroke-dasharray:5.29499996, 1.76499999;stroke-dashoffset:0;stroke-opacity:1" + inkscape:transform-center-x="-171.89143" + inkscape:transform-center-y="-18.96737" /> + <path + style="fill:none;fill-opacity:1;stroke:#000100;stroke-width:1.7649895;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 2905.5559,1920.8755 a 21.320009,21.320009 0 0 1 21.32,21.32 21.320009,21.320009 0 0 1 -21.32,21.32 21.320009,21.320009 0 0 1 -21.32,-21.32 21.320009,21.320009 0 0 1 21.32,-21.32 z" + id="path841-0" + inkscape:connector-curvature="0" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:13.25997066px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.33149907" + x="2940.9072" + y="1897.7371" + id="text30409-9"><tspan + sodipodi:role="line" + id="tspan30407-2" + x="2940.9072" + y="1897.7371" + style="stroke-width:0.33149907">HMI_NODE in a POU</tspan></text> + <text + id="text31781" + y="1945.7371" + x="2940.9072" + style="font-style:normal;font-weight:normal;font-size:13.25997066px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.33149907" + xml:space="preserve"><tspan + style="stroke-width:0.33149907" + y="1945.7371" + x="2940.9072" + id="tspan31779" + sodipodi:role="line">HMI_* variable</tspan></text> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none" + x="2852.2148" + y="1710.4241" + id="text10521-7"><tspan + sodipodi:role="line" + id="tspan10519-6" + x="2852.2148" + y="1745.8147" /></text> + <g + id="g33071" + inkscape:label="KeyPad page"> + <use + inkscape:label="HMI:Page:KeyPad" + x="0" + y="0" + xlink:href="#g9813" + id="use10517" + transform="translate(1340)" + width="100%" + height="100%" + sodipodi:insensitive="true" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none" + x="2852.2148" + y="2390.4241" + id="text10521"><tspan + sodipodi:role="line" + id="tspan10519" + x="2852.2148" + y="2390.4241">HMI:KeyPad:HMI_TYPE[:HMI_TYPE...]</tspan></text> + <text + id="text10525" + y="2412.0461" + x="2853.5967" + style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.25" + xml:space="preserve"><tspan + style="stroke-width:0.25" + y="2412.0461" + x="2853.5967" + sodipodi:role="line" + id="tspan10523">KeyPad widget let user draw keyboard for different types of input.</tspan><tspan + style="stroke-width:0.25" + y="2424.5461" + x="2853.5967" + sodipodi:role="line" + id="tspan33108">It is shown for example when editing a value from HMI:Input widget.</tspan></text> + <g + id="g33240" + transform="translate(0,4.0539551)"> + <rect + style="fill:url(#pattern33036);stroke:none;stroke-width:0.34027249" + width="435.5488" + height="244.9962" + x="2860.2483" + y="2779.1428" + id="rect32318" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:16.32951546px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.40823787" + x="2872.0142" + y="2770.2192" + id="text33049"><tspan + sodipodi:role="line" + id="tspan33047" + x="2872.0142" + y="2770.2192" + style="stroke-width:0.40823787">HMI:Keypad:HMI_STRING:HMI_LOCAL:PAGE_LOCAL</tspan></text> + </g> + <g + id="g33245" + transform="translate(-40)"> + <rect + style="fill:url(#pattern33045);stroke:none;stroke-width:0.34027249" + width="435.5488" + height="244.9962" + x="3541.9167" + y="2783.1968" + id="rect33043" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:16.32951546px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.40823787" + x="3631.9973" + y="2772.2732" + id="text33053"><tspan + sodipodi:role="line" + id="tspan33051" + x="3631.9973" + y="2772.2732" + style="stroke-width:0.40823787">HMI:Keypad:HMI_INT:HMI_REAL</tspan></text> + </g> + <g + id="g33235" + transform="translate(80)"> + <path + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 3046.575,2704.1388 v -240" + id="path33345" + inkscape:connector-curvature="0" /> + <path + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 3046.575,2704.1388 h 63.222" + id="path33343" + inkscape:connector-curvature="0" /> + <path + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 3046.575,2664.1388 h 63.222" + id="path33341" + inkscape:connector-curvature="0" /> + <path + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 3046.575,2624.1388 h 63.222" + id="path33339" + inkscape:connector-curvature="0" /> + <path + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 3046.575,2584.1388 h 63.222" + id="path33337" + inkscape:connector-curvature="0" /> + <path + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 3046.575,2544.1388 h 63.222" + id="path33335" + inkscape:connector-curvature="0" /> + <path + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 2986.575,2464.1388 h 123.222" + id="path3520-3" + inkscape:connector-curvature="0" /> + <text + id="text3543-5" + y="2507.3318" + x="3118.6919" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + xml:space="preserve"><tspan + style="fill:#000000;fill-opacity:1;stroke-width:0.5" + y="2507.3318" + x="3118.6919" + id="tspan3541-1" + sodipodi:role="line">Info</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + x="3118.6919" + y="2547.3318" + id="text3547-7"><tspan + sodipodi:role="line" + id="tspan3545-4" + x="3118.6919" + y="2547.3318" + style="fill:#000000;fill-opacity:1;stroke-width:0.5">Esc</tspan></text> + <text + id="text3551-3" + y="2587.3318" + x="3118.6919" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + xml:space="preserve"><tspan + style="fill:#000000;fill-opacity:1;stroke-width:0.5" + y="2587.3318" + x="3118.6919" + sodipodi:role="line" + id="tspan3553-1">Shift</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + x="3118.6919" + y="2627.3318" + id="text3559-4"><tspan + id="tspan3557-6" + sodipodi:role="line" + x="3118.6919" + y="2627.3318" + style="fill:#000000;fill-opacity:1;stroke-width:0.5">Enter</tspan></text> + <text + id="text3563-9" + y="2667.3318" + x="3118.6919" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + xml:space="preserve"><tspan + style="fill:#000000;fill-opacity:1;stroke-width:0.5" + y="2667.3318" + x="3118.6919" + sodipodi:role="line" + id="tspan3565-4">[...]</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + x="3118.6919" + y="2707.3318" + id="text3571-2"><tspan + id="tspan3569-2" + sodipodi:role="line" + x="3118.6919" + y="2707.3318" + style="fill:#000000;fill-opacity:1;stroke-width:0.5">Keys</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + x="3304.6919" + y="2707.3318" + id="text33160"><tspan + sodipodi:role="line" + id="tspan33158" + x="3304.6919" + y="2707.3318" + style="fill:#000000;fill-opacity:1;stroke-width:0.5">0 +</tspan></text> + <text + id="text33164" + y="2747.3318" + x="3304.6919" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + xml:space="preserve"><tspan + style="fill:#000000;fill-opacity:1;stroke-width:0.5" + y="2747.3318" + x="3304.6919" + id="tspan33162" + sodipodi:role="line">9 -</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + x="3304.6919" + y="2787.3318" + id="text33168"><tspan + id="tspan33166" + sodipodi:role="line" + x="3304.6919" + y="2787.3318" + style="fill:#000000;fill-opacity:1;stroke-width:0.5">8</tspan></text> + <text + id="text33172" + y="2827.3318" + x="3304.6919" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + xml:space="preserve"><tspan + style="fill:#000000;fill-opacity:1;stroke-width:0.5" + y="2827.3318" + x="3304.6919" + sodipodi:role="line" + id="tspan33170">[...]</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + x="3304.6919" + y="2867.3318" + id="text33176"><tspan + id="tspan33174" + sodipodi:role="line" + x="3304.6919" + y="2867.3318" + style="fill:#000000;fill-opacity:1;stroke-width:0.5">q Q</tspan></text> + <text + id="text33180" + y="2907.3318" + x="3304.6919" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + xml:space="preserve"><tspan + style="fill:#000000;fill-opacity:1;stroke-width:0.5" + y="2907.3318" + x="3304.6919" + sodipodi:role="line" + id="tspan33178">w W</tspan></text> + <path + sodipodi:nodetypes="cccccccccccccccccccc" + inkscape:connector-curvature="0" + d="m 3232.575,3024.1388 h 63.222 m -63.222,-40 h 63.222 m -63.222,-40 h 63.222 m -63.222,80 v -320 m 0,200 h 63.222 m -63.222,-40 h 63.222 m -63.222,-40 h 63.222 m -63.222,-40 h 63.222 m -63.222,-40 h 63.222 m -123.222,-40 h 123.222" + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path33182" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + x="3304.6919" + y="2947.3318" + id="text33187"><tspan + id="tspan33185" + sodipodi:role="line" + x="3304.6919" + y="2947.3318" + style="fill:#000000;fill-opacity:1;stroke-width:0.5">[...]</tspan></text> + <text + id="text33191" + y="2987.3318" + x="3304.6919" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + xml:space="preserve"><tspan + style="fill:#000000;fill-opacity:1;stroke-width:0.5" + y="2987.3318" + x="3304.6919" + sodipodi:role="line" + id="tspan33189">, ;</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + x="3304.6919" + y="3027.3318" + id="text33195"><tspan + id="tspan33193" + sodipodi:role="line" + x="3304.6919" + y="3027.3318" + style="fill:#000000;fill-opacity:1;stroke-width:0.5">. :</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + x="2866.6919" + y="2467.3318" + id="text33199"><tspan + sodipodi:role="line" + id="tspan33197" + x="2866.6919" + y="2467.3318" + style="fill:#000000;fill-opacity:1;stroke-width:0.5">HMI:KeyPad</tspan></text> + <path + inkscape:connector-curvature="0" + id="path33347" + d="m 3046.575,2504.1388 h 63.222" + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + x="3118.6919" + y="2467.3318" + id="text33351"><tspan + sodipodi:role="line" + id="tspan33349" + x="3118.6919" + y="2467.3318" + style="fill:#000000;fill-opacity:1;stroke-width:0.5">Value</tspan></text> + </g> + <g + transform="translate(720)" + id="g33315"> + <path + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 3046.575,2744.1388 v -280" + id="path33331" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + <path + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 3046.575,2704.1388 h 63.222" + id="path33329" + inkscape:connector-curvature="0" /> + <path + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 3046.575,2664.1388 h 63.222" + id="path33327" + inkscape:connector-curvature="0" /> + <path + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 3046.575,2624.1388 h 63.222" + id="path33325" + inkscape:connector-curvature="0" /> + <path + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 3046.575,2584.1388 h 63.222" + id="path33323" + inkscape:connector-curvature="0" /> + <path + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 3046.575,2544.1388 h 63.222" + id="path33321" + inkscape:connector-curvature="0" /> + <path + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 2986.575,2464.1388 h 123.222" + id="path33247" + inkscape:connector-curvature="0" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + x="3118.6919" + y="2507.3318" + id="text33251"><tspan + sodipodi:role="line" + id="tspan33249" + x="3118.6919" + y="2507.3318" + style="fill:#000000;fill-opacity:1;stroke-width:0.5">Info</tspan></text> + <text + id="text33255" + y="2547.3318" + x="3118.6919" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + xml:space="preserve"><tspan + style="fill:#000000;fill-opacity:1;stroke-width:0.5" + y="2547.3318" + x="3118.6919" + id="tspan33253" + sodipodi:role="line">Esc</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + x="3118.6919" + y="2587.3318" + id="text33259"><tspan + id="tspan33257" + sodipodi:role="line" + x="3118.6919" + y="2587.3318" + style="fill:#000000;fill-opacity:1;stroke-width:0.5">Sign</tspan></text> + <text + id="text33263" + y="2627.3318" + x="3118.6919" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + xml:space="preserve"><tspan + style="fill:#000000;fill-opacity:1;stroke-width:0.5" + y="2627.3318" + x="3118.6919" + sodipodi:role="line" + id="tspan33261">Enter</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + x="3118.6919" + y="2707.3318" + id="text33267"><tspan + id="tspan33265" + sodipodi:role="line" + x="3118.6919" + y="2707.3318" + style="fill:#000000;fill-opacity:1;stroke-width:0.5">[...]</tspan></text> + <text + id="text33271" + y="2747.3318" + x="3118.6919" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + xml:space="preserve"><tspan + style="fill:#000000;fill-opacity:1;stroke-width:0.5" + y="2747.3318" + x="3118.6919" + sodipodi:role="line" + id="tspan33269">Keys</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + x="3304.6919" + y="2747.3318" + id="text33279"><tspan + sodipodi:role="line" + x="3304.6919" + y="2747.3318" + style="fill:#000000;fill-opacity:1;stroke-width:0.5" + id="tspan33385">9</tspan></text> + <text + id="text33283" + y="2787.3318" + x="3304.6919" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + xml:space="preserve"><tspan + style="fill:#000000;fill-opacity:1;stroke-width:0.5" + y="2787.3318" + x="3304.6919" + sodipodi:role="line" + id="tspan33281">8</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + x="3304.6919" + y="2827.3318" + id="text33287"><tspan + id="tspan33285" + sodipodi:role="line" + x="3304.6919" + y="2827.3318" + style="fill:#000000;fill-opacity:1;stroke-width:0.5">7</tspan></text> + <text + id="text33291" + y="2867.3318" + x="3304.6919" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + xml:space="preserve"><tspan + style="fill:#000000;fill-opacity:1;stroke-width:0.5" + y="2867.3318" + x="3304.6919" + sodipodi:role="line" + id="tspan33289">6</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + x="3304.6919" + y="2907.3318" + id="text33295"><tspan + id="tspan33293" + sodipodi:role="line" + x="3304.6919" + y="2907.3318" + style="fill:#000000;fill-opacity:1;stroke-width:0.5">5</tspan></text> + <path + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 3232.575,3024.1388 h 63.222" + id="path33377" + inkscape:connector-curvature="0" /> + <path + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 3232.575,2984.1388 h 63.222" + id="path33375" + inkscape:connector-curvature="0" /> + <path + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 3232.575,2944.1388 h 63.222" + id="path33373" + inkscape:connector-curvature="0" /> + <path + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 3232.575,3024.1388 v -280" + id="path33371" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + <path + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 3232.575,2904.1388 h 63.222" + id="path33369" + inkscape:connector-curvature="0" /> + <path + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 3232.575,2864.1388 h 63.222" + id="path33367" + inkscape:connector-curvature="0" /> + <path + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 3232.575,2824.1388 h 63.222" + id="path33365" + inkscape:connector-curvature="0" /> + <path + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 3232.575,2784.1388 h 63.222" + id="path33363" + inkscape:connector-curvature="0" /> + <path + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 3172.575,2744.1388 h 123.222" + id="path33297" + inkscape:connector-curvature="0" /> + <text + id="text33301" + y="2947.3318" + x="3304.6919" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + xml:space="preserve"><tspan + style="fill:#000000;fill-opacity:1;stroke-width:0.5" + y="2947.3318" + x="3304.6919" + sodipodi:role="line" + id="tspan33299">4</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + x="3304.6919" + y="2987.3318" + id="text33305"><tspan + id="tspan33303" + sodipodi:role="line" + x="3304.6919" + y="2987.3318" + style="fill:#000000;fill-opacity:1;stroke-width:0.5">3</tspan></text> + <text + id="text33309" + y="3027.3318" + x="3304.6919" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + xml:space="preserve"><tspan + style="fill:#000000;fill-opacity:1;stroke-width:0.5" + y="3027.3318" + x="3304.6919" + sodipodi:role="line" + id="tspan33307">[...]</tspan></text> + <text + id="text33313" + y="2467.3318" + x="2866.6919" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + xml:space="preserve"><tspan + style="fill:#000000;fill-opacity:1;stroke-width:0.5" + y="2467.3318" + x="2866.6919" + id="tspan33311" + sodipodi:role="line">HMI:KeyPad</tspan></text> + <path + inkscape:connector-curvature="0" + id="path33353" + d="m 3046.575,2504.1388 h 63.222" + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + id="text33357" + y="2467.3318" + x="3118.6919" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + xml:space="preserve"><tspan + style="fill:#000000;fill-opacity:1;stroke-width:0.5" + y="2467.3318" + x="3118.6919" + id="tspan33355" + sodipodi:role="line">Value</tspan></text> + <path + inkscape:connector-curvature="0" + id="path33379" + d="m 3046.575,2744.1388 h 63.222" + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" + x="3118.6919" + y="2667.3318" + id="text33383"><tspan + id="tspan33381" + sodipodi:role="line" + x="3118.6919" + y="2667.3318" + style="fill:#000000;fill-opacity:1;stroke-width:0.5">NumDot</tspan></text> + </g> + </g> + <g + id="g35667"> + <use + inkscape:label="HMI:Page:Slider" + x="0" + y="0" + xlink:href="#g9818" + id="use10529" + transform="translate(1340)" + width="100%" + height="100%" + style="display:inline" /> + <text + id="text10533" + y="3170.3906" + x="2852.8076" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none" + xml:space="preserve"><tspan + y="3170.3906" + x="2852.8076" + id="tspan10531" + sodipodi:role="line">HMI:Slider</tspan><tspan + y="3220.3906" + x="2852.8076" + sodipodi:role="line" + id="tspan31723">HMI:CircularSlider</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#fffffb;fill-opacity:1;stroke:none;stroke-width:0.25" + x="2854.1895" + y="3252.0127" + id="text10537"><tspan + id="tspan10535" + sodipodi:role="line" + x="2854.1895" + y="3252.0127" + style="fill:#fffffb;fill-opacity:1;stroke-width:0.25">TODO</tspan></text> + <path + sodipodi:nodetypes="cccc" + inkscape:connector-curvature="0" + id="rect35600" + d="m 3292.1479,3284.5305 10,35 h -20 z" + style="fill:url(#linearGradient35602);fill-opacity:1" /> + <path + style="fill:url(#linearGradient35607);fill-opacity:1" + d="m 3292.1479,3771.5305 10,-35 h -20 z" + id="path35605" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccc" /> + <path + inkscape:connector-curvature="0" + id="path35649" + d="m 3292.0999,3328.0305 v 400" + style="fill:none;fill-opacity:1;stroke:#464646;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + rx="10" + ry="10" + id="rect35590" + width="20" + height="75" + x="3282.1479" + y="3490.5305" + style="fill:url(#linearGradient35598);fill-opacity:1" /> + </g> + <rect + id="rect47533" + width="46.545795" + height="542.65326" + x="3626.9021" + y="3249.9719" + style="opacity:1;vector-effect:none;fill:#646464;fill-opacity:1;stroke:url(#radialGradient48094);stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <rect + style="fill:#b4b4b4;fill-opacity:1;stroke:url(#radialGradient48061);stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + y="3466.1411" + x="3628.9995" + height="106.85596" + width="42.225544" + id="rect48059" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#f00000;fill-opacity:1;stroke:none" + x="3096.4146" + y="3422.8428" + id="text48098"><tspan + sodipodi:role="line" + id="tspan48096" + x="3096.4146" + y="3422.8428">TO BE REWRITTEN, DO NOT USE</tspan></text> + <g + style="stroke-width:0.35083869" + transform="matrix(0.81491208,0,0,0.81491208,5048.484,991.82998)" + inkscape:label="HMI:DropDown:1:2:3:4:5:6:7:8:9:10:11:12:13:14:15:16:17:18:19:20:21:22:23:24:25:26:27@/SELECTION" + id="g48112"> + <rect + inkscape:label="box" + ry="2.4558709" + rx="2.4558709" + y="923.98993" + x="864.00842" + height="130.9433" + width="391.99988" + id="rect48102" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#53676c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.75419343;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.75419331;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect48104" + width="391.99988" + height="92.71212" + x="864.00842" + y="943.10553" + rx="2.4558709" + ry="2.4558709" + inkscape:label="highlight" /> + <text + inkscape:label="text" + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:80px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#d42aff;fill-opacity:1;stroke:none;stroke-width:0.35083869px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="881.44226" + y="1011.9975" + id="text48108"><tspan + id="tspan48106" + sodipodi:role="line" + x="881.44226" + y="1011.9975" + style="text-align:start;text-anchor:start;fill:#d42aff;stroke-width:0.35083869px">sel_0</tspan></text> + <path + inkscape:label="button" + inkscape:transform-center-y="10.92088" + d="m 1200.5,1018.6835 -18.9155,-32.76262 -18.9155,-32.76264 37.831,0 37.831,0 -18.9155,32.76264 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="false" + sodipodi:arg2="2.6179939" + sodipodi:arg1="1.5707963" + sodipodi:r2="21.841761" + sodipodi:r1="43.683521" + sodipodi:cy="975" + sodipodi:cx="1200.5" + sodipodi:sides="3" + id="path48110" + style="opacity:1;vector-effect:none;fill:#a7a5a6;fill-opacity:1;stroke:none;stroke-width:0.12376806;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + sodipodi:type="star" /> + </g> + <g + id="g48213"> + <use + height="100%" + width="100%" + transform="translate(6700)" + id="use9947-8" + xlink:href="#g9808" + y="0" + x="0" + inkscape:label="HMI:Page:Button" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none" + x="8192.8076" + y="1610.3906" + id="text9951-1"><tspan + sodipodi:role="line" + id="tspan9949-2" + x="8192.8076" + y="1610.3906">HMI:ToggleButton@path</tspan></text> + <text + id="text9957-3" + y="1632.0127" + x="8214.1895" + style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.25" + xml:space="preserve"><tspan + style="stroke-width:0.25" + y="1632.0127" + x="8214.1895" + sodipodi:role="line" + id="tspan9955-3">TODO</tspan></text> + </g> + <g + id="g48220"> + <use + height="100%" + width="100%" + transform="translate(6700)" + id="use9961-6" + xlink:href="#g9813" + y="0" + x="0" + inkscape:label="HMI:Page:ForEach" /> + <text + id="text9965-8" + y="2390.4241" + x="8192.2148" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none" + xml:space="preserve"><tspan + y="2390.4241" + x="8192.2148" + id="tspan9963-8" + sodipodi:role="line">HMI:Multistate@path</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.25" + x="8213.5967" + y="2412.0461" + id="text9971-3"><tspan + id="tspan9969-8" + sodipodi:role="line" + x="8213.5967" + y="2412.0461" + style="stroke-width:0.25">TODO</tspan></text> + </g> + <g + id="g48227"> + <use + height="100%" + width="100%" + transform="translate(6700)" + id="use9975-8" + xlink:href="#g9818" + y="0" + x="0" + inkscape:label="HMI:Page:JsonTable" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:1.25;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + x="8192.2148" + y="3170.4241" + id="text35647"><tspan + sodipodi:role="line" + id="tspan35645" + x="8192.2148" + y="3170.4241">HMI:CustomHtml@path</tspan></text> + <text + id="text9983-0" + y="3192.0127" + x="8214.1895" + style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#fffffb;fill-opacity:1;stroke:none;stroke-width:0.25" + xml:space="preserve"><tspan + style="fill:#fffffb;fill-opacity:1;stroke-width:0.25" + y="3192.0127" + x="8214.1895" + sodipodi:role="line" + id="tspan9981-4">TODO</tspan></text> + </g> +</svg> diff -r 2b00f90c6888 -r d5b2369a103f util/ProcessLogger.py --- a/util/ProcessLogger.py Fri Apr 09 09:45:28 2021 +0200 +++ b/util/ProcessLogger.py Fri Apr 09 09:47:06 2021 +0200 @@ -28,7 +28,8 @@ import sys import subprocess import ctypes -from threading import Timer, Lock, Thread, Semaphore +import time +from threading import Timer, Lock, Thread, Semaphore, Condition import signal _debug = os.path.exists("BEREMIZ_DEBUG") @@ -154,6 +155,10 @@ self.errt.start() self.startsem.release() + self.spinwakeuplock = Lock() + self.spinwakeupcond = Condition(self.spinwakeuplock) + self.spinwakeuptimer = None + def output(self, v): if v and self.output_encoding: v = v.decode(self.output_encoding) @@ -192,6 +197,7 @@ self.finish_callback(self, ecode, pid) self.errt.join() self.finishsem.release() + self.spinwakeup() def kill(self, gently=True): # avoid running kill before start is finished @@ -222,7 +228,25 @@ if not self.outt.finished and self.kill_it: self.kill() self.finishsem.release() + self.spinwakeup() + + def spinwakeup(self): + with self.spinwakeuplock: + if self.spinwakeuptimer is not None: + self.spinwakeuptimer.cancel() + self.spinwakeuptimer = None + self.spinwakeupcond.notify() def spin(self): - self.finishsem.acquire() + start = time.time() + if self.logger: + while not self.finishsem.acquire(0): + with self.spinwakeuplock: + self.spinwakeuptimer = Timer(0.1, self.spinwakeup) + self.spinwakeuptimer.start() + self.spinwakeupcond.wait() + self.logger.progress("%.3fs"%(time.time() - start)) + else: + self.finishsem.acquire() + return [self.exitcode, "".join(self.outdata), "".join(self.errdata)]