beremiz

Parents c325749651d1
Children cf42c3dbdd5c
Extend HMI:JsonTable, create Edit CSV POU, create example, add some doc (#41)

* Extend Jsontable widget, create Edit CSV POU, create example for both

* Add doc for HMI:Image and HMI:JsonTable

* Expand example to include HMI:Image
--- a/doc/svghmi/widgets.rst Thu Nov 28 14:46:50 2024 +0100
+++ b/doc/svghmi/widgets.rst Mon Dec 02 11:33:19 2024 +0100
@@ -50,13 +50,39 @@
-----------
+HMI:Image
+---------
+| It is an SVG Image element with label
+| ``HMI:Image:variable``
+| where ``variable`` contains the HTTP GET path to the image it should display.
+
+
HMI:Input
---------
-HMI:Jsontable
+HMI:JsonTable
-------------
-
+| It is a SVG (group) element with label
+| ``HMI:JsonTable:path@notify_var@range_var@position_var@visible_var@filter_var``
+| where:
+* ``path`` is HTTP POST path used to fetch JSON list response
+* ``range_var`` is a variable containing number of elements in a list
+* ``position_var`` is a variable containing index of the first element from the list shown in the table
+* ``visible_var`` is a variable with number of elements to be displayed in the table
+* ``filter_var`` is a variable containing the string which is posted in a request for JSON response, and it's used to filter the results
+| On render request, the widget does a POST request to the path. That request contains all the variables listed above.
+| Handler for the request should be written in such manner that it returns a JSON list containing defined number of elements.
+| Elements are objects with keys and values defined by a user.
+| SVG element itself contains another element group ``data``. All of the elements in that group are also groups, with name ``[i]`` where ``i`` goes from 0 to ``visible_var - 1``. Only the last one is actually created, others are just copy of it.
+| Elements from ``data`` can be placed in such manner to depict table rows.
+| Elements in ``[i]`` can emulate columns. They can be:
+* HMI:TextStyleList (label dictates the style and text content)
+* Image (label dictates path to the image)
+* Other SVG elements
+| Any of the above elements can have label with ``onClick[acknowledge]=var`` which means that on a click on such element, the same POST request is invoked, but among ``options`` posted now there is a variable ``onClick[acknowledge]`` and its value is ``var``
+| Beside ``data`` element, there can also be ``action_reset`` group element with similar behavior as stated above: click invokes POST with ``action_reset`` among ``options``.
+| If it's needed to display images in a table, and those images should be loaded dynamically, one may use GET handler to load and return appropriate image.
HMI:Jump
--------
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/exemples/svghmi_csv_json_img_table/beremiz.xml Mon Dec 02 11:33:19 2024 +0100
@@ -0,0 +1,5 @@
+<?xml version='1.0' encoding='utf-8'?>
+<BeremizRoot xmlns:xsd="http://www.w3.org/2001/XMLSchema" URI_location="LOCAL://">
+ <TargetType/>
+ <Libraries Enable_SVGHMI_Library="true"/>
+</BeremizRoot>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/exemples/svghmi_csv_json_img_table/plc.xml Mon Dec 02 11:33:19 2024 +0100
@@ -0,0 +1,337 @@
+<?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="2024-11-18T09:37:56">
+ <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="csv_read_by_int0">
+ <type>
+ <derived name="csv_read_by_int"/>
+ </type>
+ </variable>
+ <variable name="CSV_ROWIDX">
+ <type>
+ <derived name="HMI_INT"/>
+ </type>
+ <initialValue>
+ <simpleValue value="1"/>
+ </initialValue>
+ </variable>
+ <variable name="CSV_COLIDX">
+ <type>
+ <derived name="HMI_INT"/>
+ </type>
+ <initialValue>
+ <simpleValue value="1"/>
+ </initialValue>
+ </variable>
+ <variable name="SAVE">
+ <type>
+ <derived name="HMI_INT"/>
+ </type>
+ <initialValue>
+ <simpleValue value="0"/>
+ </initialValue>
+ </variable>
+ <variable name="CSV_ACK">
+ <type>
+ <derived name="HMI_BOOL"/>
+ </type>
+ </variable>
+ <variable name="SEC_ACK">
+ <type>
+ <derived name="HMI_BOOL"/>
+ </type>
+ </variable>
+ <variable name="CSV_RES">
+ <type>
+ <derived name="HMI_STRING"/>
+ </type>
+ </variable>
+ <variable name="SEC_RES">
+ <type>
+ <derived name="HMI_STRING"/>
+ </type>
+ </variable>
+ </localVars>
+ <externalVars>
+ <variable name="FILENAME">
+ <type>
+ <derived name="HMI_STRING"/>
+ </type>
+ </variable>
+ </externalVars>
+ <localVars>
+ <variable name="CONTENT">
+ <type>
+ <derived name="HMI_STRING"/>
+ </type>
+ </variable>
+ <variable name="csv_write_by_int0">
+ <type>
+ <derived name="csv_write_by_int"/>
+ </type>
+ </variable>
+ </localVars>
+ </interface>
+ <body>
+ <FBD>
+ <inVariable localId="4" executionOrderId="0" height="30" width="110" negated="false">
+ <position x="35" y="55"/>
+ <connectionPointOut>
+ <relPosition x="110" y="15"/>
+ </connectionPointOut>
+ <expression>FILENAME</expression>
+ </inVariable>
+ <inVariable localId="5" executionOrderId="0" height="27" width="110" negated="false">
+ <position x="35" y="85"/>
+ <connectionPointOut>
+ <relPosition x="110" y="15"/>
+ </connectionPointOut>
+ <expression>CSV_ROWIDX</expression>
+ </inVariable>
+ <inVariable localId="6" executionOrderId="0" height="27" width="110" negated="false">
+ <position x="35" y="110"/>
+ <connectionPointOut>
+ <relPosition x="110" y="15"/>
+ </connectionPointOut>
+ <expression>CSV_COLIDX</expression>
+ </inVariable>
+ <block localId="2" typeName="csv_read_by_int" instanceName="csv_read_by_int0" executionOrderId="0" height="100" width="155">
+ <position x="205" y="35"/>
+ <inputVariables>
+ <variable formalParameter="FILE_NAME">
+ <connectionPointIn>
+ <relPosition x="0" y="35"/>
+ <connection refLocalId="4">
+ <position x="205" y="70"/>
+ <position x="145" y="70"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="ROW">
+ <connectionPointIn>
+ <relPosition x="0" y="60"/>
+ <connection refLocalId="5">
+ <position x="205" y="95"/>
+ <position x="175" y="95"/>
+ <position x="175" y="100"/>
+ <position x="145" y="100"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="COLUMN">
+ <connectionPointIn>
+ <relPosition x="0" y="85"/>
+ <connection refLocalId="6">
+ <position x="205" y="120"/>
+ <position x="175" y="120"/>
+ <position x="175" y="125"/>
+ <position x="145" y="125"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="ACK">
+ <connectionPointOut>
+ <relPosition x="155" y="35"/>
+ </connectionPointOut>
+ </variable>
+ <variable formalParameter="RESULT">
+ <connectionPointOut>
+ <relPosition x="155" y="60"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <outVariable localId="11" executionOrderId="0" height="27" width="82" negated="false">
+ <position x="400" y="60"/>
+ <connectionPointIn>
+ <relPosition x="0" y="15"/>
+ <connection refLocalId="2" formalParameter="ACK">
+ <position x="400" y="75"/>
+ <position x="380" y="75"/>
+ <position x="380" y="70"/>
+ <position x="360" y="70"/>
+ </connection>
+ </connectionPointIn>
+ <expression>CSV_ACK</expression>
+ </outVariable>
+ <outVariable localId="10" executionOrderId="0" height="27" width="82" negated="false">
+ <position x="400" y="85"/>
+ <connectionPointIn>
+ <relPosition x="0" y="15"/>
+ <connection refLocalId="2" formalParameter="RESULT">
+ <position x="400" y="100"/>
+ <position x="380" y="100"/>
+ <position x="380" y="95"/>
+ <position x="360" y="95"/>
+ </connection>
+ </connectionPointIn>
+ <expression>CSV_RES</expression>
+ </outVariable>
+ <block localId="12" typeName="csv_write_by_int" instanceName="csv_write_by_int0" executionOrderId="0" width="140" height="120">
+ <position x="240" y="195"/>
+ <inputVariables>
+ <variable formalParameter="FILE_NAME">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="13">
+ <position x="240" y="225"/>
+ <position x="185" y="225"/>
+ <position x="185" y="175"/>
+ <position x="150" y="175"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="ROW">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="14">
+ <position x="240" y="245"/>
+ <position x="177" y="245"/>
+ <position x="177" y="225"/>
+ <position x="115" y="225"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="COLUMN">
+ <connectionPointIn>
+ <relPosition x="0" y="70"/>
+ <connection refLocalId="15">
+ <position x="240" y="265"/>
+ <position x="115" y="265"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="CONTENT">
+ <connectionPointIn>
+ <relPosition x="0" y="90"/>
+ <connection refLocalId="16">
+ <position x="240" y="285"/>
+ <position x="190" y="285"/>
+ <position x="190" y="305"/>
+ <position x="115" y="305"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="SAVE">
+ <connectionPointIn>
+ <relPosition x="0" y="110"/>
+ <connection refLocalId="17">
+ <position x="240" y="305"/>
+ <position x="215" y="305"/>
+ <position x="215" y="335"/>
+ <position x="185" y="335"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="ACK">
+ <connectionPointOut>
+ <relPosition x="140" y="30"/>
+ </connectionPointOut>
+ </variable>
+ <variable formalParameter="RESULT">
+ <connectionPointOut>
+ <relPosition x="140" y="50"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="13" executionOrderId="0" width="75" height="30" negated="false">
+ <position x="75" y="160"/>
+ <connectionPointOut>
+ <relPosition x="75" y="15"/>
+ </connectionPointOut>
+ <expression>FILENAME</expression>
+ </inVariable>
+ <inVariable localId="14" executionOrderId="0" width="90" height="30" negated="false">
+ <position x="25" y="210"/>
+ <connectionPointOut>
+ <relPosition x="90" y="15"/>
+ </connectionPointOut>
+ <expression>CSV_ROWIDX</expression>
+ </inVariable>
+ <inVariable localId="15" executionOrderId="0" width="90" height="30" negated="false">
+ <position x="25" y="250"/>
+ <connectionPointOut>
+ <relPosition x="90" y="15"/>
+ </connectionPointOut>
+ <expression>CSV_COLIDX</expression>
+ </inVariable>
+ <inVariable localId="16" executionOrderId="0" width="70" height="30" negated="false">
+ <position x="45" y="290"/>
+ <connectionPointOut>
+ <relPosition x="70" y="15"/>
+ </connectionPointOut>
+ <expression>CONTENT</expression>
+ </inVariable>
+ <inVariable localId="17" executionOrderId="0" width="45" height="30" negated="false">
+ <position x="140" y="320"/>
+ <connectionPointOut>
+ <relPosition x="45" y="15"/>
+ </connectionPointOut>
+ <expression>SAVE</expression>
+ </inVariable>
+ <outVariable localId="18" executionOrderId="0" width="70" height="30" negated="false">
+ <position x="435" y="210"/>
+ <connectionPointIn>
+ <relPosition x="0" y="15"/>
+ <connection refLocalId="12" formalParameter="ACK">
+ <position x="435" y="225"/>
+ <position x="380" y="225"/>
+ </connection>
+ </connectionPointIn>
+ <expression>SEC_ACK</expression>
+ </outVariable>
+ <outVariable localId="19" executionOrderId="0" width="70" height="30" negated="false">
+ <position x="435" y="240"/>
+ <connectionPointIn>
+ <relPosition x="0" y="15"/>
+ <connection refLocalId="12" formalParameter="RESULT">
+ <position x="435" y="255"/>
+ <position x="407" y="255"/>
+ <position x="407" y="245"/>
+ <position x="380" y="245"/>
+ </connection>
+ </connectionPointIn>
+ <expression>SEC_RES</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>
Binary file exemples/svghmi_csv_json_img_table/project_files/beremiz.png has changed
Binary file exemples/svghmi_csv_json_img_table/project_files/file.png has changed
Binary file exemples/svghmi_csv_json_img_table/project_files/folder.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/exemples/svghmi_csv_json_img_table/project_files/test1.csv Mon Dec 02 11:33:19 2024 +0100
@@ -0,0 +1,4 @@
+id,value
+1,First
+2,Second
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/exemples/svghmi_csv_json_img_table/project_files/test2.csv Mon Dec 02 11:33:19 2024 +0100
@@ -0,0 +1,4 @@
+id,name,value
+1,x,15
+2,11,11
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/exemples/svghmi_csv_json_img_table/py_ext_0@py_ext/baseconfnode.xml Mon Dec 02 11:33:19 2024 +0100
@@ -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"/>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/exemples/svghmi_csv_json_img_table/py_ext_0@py_ext/pyfile.xml Mon Dec 02 11:33:19 2024 +0100
@@ -0,0 +1,144 @@
+<?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="FileNotify" type="HMI_INT"/>
+ <variable name="CurrentPath" type="HMI_STRING" initial="..."/>
+ <variable name="FileName" type="HMI_STRING"/>
+ </variables>
+ <globals>
+ <xhtml:p><![CDATA[
+from twisted.web.resource import Resource
+from os import getcwd, listdir
+from os.path import dirname, isfile, join
+import collections, json
+
+
+class FilesJsonResource(Resource):
+ image_cache = {}
+
+ def render_GET(self, request):
+ request.setHeader('content-type', 'image/png')
+ img_name = request.args[b'name'][0].decode('utf-8')
+ p = getcwd() + '/' + img_name
+ if p not in self.image_cache:
+ with open(p, 'rb') as image_file:
+ img_bytes = image_file.read()
+ self.image_cache[p] = img_bytes
+ else:
+ img_bytes = self.image_cache[p]
+ return img_bytes
+
+
+ def render_POST(self, request):
+ newstr = request.content.getvalue()
+ newdata = json.loads(newstr)
+ args = newdata['args']
+ range_feedback = newdata['range']
+ slider_position = newdata['position']
+ visible = newdata['visible']
+ extra = newdata['extra']
+ options = newdata['options']
+
+ path = PLCGlobals.CurrentPath
+ if path == '...':
+ PLCGlobals.CurrentPath = path = getcwd()
+
+ if len(options) == 1 :
+ action, = options
+ if action == 'action_reset':
+ PLCGlobals.CurrentPath = path = getcwd()
+ elif len(options) == 2 :
+ action, sent_path = options
+ if action == 'onClick[acknowledge]':
+ if sent_path.endswith('.csv'):
+ PLCGlobals.FileName = sent_path
+ else:
+ PLCGlobals.CurrentPath = path = sent_path
+
+ ld = listdir(path)
+ ld.sort()
+
+ if path != '/':
+ FileList = [
+ {
+ 'name': '..',
+ 'path': dirname(path),
+ 'type': 'folder',
+ 'status': 'active',
+ 'thumbnail': '/files?name=folder.png'
+ }
+ ]
+ else:
+ FileList = []
+
+ FileList.extend([
+ {
+ 'name': f,
+ 'path': join(path, f),
+ 'type': 'folder',
+ 'status': 'active',
+ 'thumbnail': '/files?name=folder.png'
+ }
+ for f in ld
+ if not (isfile(join(path, f))
+ or f.startswith("."))
+ ])
+ FileList.extend([
+ {
+ 'name': f,
+ 'path': join(path, f),
+ 'type': 'file',
+ 'status': 'active',
+ 'thumbnail': '/files?name=file.png'
+ }
+ for f in ld
+ if isfile(join(path, f))
+ and f.endswith(".csv")
+ ])
+
+ answer = self.renderTable(
+ FileList, range_feedback, slider_position, visible, extra
+ )
+ janswer = json.dumps(answer)
+ return janswer.encode()
+
+ def renderTable(self, FileList, old_range, old_position, visible, extra):
+ if len(extra) > 0 and extra[0] != "":
+ fFiles = [fl for fl in FileList if extra[0] in fl]
+ else:
+ fFiles = FileList[:]
+ new_range = len(fFiles)
+ 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_files = []
+ for desc in fFiles[new_position:new_position + new_visible]:
+ visible_files.append(desc)
+
+ return new_range, new_position, visible_files
+
+
+]]></xhtml:p>
+ </globals>
+ <init>
+ <xhtml:p><![CDATA[
+]]></xhtml:p>
+ </init>
+ <cleanup>
+ <xhtml:p><![CDATA[
+]]></xhtml:p>
+ </cleanup>
+ <start>
+ <xhtml:p><![CDATA[
+
+AddPathToSVGHMIServers(b"files", FilesJsonResource)
+
+
+]]></xhtml:p>
+ </start>
+ <stop>
+ <xhtml:p><![CDATA[
+]]></xhtml:p>
+ </stop>
+</PyFile>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/exemples/svghmi_csv_json_img_table/svghmi_0@svghmi/baseconfnode.xml Mon Dec 02 11:33:19 2024 +0100
@@ -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"/>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/exemples/svghmi_csv_json_img_table/svghmi_0@svghmi/confnode.xml Mon Dec 02 11:33:19 2024 +0100
@@ -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} !" WatchdogInitial="10" WatchdogInterval="5" EnableWatchdog="true" Path="{name}"/>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/exemples/svghmi_csv_json_img_table/svghmi_0@svghmi/svghmi.svg Mon Dec 02 11:33:19 2024 +0100
@@ -0,0 +1,1802 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
+ sodipodi:docname="svghmi.svg"
+ id="hmi0"
+ version="1.1"
+ viewBox="0 0 1280 720"
+ height="720"
+ width="1280"
+ xml:space="preserve"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"><script
+ id="script1244">
+hmi_widgets[&quot;g443-3&quot;].off_action = function(){
+ console.log(&quot;Hello from Inkscape&quot;);
+ PushButtonWidget.prototype.off_action.call(this);
+ fading_page_switch();
+ console.log(&quot;Bye from Inkscape&quot;);
+}</script><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" /></cc:Work></rdf:RDF></metadata><defs
+ id="defs2"><linearGradient
+ id="linearGradient34303"
+ inkscape:swatch="solid"><stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop34301" /></linearGradient><linearGradient
+ id="linearGradient20537"
+ inkscape:swatch="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><clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath1364"><g
+ id="g1368"><g
+ inkscape:label="HMI:List"
+ id="use1366"
+ clip-path="url(#clipPath1364)"
+ transform="matrix(0.749317,0,0,0.76861649,240.55429,-46.943052)"><rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:3.91658;stroke-dasharray:none;stroke-opacity:1"
+ id="rect6100"
+ width="47.283981"
+ height="27.351238"
+ x="961.48004"
+ y="-194.08714"
+ inkscape:label="folder" /><rect
+ style="fill:#ffff00;fill-opacity:1;stroke:#000000;stroke-width:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect6102"
+ width="28.323242"
+ height="41.793102"
+ x="970.26837"
+ y="-200.79591"
+ inkscape:label="file" /></g></g></clipPath></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.80184806"
+ inkscape:cx="612.33546"
+ inkscape:cy="267.50704"
+ inkscape:window-width="1854"
+ inkscape:window-height="1011"
+ inkscape:window-x="0"
+ 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"
+ inkscape:pagecheckerboard="0"
+ fit-margin-top="0"
+ fit-margin-left="0"
+ fit-margin-right="0"
+ fit-margin-bottom="0"
+ inkscape:showpageshadow="0"
+ inkscape:deskcolor="#505050" /><g
+ inkscape:label="HMI:Keypad:HMI_INT:HMI_REAL"
+ id="g2432"
+ style="fill-rule:evenodd;stroke-width:0.476314"
+ transform="matrix(3.3549332,0,0,3.14525,-181.8746,1576.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.16777;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray: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.0764px;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.47691px;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.47691px"
+ y="37.408375"
+ x="72.50132"
+ id="tspan2428"
+ sodipodi:role="line">number</tspan></text><g
+ style="fill-rule:evenodd;stroke-width:0.135852"
+ 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.100744;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: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 -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.135852"
+ inkscape:label="Keys"
+ id="g4993"
+ transform="matrix(1.6700128,0,0,1.6700128,-826.83854,-145.60855)"><g
+ style="stroke-width:0.135852"
+ 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.100744;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.28804px;font-family:Arial;fill:#2b2828;stroke-width:0.10515"
+ id="text331"
+ y="129.38269"
+ x="636.4165"
+ transform="scale(1.0007154,0.99928514)">7</text></g><g
+ style="stroke-width:0.135852"
+ 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.100744;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.28804px;font-family:Arial;fill:#2b2828;stroke-width:0.10515"
+ id="text335"
+ y="154.10822"
+ x="636.4165"
+ transform="scale(1.0007154,0.99928514)">4</text></g><g
+ style="stroke-width:0.135852"
+ 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.100744;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.28804px;font-family:Arial;fill:#2b2828;stroke-width:0.10515"
+ id="text339"
+ y="179.82285"
+ x="636.4165"
+ transform="scale(1.0007154,0.99928514)">1</text></g><g
+ style="stroke-width:0.135852"
+ 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.100744;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.28804px;font-family:Arial;fill:#2b2828;stroke-width:0.10515"
+ id="text347"
+ y="129.38269"
+ x="667.07562"
+ transform="scale(1.0007154,0.99928514)">8</text></g><g
+ style="stroke-width:0.135852"
+ 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.100744;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.28804px;font-family:Arial;fill:#2b2828;stroke-width:0.10515"
+ id="text351"
+ y="154.10822"
+ x="667.07562"
+ transform="scale(1.0007154,0.99928514)">5</text></g><g
+ style="stroke-width:0.135852"
+ 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.100744;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.28804px;font-family:Arial;fill:#2b2828;stroke-width:0.10515"
+ id="text355"
+ y="179.82285"
+ x="667.07562"
+ transform="scale(1.0007154,0.99928514)">2</text></g><g
+ style="stroke-width:0.135852"
+ 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.100744;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.28804px;font-family:Arial;fill:#2b2828;stroke-width:0.10515"
+ id="text363"
+ y="129.38269"
+ x="695.75708"
+ transform="scale(1.0007154,0.99928514)">9</text></g><g
+ style="stroke-width:0.135852"
+ 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.100744;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.28804px;font-family:Arial;fill:#2b2828;stroke-width:0.10515"
+ id="text367"
+ y="154.10822"
+ x="695.75708"
+ transform="scale(1.0007154,0.99928514)">6</text></g><g
+ style="stroke-width:0.135852"
+ 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.100744;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.28804px;font-family:Arial;fill:#2b2828;stroke-width:0.10515"
+ id="text371"
+ y="179.82285"
+ x="695.75708"
+ transform="scale(1.0007154,0.99928514)">3</text></g><g
+ style="stroke-width:0.135852"
+ 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.100744;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.28804px;font-family:Arial;fill:#2b2828;stroke-width:0.10515"
+ 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.168243;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.6388px;font-family:Arial;fill:#ffffff;fill-rule:evenodd;stroke-width:0.368668"
+ 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.168243;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.135852"
+ 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.100744;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.28804px;font-family:Arial;fill:#2b2828;stroke-width:0.10515"
+ 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.3138px;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.307844px;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.307844px">information</tspan></text><g
+ transform="matrix(1.6700128,0,0,1.6700128,-826.83854,-145.60856)"
+ style="fill-rule:evenodd;stroke-width:0.135852"
+ 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.100744;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.96603px;font-family:Arial;fill:#2b2828;stroke-width:0.10515"
+ 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.8746,796.0198)"
+ style="fill-rule:evenodd;stroke-width:0.476314"
+ 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.16777;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray: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.168243;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.476314"
+ transform="translate(0,-19.076386)"><g
+ id="g4283"
+ inkscape:label="q Q"
+ style="stroke-width:0.476314"
+ transform="translate(0,-9.5381931)"><path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;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.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668"
+ transform="scale(1.0007154,0.99928514)">Q</text></g><g
+ id="g4337"
+ inkscape:label="w W"
+ style="stroke-width:0.476314"
+ transform="translate(0,-9.5381931)"><path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;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.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668"
+ transform="scale(1.0007154,0.99928514)">W</text></g><g
+ id="g4332"
+ inkscape:label="e E"
+ style="stroke-width:0.476314"
+ transform="translate(0,-9.5381931)"><path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;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.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668"
+ transform="scale(1.0007154,0.99928514)">E</text></g><g
+ id="g4326"
+ inkscape:label="r R"
+ style="stroke-width:0.476314"
+ transform="translate(0,-9.5381931)"><path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;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.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668"
+ transform="scale(1.0007154,0.99928514)">R</text></g><g
+ id="g4321"
+ inkscape:label="t T"
+ style="stroke-width:0.476314"
+ transform="translate(0,-9.5381931)"><path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;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.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668"
+ transform="scale(1.0007154,0.99928514)">T</text></g><g
+ id="g4316"
+ inkscape:label="y Y"
+ style="stroke-width:0.476314"
+ transform="translate(0,-9.5381931)"><path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;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.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668"
+ transform="scale(1.0007154,0.99928514)">Y</text></g><g
+ id="g4311"
+ inkscape:label="u U"
+ style="stroke-width:0.476314"
+ transform="translate(0,-9.5381931)"><path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;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.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668"
+ transform="scale(1.0007154,0.99928514)">U</text></g><g
+ id="g4306"
+ inkscape:label="i I"
+ style="stroke-width:0.476314"
+ transform="translate(0,-9.5381931)"><path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;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.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668"
+ transform="scale(1.0007154,0.99928514)">I</text></g><g
+ id="g4301"
+ inkscape:label="o O"
+ style="stroke-width:0.476314"
+ transform="translate(0,-9.5381931)"><path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;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.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668"
+ transform="scale(1.0007154,0.99928514)">O</text></g><g
+ id="g4296"
+ inkscape:label="p P"
+ style="stroke-width:0.476314"
+ transform="translate(0,-9.5381931)"><path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;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.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668"
+ transform="scale(1.0007154,0.99928514)">P</text></g><g
+ style="fill-rule:evenodd;stroke-width:0.476314"
+ 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.168243;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.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668"
+ 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.476314"
+ 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.168243;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.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668"
+ 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.476314"
+ 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.168243;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.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668"
+ 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.476314"
+ 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.168243;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.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668"
+ 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.476314"
+ 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.168243;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.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668"
+ 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.476314"
+ 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.168243;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.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668"
+ 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.476314"
+ 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.168243;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.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668"
+ 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.476314"
+ 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.168243;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.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668"
+ 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.476314"
+ 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.168243;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.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668"
+ 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.476314"
+ 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.168243;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.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668"
+ 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.476314"
+ 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.168243;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.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668"
+ 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.476314"
+ 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.168243;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.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668"
+ 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.476314"
+ 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.168243;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.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668"
+ 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.476314"
+ 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.168243;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.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668"
+ 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.476314"
+ 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.168243;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.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668"
+ 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.476314"
+ 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.168243;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.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668"
+ 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.476314"
+ 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.168243;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.28804px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.368668"
+ 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.28804px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.368668"
+ transform="scale(1.0007154,0.99928512)">:</text></g><g
+ id="g4813"
+ inkscape:label=", ;"
+ style="stroke-width:0.476314"
+ 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.168243;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.28804px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.368668"
+ id="text727"
+ y="181.64532"
+ x="330.00806"
+ transform="scale(1.0007154,0.99928512)">;</text><text
+ style="font-weight:normal;font-size:9.28804px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.368668"
+ y="189.66107"
+ x="330.00806"
+ transform="scale(1.0007154,0.99928512)"
+ id="text4826">,</text></g><g
+ style="stroke-width:0.476314"
+ 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.168243;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.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668"
+ id="text2841"
+ y="138.28395"
+ x="101.07153"
+ transform="scale(1.0007154,0.99928513)">1</text></g><g
+ style="stroke-width:0.476314"
+ 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.168243;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.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668"
+ 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.476314"
+ 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.168243;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.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668"
+ 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.168243;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.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668"
+ 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.168243;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.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668"
+ 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.168243;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.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668"
+ 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.168243;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.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668"
+ 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.168243;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.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668"
+ 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.168243;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.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668"
+ 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.28804px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.368668">-</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.168243;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.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668"
+ 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.28804px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.368668"
+ 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.476314"><path
+ style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.168243;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.37966px;font-family:Arial;fill:#ffffff;fill-rule:evenodd;stroke-width:0.368668"
+ id="text469"
+ y="130.02028"
+ x="59.288635">Esc</text></g><g
+ inkscape:label="Enter"
+ id="g4291"
+ style="stroke-width:0.476314"
+ 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.168243;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.476314"
+ 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.168243;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.476314"
+ 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.168243;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.66234px;font-family:Arial;fill:#2b2828;stroke-width:0.368668"
+ transform="scale(1.0007154,0.99928515)">Caps</text><text
+ x="69.789322"
+ y="166.5585"
+ id="text940"
+ style="font-weight:normal;font-size:8.66234px;font-family:Arial;fill:#2b2828;stroke-width:0.368668"
+ transform="scale(1.0007154,0.99928515)">Lock</text></g><g
+ transform="translate(0,-19.076386)"
+ style="fill-rule:evenodd;stroke-width:0.476314"
+ 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.168243;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.66234px;font-family:Arial;fill:#ffffff;stroke-width:0.368668"
+ id="text647"
+ y="156.71973"
+ x="69.789322">Caps</text><text
+ transform="scale(1.0007154,0.99928515)"
+ style="font-weight:normal;font-size:8.66234px;font-family:Arial;fill:#ffffff;stroke-width:0.368668"
+ 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.0764px;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.47691px;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.47691px">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.168243;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.92099px;font-family:Arial;fill:#2b2828;stroke-width:0.368668"
+ 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.168243;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.92099px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.368668"
+ 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.168243;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.92099px;font-family:Arial;fill:#ffffff;stroke-width:0.368668">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.168243;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.92099px;font-family:Arial;fill:#ffffff;fill-rule:evenodd;stroke-width:0.368668"
+ 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.3138px;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.307844px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="Info"><tspan
+ style="stroke-width:0.307844px"
+ y="12.333657"
+ x="252.9579"
+ id="tspan469"
+ sodipodi:role="line">information</tspan></text></g><text
+ xml:space="preserve"
+ style="font-size:23.5967px;line-height:1.25;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;stroke-width:0.589932"
+ x="1164.7662"
+ y="-247.14342"
+ id="text8519"><tspan
+ sodipodi:role="line"
+ id="tspan8517"
+ x="1164.7662"
+ y="-247.14342"
+ style="text-align:center;text-anchor:middle;stroke-width:0.589932">Lists of items</tspan><tspan
+ sodipodi:role="line"
+ x="1164.7662"
+ y="-217.64754"
+ style="text-align:center;text-anchor:middle;stroke-width:0.589932"
+ id="tspan8889">HMI:TextStylList</tspan></text><text
+ xml:space="preserve"
+ style="font-size:23.5967px;line-height:1.25;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;stroke-width:0.589932"
+ x="914.47473"
+ y="-246.71776"
+ id="text8519-3"><tspan
+ sodipodi:role="line"
+ id="tspan8517-6"
+ x="914.47473"
+ y="-246.71776"
+ style="text-align:center;text-anchor:middle;stroke-width:0.589932">Lists of items</tspan><tspan
+ sodipodi:role="line"
+ x="914.47473"
+ y="-217.22188"
+ style="text-align:center;text-anchor:middle;stroke-width:0.589932"
+ id="tspan8889-7">HMI:List</tspan></text><rect
+ y="-0.5992012"
+ x="-0.59920174"
+ height="720"
+ width="1280"
+ id="rect2868"
+ style="color:#000000;font-variation-settings:normal;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.544984;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;marker:none;stop-color:#000000;stop-opacity:1"
+ inkscape:label="HMI:Page:Home" /><image
+ width="30"
+ height="25"
+ preserveAspectRatio="none"
+ xlink:href="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEB AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAGyAzQDASIA AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3 ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3 uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD+7Ik5 PJ6nufWkyfU/maG6n6n+dJQAuT6n8zRk+p/M0lFAC5PqfzNGT6n8zSUUALk+p/M0ZPqfzNJRQAuT 6n8zRk+p/M0lFAC5PqfzNGT6n8zSUUALk+p/M0ZPqfzNJRQAuT6n8zRk+p/M0lFAC5PqfzNGT6n8 zSUUALk+p/M0ZPqfzNJRQAuT6n8zRk+p/M0lFAC5PqfzNGT6n8zSUUALk+p/M0ZPqfzNJRQAuT6n 8zRk+p/M0lFAC5PqfzNGT6n8zSUUALk+p/M0ZPqfzNJRQAuT6n8zRk+p/M0lFAC5PqfzNGT6n8zS UUALk+p/M0ZPqfzNJRQAuT6n8zRk+p/M0lFAC5PqfzNGT6n8zSUUALk+p/M0ZPqfzNJRQAuT6n8z Rk+p/M0lFAC5PqfzNGT6n8zSUUALk+p/M0ZPqfzNJRQAuT6n8zRk+p/M0lFAC5PqfzNGT6n8zSUU ALk+p/M0ZPqfzNJRQAuT6n8zRk+p/M0lFAC5PqfzNGT6n8zSUUALk+p/M0ZPqfzNJRQAuT6n8zRk +p/M0lFAC5PqfzNGT6n8zSUUALk+p/M0ZPqfzNJRQAuT6n8zRk+p/M0lFAC5PqfzNGT6n8zSUUAL k+p/M0ZPqfzNJRQAuT6n8zRk+p/M0lFAC5PqfzNGT6n8zSUUALk+p/M0ZPqfzNJRQAuT6n8zRk+p /M0lFAC5PqfzNGT6n8zSUUALk+p/M0ZPqfzNJRQAuT6n8zRk+p/M0lFAC5PqfzNGT6n8zSUUALk+ p/M0ZPqfzNJRQAuT6n8zRk+p/M0lFAC5PqfzNGT6n8zSUUALk+p/M0ZPqfzNJRQAuT6n8zRk+p/M 0lFAC5PqfzNGT6n8zSUUASoSQcnPP+FFCdD9f6CigCNup+p/nSUrdT9T/OkoAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKKKACiiigCVOh+v9BRQnQ/X+gooAjbqfqf50lK3U/U/wA6SgAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAoorz/AOIvxL8L/DDQn1vxLdlA5aLT9Ot9smoapcqA fIs4WZQdoKmaeRkggUgyyKWRWAPQKK/LXxf+2H8StYupR4Xj03wnp4c/Z1jtLbVdRaPPH2m51KGe 1ZiOSILGALkrliN54n/hqP45f9Dr/wCW/wCGP/lNQB+wFFfj/wD8NR/HL/odf/Lf8Mf/ACmo/wCG o/jl/wBDr/5b/hj/AOU1AH7AUV+P/wDw1H8cv+h1/wDLf8Mf/Kaj/hqP45f9Dr/5b/hj/wCU1AH7 AUV+P/8Aw1H8cv8Aodf/AC3/AAx/8pqP+Go/jl/0Ov8A5b/hj/5TUAfsBRX4/wD/AA1H8cv+h1/8 t/wx/wDKaj/hqP45f9Dr/wCW/wCGP/lNQB+wFFfj/wD8NR/HL/odf/Lf8Mf/ACmo/wCGo/jl/wBD r/5b/hj/AOU1AH7AUV+P/wDw1H8cv+h1/wDLf8Mf/Kaj/hqP45f9Dr/5b/hj/wCU1AH7AUV+P/8A w1H8cv8Aodf/AC3/AAx/8pqP+Go/jl/0Ov8A5b/hj/5TUAfsBRX4/wD/AA1H8cv+h1/8t/wx/wDK aj/hqP45f9Dr/wCW/wCGP/lNQB+wFFfj/wD8NR/HL/odf/Lf8Mf/ACmo/wCGo/jl/wBDr/5b/hj/ AOU1AH7AUV+P/wDw1H8cv+h1/wDLf8Mf/Kaj/hqP45f9Dr/5b/hj/wCU1AH7AUV+P/8Aw1H8cv8A odf/AC3/AAx/8pqP+Go/jl/0Ov8A5b/hj/5TUAfsBRX4/wD/AA1H8cv+h1/8t/wx/wDKaj/hqP45 f9Dr/wCW/wCGP/lNQB+wFFfj/wD8NR/HL/odf/Lf8Mf/ACmo/wCGo/jl/wBDr/5b/hj/AOU1AH7A UV+P/wDw1H8cv+h1/wDLf8Mf/Kaj/hqP45f9Dr/5b/hj/wCU1AH7AUV+P/8Aw1H8cv8Aodf/AC3/ AAx/8pqP+Go/jl/0Ov8A5b/hj/5TUAfsBRX4/wD/AA1H8cv+h1/8t/wx/wDKaj/hqP45f9Dr/wCW /wCGP/lNQB+wFFfj/wD8NR/HL/odf/Lf8Mf/ACmo/wCGo/jl/wBDr/5b/hj/AOU1AH7AUV+P/wDw 1H8cv+h1/wDLf8Mf/Kaj/hqP45f9Dr/5b/hj/wCU1AH7AUV+P/8Aw1H8cv8Aodf/AC3/AAx/8pqP +Go/jl/0Ov8A5b/hj/5TUAfsBRX4/wD/AA1H8cv+h1/8t/wx/wDKaj/hqP45f9Dr/wCW/wCGP/lN QB+wFFfj/wD8NR/HL/odf/Lf8Mf/ACmo/wCGo/jl/wBDr/5b/hj/AOU1AH7AUV+P/wDw1H8cv+h1 /wDLf8Mf/Kaj/hqP45f9Dr/5b/hj/wCU1AH7AUV+P/8Aw1H8cv8Aodf/AC3/AAx/8pqP+Go/jl/0 Ov8A5b/hj/5TUAfsBRX4/wD/AA1H8cv+h1/8t/wx/wDKaj/hqP45f9Dr/wCW/wCGP/lNQB+wFFfj /wD8NR/HL/odf/Lf8Mf/ACmo/wCGo/jl/wBDr/5b/hj/AOU1AH7AUV+P/wDw1H8cv+h1/wDLf8Mf /Kaj/hqP45f9Dr/5b/hj/wCU1AH7AUV+P/8Aw1H8cv8Aodf/AC3/AAx/8pqP+Go/jl/0Ov8A5b/h j/5TUAfsBRX4/wD/AA1H8cv+h1/8t/wx/wDKap7b9qj43wTRyyeLYbpEYFrefQPDwhlH91zb6XBM FPcxyxt6MKAP15or4v8AhF+1vpfiq9tfD/j6ztPD2q3TpBaazaO66JdTudqRXUc7yS6bJI2FSVp5 7VnJ3vbDaD9oAggEEEEZBHIIPQg9waACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK KKACiiigCVOh+v8AQUUJ0P1/oKKAI26n6n+dJSt1P1P86SgAooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigBCQoJPAAJJ9gMmvxf+OHxHvPiV4+1fVmnd9HsbibTfD1tuPkwaXayskUy JnAlvmDXlw3Lb5vLDGOKMD9ldRYpp9+6nDLZ3TAjqCsDkH8CK/A6T/WSf77f+hGgBlFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAAkHIOCOQ R1B9a/V79lL4j3fjfwDLo+rTvc6z4Ont9NkuJGLy3OlXMcj6TNM7HLSxrb3VkWOS8dnHI7NI7mvy hr73/YbYi8+IqZ+Vrbw2xHYlZdZAP4B2/M0AfoTRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQBKnQ/X+gooTofr/QUUARt1P1P86Slbqfqf50lABRRRQAUUUUAFFFFABRRRQAU UUUAFFFFABRRRQAUUUUAFFFFAFHVP+QbqP8A143f/pPJX4ISf6yT/fb/ANCNfvfqn/IN1H/rxu// AEnkr8EJP9ZJ/vt/6EaAGUUUUAFFFeh+CPhV48+I0WoTeDdCbWItLkgivmF/pdl5D3KytApGoXto ZN6wyHMQcLt+YjIyAeeUV77/AMMwfHH/AKEh/wDwe+Gv/lxR/wAMwfHH/oSH/wDB74a/+XFAHgVF e+/8MwfHH/oSH/8AB74a/wDlxR/wzB8cf+hIf/we+Gv/AJcUAeBUV77/AMMwfHH/AKEh/wDwe+Gv /lxR/wAMwfHH/oSH/wDB74a/+XFAHgVFe+/8MwfHH/oSH/8AB74a/wDlxR/wzB8cf+hIf/we+Gv/ AJcUAeBUV77/AMMwfHH/AKEh/wDwe+Gv/lxR/wAMwfHH/oSH/wDB74a/+XFAHgVFe+/8MwfHH/oS H/8AB74a/wDlxR/wzB8cf+hIf/we+Gv/AJcUAeBUV77/AMMwfHH/AKEh/wDwe+Gv/lxR/wAMwfHH /oSH/wDB74a/+XFAHgVFe+/8MwfHH/oSH/8AB74a/wDlxR/wzB8cf+hIf/we+Gv/AJcUAeBUV77/ AMMwfHH/AKEh/wDwe+Gv/lxR/wAMwfHH/oSH/wDB74a/+XFAHgVFe+/8MwfHH/oSH/8AB74a/wDl xR/wzB8cf+hIf/we+Gv/AJcUAeBUV77/AMMwfHH/AKEh/wDwe+Gv/lxR/wAMwfHH/oSH/wDB74a/ +XFAHgVFe+/8MwfHH/oSH/8AB74a/wDlxR/wzB8cf+hIf/we+Gv/AJcUAeBUV77/AMMwfHH/AKEh /wDwe+Gv/lxR/wAMwfHH/oSH/wDB74a/+XFAHgVFe+/8MwfHH/oSH/8AB74a/wDlxR/wzB8cf+hI f/we+Gv/AJcUAeBUV77/AMMwfHH/AKEh/wDwe+Gv/lxR/wAMwfHH/oSH/wDB74a/+XFAHgVFe+/8 MwfHH/oSH/8AB74a/wDlxR/wzB8cf+hIf/we+Gv/AJcUAeBUV77/AMMwfHH/AKEh/wDwe+Gv/lxR /wAMwfHH/oSH/wDB74a/+XFAHgVFe+/8MwfHH/oSH/8AB74a/wDlxR/wzB8cf+hIf/we+Gv/AJcU AeBUV77/AMMwfHH/AKEh/wDwe+Gv/lxR/wAMwfHH/oSH/wDB74a/+XFAHgVFe+/8MwfHH/oSH/8A B74a/wDlxR/wzB8cf+hIf/we+Gv/AJcUAeBUV77/AMMwfHH/AKEh/wDwe+Gv/lxR/wAMwfHH/oSH /wDB74a/+XFAHgVFe+/8MwfHH/oSH/8AB74a/wDlxR/wzB8cf+hIf/we+Gv/AJcUAeBUV77/AMMw fHH/AKEh/wDwe+Gv/lxR/wAMwfHH/oSH/wDB74a/+XFAHgVFe+/8MwfHH/oSH/8AB74a/wDlxR/w zB8cf+hIf/we+Gv/AJcUAeBUV77/AMMwfHH/AKEh/wDwe+Gv/lxR/wAMwfHH/oSH/wDB74a/+XFA HgVFe+H9mD44gEnwQ+ACT/xPfDR4HsNYzXg8sTwSyQyrtkido5FyDtdGKsMqSDggjIJB7GgCOiii gAr71/Yc/wCP74if9enhz/0dq9fBVfev7Dn/AB/fET/r08Of+jtXoA/QuiiigAooooAKKKKACiii gAooooAKKKKACiiigAooooAKKKKACiiigCVOh+v9BRQnQ/X+gooAjbqfqf50lK3U/U/zpKACiiig AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAKOqf8g3Uf+vG7/wDSeSvwQk/1kn++3/oR r979U/5Buo/9eN3/AOk8lfghJ/rJP99v/QjQAyiiigAr9Ef2Hf8AkE/ED/r/ANA/9EapX53V+iP7 Dv8AyCfiB/1/6B/6I1SgD7vooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAa/3G/wB1v5GvwQ1X/kJ6h/1+3X/o56/e9/uN/ut/I1+CGq/8hPUP+v26/wDRz0AUKKKKACvv X9hz/j++In/Xp4c/9HavXwVX3r+w5/x/fET/AK9PDn/o7V6AP0LooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAlTofr/QUUJ0P1/oKKAI26n6n+dJSt1P1P86SgAooooAKKKKA CiiigAooooAKKKKACiiigAooooAKKKKACiiigCjqn/IN1H/rxu//AEnkr8EJP9ZJ/vt/6Ea/e/VP +QbqP/Xjd/8ApPJX4ISf6yT/AH2/9CNADKKKKACv0R/Yd/5BPxA/6/8AQP8A0RqlfndX6I/sO/8A IJ+IH/X/AKB/6I1SgD7vooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo Aa/3G/3W/ka/BDVf+QnqH/X7df8Ao56/e9/uN/ut/I1+CGq/8hPUP+v26/8ARz0AUKKKKACvvX9h z/j++In/AF6eHP8A0dq9fBVfev7Dn/H98RP+vTw5/wCjtXoA/QuiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigCVOh+v9BRQnQ/X+gooAjbqfqf50lK3U/U/wA6SgAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigCjqn/IN1H/AK8bv/0nkr8EJP8AWSf77f8AoRr9 79U/5Buo/wDXjd/+k8lfghJ/rJP99v8A0I0AMooooAK/RH9h3/kE/ED/AK/9A/8ARGqV+d1foj+w 7/yCfiB/1/6B/wCiNUoA+76KKKACiiigAooooAKKKKACiiigAoork/FXjvwf4ItftnirxDpmixMr NFHdXA+1XAX7wtbKISXl0w7rbwSEdxQB1lFfHHiP9tHwBpzyQ+HtD13xE6EhbiUQaPYy/wB0xyTG 6vAD382wjIBGFY5FeaXP7cOrs5Np4A06FOy3GuXNwwGe7R6fbAnHog+lAH6JUV+fmn/txSb1XVfh 8hjJG6Ww19ldR3Ihn0t1c+gM0Y969p8J/tZfCfxI8Vvf3moeFbuQqgXXbUCzMhIGFv7GS7gjjGc+ befZF4OccZAPpqiqdhqFhqtpDf6Ze2mo2Vwgkt7yyuIrq2mQ9Hingd4pFPqrEVcoAKKKKACiiigA ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAGv 9xv91v5GvwQ1X/kJ6h/1+3X/AKOev3vf7jf7rfyNfghqv/IT1D/r9uv/AEc9AFCiiigAr71/Yc/4 /viJ/wBenhz/ANHavXwVX3r+w5/x/fET/r08Of8Ao7V6AP0LooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigAooooAlTofr/QUUJ0P1/oKKAI26n6n+dJSt1P1P8AOkoAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAo6p/yDdR/wCvG7/9J5K/BCT/AFkn++3/AKEa/e/V P+QbqP8A143f/pPJX4ISf6yT/fb/ANCNADKKKKACv0R/Yd/5BPxA/wCv/QP/AERqlfndX6I/sO/8 gn4gf9f+gf8AojVKAPu+iiigAooooAKKKKACiiigApksscMck00iRRRI0kksjKkccaAs7u7EKqKo JZmIAAJJAp9fm7+1D8e5tZvb34ceEL1o9FsZWtvEmpW0hU6reRMVl0yGRDn+z7VwUuSDi8uFKf8A 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 P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B/ /CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+ B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/ cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0 T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8A wldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/h U/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5C o/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE /wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu /wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4V P8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDk KgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCi c+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv +ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8 P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B/ /CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+ B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6UA noCfpzX7f/8ACp/hd/0TnwP/AOEron/yFU1v8L/htaTR3Fr4A8GW88TBo5ofDOjRyxsOjI6WQZWH YqQR60AflZ8JfgN4x+KOoW0qWdxo/hdZVN94hvIHjgMKn95FpqSBTf3TAFVWLMMTYNxLEMBv1v8A C/hrSfB+gaX4a0O2Frpek2qWttHwXbGWlnmfA8y4uJmee4lIBkmkdzy1biIkaqkaLGiAKqIoVVUD AVVUAAAAAAAADgU6gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAlTofr /QUUJ0P1/oKKAI26n6n+dJSt1P1P86SgAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAJU6H6 /wBBRQnQ/X+gooAjbqfqf50lK3U/U/zpKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAlTo fr/QUUJ0P1/oKKAHYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8h RRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB 6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoP yFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQA YHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8h RRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB 6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoP yFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQA YHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8h RRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB 6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAuAOg xRRRQB//2Q== "
+ id="image548-6"
+ x="1238.9635"
+ y="9.7873907"
+ inkscape:label="HMI:Image@.pic"
+ inkscape:svg-dpi="1" /><g
+ style="stroke-width:1.04185"
+ inkscape:label="HMI:Input@/SAVE"
+ id="g953"
+ transform="translate(30.061944,26.296906)"><g
+ id="g1839"
+ inkscape:label="+1"><g
+ id="g945"
+ inkscape:label="bg"
+ style="stroke-width:1.04185"><rect
+ style="color:#000000;font-variation-settings:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity: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:0.83281px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;stop-color:#000000;stop-opacity:1"
+ id="rect943"
+ width="183.44583"
+ height="71.543915"
+ x="1002.9655"
+ y="606.91309"
+ ry="17.322878"
+ inkscape:label="button"
+ rx="20.045269" /></g><g
+ id="g951"
+ inkscape:label="text"
+ style="stroke-width:1.04185"><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:#000000;fill-opacity:1;stroke:none;stroke-width:1.04185px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke-width:1.04185px"
+ y="656.98151"
+ x="1090.7626"
+ id="tspan947"
+ sodipodi:role="line">Update</tspan></text></g></g></g><g
+ id="g1766"
+ inkscape:label="HMI:ScrollBar@.range@.position@.visibleFiles"
+ transform="matrix(1,0,0,0.92215078,1380,-74.361686)"><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.42392px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray: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.40073px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray: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.309524;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.03627px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray: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.11429px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray: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="g1289"
+ inkscape:label="HMI:JsonTable:/files@/FILENOTIFY@.range@.position@.visibleFiles@.filter"
+ transform="matrix(0.5,0,0,0.5,-400.67639,302.56557)"><g
+ id="g5231"
+ inkscape:label="data"><g
+ id="g1384"
+ inkscape:label="[6]"
+ transform="translate(52.326002,240.30067)"><path
+ style="fill:none;fill-rule:evenodd;stroke:#feffff;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" /><image
+ width="60"
+ height="50"
+ preserveAspectRatio="none"
+ xlink:href="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEB AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAGyAzQDASIA AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3 ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3 uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD+7Ik5 PJ6nufWkyfU/maG6n6n+dJQAuT6n8zRk+p/M0lFAC5PqfzNGT6n8zSUUALk+p/M0ZPqfzNJRQAuT 6n8zRk+p/M0lFAC5PqfzNGT6n8zSUUALk+p/M0ZPqfzNJRQAuT6n8zRk+p/M0lFAC5PqfzNGT6n8 zSUUALk+p/M0ZPqfzNJRQAuT6n8zRk+p/M0lFAC5PqfzNGT6n8zSUUALk+p/M0ZPqfzNJRQAuT6n 8zRk+p/M0lFAC5PqfzNGT6n8zSUUALk+p/M0ZPqfzNJRQAuT6n8zRk+p/M0lFAC5PqfzNGT6n8zS UUALk+p/M0ZPqfzNJRQAuT6n8zRk+p/M0lFAC5PqfzNGT6n8zSUUALk+p/M0ZPqfzNJRQAuT6n8z Rk+p/M0lFAC5PqfzNGT6n8zSUUALk+p/M0ZPqfzNJRQAuT6n8zRk+p/M0lFAC5PqfzNGT6n8zSUU ALk+p/M0ZPqfzNJRQAuT6n8zRk+p/M0lFAC5PqfzNGT6n8zSUUALk+p/M0ZPqfzNJRQAuT6n8zRk +p/M0lFAC5PqfzNGT6n8zSUUALk+p/M0ZPqfzNJRQAuT6n8zRk+p/M0lFAC5PqfzNGT6n8zSUUAL k+p/M0ZPqfzNJRQAuT6n8zRk+p/M0lFAC5PqfzNGT6n8zSUUALk+p/M0ZPqfzNJRQAuT6n8zRk+p /M0lFAC5PqfzNGT6n8zSUUALk+p/M0ZPqfzNJRQAuT6n8zRk+p/M0lFAC5PqfzNGT6n8zSUUALk+ p/M0ZPqfzNJRQAuT6n8zRk+p/M0lFAC5PqfzNGT6n8zSUUALk+p/M0ZPqfzNJRQAuT6n8zRk+p/M 0lFAC5PqfzNGT6n8zSUUASoSQcnPP+FFCdD9f6CigCNup+p/nSUrdT9T/OkoAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKKKACiiigCVOh+v9BRQnQ/X+gooAjbqfqf50lK3U/U/wA6SgAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAoorz/AOIvxL8L/DDQn1vxLdlA5aLT9Ot9smoapcqA fIs4WZQdoKmaeRkggUgyyKWRWAPQKK/LXxf+2H8StYupR4Xj03wnp4c/Z1jtLbVdRaPPH2m51KGe 1ZiOSILGALkrliN54n/hqP45f9Dr/wCW/wCGP/lNQB+wFFfj/wD8NR/HL/odf/Lf8Mf/ACmo/wCG o/jl/wBDr/5b/hj/AOU1AH7AUV+P/wDw1H8cv+h1/wDLf8Mf/Kaj/hqP45f9Dr/5b/hj/wCU1AH7 AUV+P/8Aw1H8cv8Aodf/AC3/AAx/8pqP+Go/jl/0Ov8A5b/hj/5TUAfsBRX4/wD/AA1H8cv+h1/8 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 /lxR/wAMwfHH/oSH/wDB74a/+XFAHgVFe+/8MwfHH/oSH/8AB74a/wDlxR/wzB8cf+hIf/we+Gv/ AJcUAeBUV77/AMMwfHH/AKEh/wDwe+Gv/lxR/wAMwfHH/oSH/wDB74a/+XFAHgVFe+/8MwfHH/oS H/8AB74a/wDlxR/wzB8cf+hIf/we+Gv/AJcUAeBUV77/AMMwfHH/AKEh/wDwe+Gv/lxR/wAMwfHH /oSH/wDB74a/+XFAHgVFe+/8MwfHH/oSH/8AB74a/wDlxR/wzB8cf+hIf/we+Gv/AJcUAeBUV77/ AMMwfHH/AKEh/wDwe+Gv/lxR/wAMwfHH/oSH/wDB74a/+XFAHgVFe+/8MwfHH/oSH/8AB74a/wDl xR/wzB8cf+hIf/we+Gv/AJcUAeBUV77/AMMwfHH/AKEh/wDwe+Gv/lxR/wAMwfHH/oSH/wDB74a/ +XFAHgVFe+/8MwfHH/oSH/8AB74a/wDlxR/wzB8cf+hIf/we+Gv/AJcUAeBUV77/AMMwfHH/AKEh /wDwe+Gv/lxR/wAMwfHH/oSH/wDB74a/+XFAHgVFe+/8MwfHH/oSH/8AB74a/wDlxR/wzB8cf+hI f/we+Gv/AJcUAeBUV77/AMMwfHH/AKEh/wDwe+Gv/lxR/wAMwfHH/oSH/wDB74a/+XFAHgVFe+/8 MwfHH/oSH/8AB74a/wDlxR/wzB8cf+hIf/we+Gv/AJcUAeBUV77/AMMwfHH/AKEh/wDwe+Gv/lxR /wAMwfHH/oSH/wDB74a/+XFAHgVFe+/8MwfHH/oSH/8AB74a/wDlxR/wzB8cf+hIf/we+Gv/AJcU AeBUV77/AMMwfHH/AKEh/wDwe+Gv/lxR/wAMwfHH/oSH/wDB74a/+XFAHgVFe+/8MwfHH/oSH/8A B74a/wDlxR/wzB8cf+hIf/we+Gv/AJcUAeBUV77/AMMwfHH/AKEh/wDwe+Gv/lxR/wAMwfHH/oSH /wDB74a/+XFAHgVFe+/8MwfHH/oSH/8AB74a/wDlxR/wzB8cf+hIf/we+Gv/AJcUAeBUV77/AMMw fHH/AKEh/wDwe+Gv/lxR/wAMwfHH/oSH/wDB74a/+XFAHgVFe+/8MwfHH/oSH/8AB74a/wDlxR/w zB8cf+hIf/we+Gv/AJcUAeBUV77/AMMwfHH/AKEh/wDwe+Gv/lxR/wAMwfHH/oSH/wDB74a/+XFA HgVFe+H9mD44gEnwQ+ACT/xPfDR4HsNYzXg8sTwSyQyrtkido5FyDtdGKsMqSDggjIJB7GgCOiii gAr71/Yc/wCP74if9enhz/0dq9fBVfev7Dn/AB/fET/r08Of+jtXoA/QuiiigAooooAKKKKACiii gAooooAKKKKACiiigAooooAKKKKACiiigCVOh+v9BRQnQ/X+gooAjbqfqf50lK3U/U/zpKACiiig AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAKOqf8g3Uf+vG7/wDSeSvwQk/1kn++3/oR r979U/5Buo/9eN3/AOk8lfghJ/rJP99v/QjQAyiiigAr9Ef2Hf8AkE/ED/r/ANA/9EapX53V+iP7 Dv8AyCfiB/1/6B/6I1SgD7vooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAa/3G/wB1v5GvwQ1X/kJ6h/1+3X/o56/e9/uN/ut/I1+CGq/8hPUP+v26/wDRz0AUKKKKACvv X9hz/j++In/Xp4c/9HavXwVX3r+w5/x/fET/AK9PDn/o7V6AP0LooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAlTofr/QUUJ0P1/oKKAI26n6n+dJSt1P1P86SgAooooAKKKKA CiiigAooooAKKKKACiiigAooooAKKKKACiiigCjqn/IN1H/rxu//AEnkr8EJP9ZJ/vt/6Ea/e/VP +QbqP/Xjd/8ApPJX4ISf6yT/AH2/9CNADKKKKACv0R/Yd/5BPxA/6/8AQP8A0RqlfndX6I/sO/8A IJ+IH/X/AKB/6I1SgD7vooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo Aa/3G/3W/ka/BDVf+QnqH/X7df8Ao56/e9/uN/ut/I1+CGq/8hPUP+v26/8ARz0AUKKKKACvvX9h z/j++In/AF6eHP8A0dq9fBVfev7Dn/H98RP+vTw5/wCjtXoA/QuiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigCVOh+v9BRQnQ/X+gooAjbqfqf50lK3U/U/wA6SgAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigCjqn/IN1H/AK8bv/0nkr8EJP8AWSf77f8AoRr9 79U/5Buo/wDXjd/+k8lfghJ/rJP99v8A0I0AMooooAK/RH9h3/kE/ED/AK/9A/8ARGqV+d1foj+w 7/yCfiB/1/6B/wCiNUoA+76KKKACiiigAooooAKKKKACiiigAoork/FXjvwf4ItftnirxDpmixMr NFHdXA+1XAX7wtbKISXl0w7rbwSEdxQB1lFfHHiP9tHwBpzyQ+HtD13xE6EhbiUQaPYy/wB0xyTG 6vAD382wjIBGFY5FeaXP7cOrs5Np4A06FOy3GuXNwwGe7R6fbAnHog+lAH6JUV+fmn/txSb1XVfh 8hjJG6Ww19ldR3Ihn0t1c+gM0Y969p8J/tZfCfxI8Vvf3moeFbuQqgXXbUCzMhIGFv7GS7gjjGc+ befZF4OccZAPpqiqdhqFhqtpDf6Ze2mo2Vwgkt7yyuIrq2mQ9Hingd4pFPqrEVcoAKKKKACiiigA ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAGv 9xv91v5GvwQ1X/kJ6h/1+3X/AKOev3vf7jf7rfyNfghqv/IT1D/r9uv/AEc9AFCiiigAr71/Yc/4 /viJ/wBenhz/ANHavXwVX3r+w5/x/fET/r08Of8Ao7V6AP0LooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigAooooAlTofr/QUUJ0P1/oKKAI26n6n+dJSt1P1P8AOkoAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAo6p/yDdR/wCvG7/9J5K/BCT/AFkn++3/AKEa/e/V P+QbqP8A143f/pPJX4ISf6yT/fb/ANCNADKKKKACv0R/Yd/5BPxA/wCv/QP/AERqlfndX6I/sO/8 gn4gf9f+gf8AojVKAPu+iiigAooooAKKKKACiiigApksscMck00iRRRI0kksjKkccaAs7u7EKqKo JZmIAAJJAp9fm7+1D8e5tZvb34ceEL1o9FsZWtvEmpW0hU6reRMVl0yGRDn+z7VwUuSDi8uFKf8A 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 P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B/ /CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+ B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/ cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0 T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8A wldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/h U/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5C o/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE /wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu /wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4V P8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDk KgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCi c+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv +ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8 P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B/ /CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+ B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6UA noCfpzX7f/8ACp/hd/0TnwP/AOEron/yFU1v8L/htaTR3Fr4A8GW88TBo5ofDOjRyxsOjI6WQZWH YqQR60AflZ8JfgN4x+KOoW0qWdxo/hdZVN94hvIHjgMKn95FpqSBTf3TAFVWLMMTYNxLEMBv1v8A C/hrSfB+gaX4a0O2Frpek2qWttHwXbGWlnmfA8y4uJmee4lIBkmkdzy1biIkaqkaLGiAKqIoVVUD AVVUAAAAAAAADgU6gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAlTofr /QUUJ0P1/oKKAI26n6n+dJSt1P1P86SgAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAJU6H6 /wBBRQnQ/X+gooAjbqfqf50lK3U/U/zpKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAlTo fr/QUUJ0P1/oKKAHYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8h RRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB 6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoP yFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQA YHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8h RRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB 6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoP yFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQA YHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8h RRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB 6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAuAOg xRRRQB//2Q== "
+ id="image548"
+ x="973.98303"
+ y="10.868713"
+ inkscape:label=".thumbnail onClick[acknowledge]=.path"
+ inkscape:svg-dpi="1" /><use
+ inkscape:label=".status textContent=.name"
+ height="100%"
+ width="100%"
+ id="use1832"
+ xlink:href="#use913"
+ y="0"
+ x="0"
+ transform="translate(618.72609,85.207084)" /></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(-1.2276309,-371.84741)"
+ inkscape:label="[0]" /></g><g
+ style="stroke-width:1.04185"
+ inkscape:label="action_reset"
+ id="g1839-6"
+ transform="matrix(2,0,0,2,-181.39997,-864.49004)"><g
+ style="stroke-width:1.04185"
+ inkscape:label="bg"
+ id="g945-7"><rect
+ rx="19.608185"
+ inkscape:label="button"
+ ry="16.945154"
+ y="607.69312"
+ x="1004.9655"
+ height="69.983917"
+ width="179.44583"
+ id="rect943-5"
+ style="color:#000000;font-variation-settings:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity: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:0.81465px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;stop-color:#000000;stop-opacity:1" /></g><g
+ style="stroke-width:1.04185"
+ 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:#000000;fill-opacity:1;stroke:none;stroke-width:1.04185px;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:#000000;fill-opacity:1;stroke-width:1.04185px">reset</tspan></text></g></g></g><g
+ transform="matrix(0.33436432,0,0,0.33436432,567.32884,131.33489)"
+ inkscape:label="HMI:Input@.position"
+ id="g5222-6"
+ style="stroke-width:0.755943"><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.755943px;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.755943px">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:#ff6600;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.77972;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray: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.77972;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray: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:#ff6600;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.77972;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray: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,331.2297,130.8185)"
+ inkscape:label="HMI:Input@.range"
+ id="g5222-3"
+ style="stroke-width:0.755943"><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.755943px;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.755943px">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:#ff6600;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.77972;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray: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.77972;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray: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:#ff6600;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.77972;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray: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:0.755943"
+ id="g900"
+ inkscape:label="HMI:Input@.filter"
+ transform="matrix(0.33436432,0,0,0.33436432,91.2297,130.8185)"><rect
+ inkscape:label="bg"
+ onclick=""
+ y="69.631233"
+ x="-84.116562"
+ height="198.39929"
+ width="847.78894"
+ id="rect1400-5-7"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#cacaca;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:13.0038;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray: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="47.832088" /><text
+ inkscape:label="value"
+ id="text892"
+ y="198.37766"
+ x="203.09459"
+ style="font-style:normal;font-weight:normal;font-size:105.725px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.4995px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="fill:#000000;fill-opacity:1;stroke-width:0.4995px"
+ y="198.37766"
+ x="203.09459"
+ id="tspan890"
+ sodipodi:role="line">blah</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.77972;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray: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="rect1232"
+ width="847.78894"
+ height="198.39929"
+ x="-84.116562"
+ y="69.631233"
+ onclick=""
+ inkscape:label="edit" /></g><g
+ style="stroke-width:0.755943"
+ id="g900-3"
+ inkscape:label="HMI:Input@/CONTENT"
+ transform="matrix(0.33436432,0,0,0.33436432,733.64703,614.97645)"><rect
+ inkscape:label="bg"
+ onclick=""
+ y="69.631233"
+ x="-84.116562"
+ height="198.39929"
+ width="847.78894"
+ id="rect1400-5-7-6"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#cacaca;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:13.0038;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray: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="47.832088" /><text
+ inkscape:label="value"
+ id="text892-7"
+ y="198.37766"
+ x="203.09459"
+ style="font-style:normal;font-weight:normal;font-size:105.725px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.4995px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="fill:#000000;fill-opacity:1;stroke-width:0.4995px"
+ y="198.37766"
+ x="203.09459"
+ id="tspan890-5"
+ sodipodi:role="line">blah</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.77972;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray: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="rect1232-3"
+ width="847.78894"
+ height="198.39929"
+ x="-84.116562"
+ y="69.631233"
+ onclick=""
+ inkscape:label="edit" /></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:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="642.71484"
+ y="41.22554"
+ id="text2019"><tspan
+ sodipodi:role="line"
+ id="tspan2017"
+ x="642.71484"
+ y="41.22554"
+ style="fill:#ffffff;stroke-width:0.5px">HMI:JsonTable</tspan></text><text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.457px;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="444.4162"
+ y="143.8042"
+ id="text887"><tspan
+ sodipodi:role="line"
+ id="tspan885"
+ x="444.4162"
+ y="143.8042"
+ style="fill:#ffffff;stroke-width:1px">range</tspan></text><text
+ id="text891"
+ y="143.8042"
+ x="677.12885"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.457px;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="143.8042"
+ x="677.12885"
+ id="tspan889"
+ sodipodi:role="line">position</tspan></text><text
+ id="text904"
+ y="143.8042"
+ x="204.41626"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.457px;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="143.8042"
+ x="204.41626"
+ id="tspan902"
+ sodipodi:role="line">filter</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:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="643.16406"
+ y="87.707962"
+ id="text6096"><tspan
+ sodipodi:role="line"
+ id="tspan6094"
+ x="643.16406"
+ y="87.707962"
+ style="fill:#ffffff;stroke-width:0.25px">In this example, JsonTable widget is used as a list of CSV files.</tspan><tspan
+ sodipodi:role="line"
+ x="643.16406"
+ y="112.70796"
+ style="fill:#ffffff;stroke-width:0.25px"
+ id="tspan6222">JSON data is exchanged with python code in py_ext_0 using HTTP POST</tspan></text><g
+ inkscape:label="HMI:VarInit:0@.position"
+ id="g906"
+ transform="translate(1380)" /><g
+ id="g908"
+ inkscape:label="HMI:VarInit:100@.range"
+ transform="translate(1380)" /><g
+ inkscape:label="HMI:VarInit:7@.visibleFiles"
+ id="g906-3"
+ transform="translate(1380)" /><g
+ id="g909"
+ inkscape:label="HMI:VarInit:&quot;&quot;@.filter"
+ transform="translate(1380)" /><g
+ id="g909-3"
+ inkscape:label="HMI:VarInit:&quot;/files?name=beremiz.png&quot;@.pic"
+ transform="translate(1380)" /><text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16.5719px;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:#ff0001;fill-opacity:1;stroke:none;stroke-width:0.828604px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="167.49794"
+ y="542.23285"
+ id="text3225"
+ inkscape:label="DISCARD: comments"><tspan
+ sodipodi:role="line"
+ id="tspan3223"
+ x="167.49794"
+ y="542.23285"
+ style="fill:#ff0001;fill-opacity:1;stroke-width:0.828604px">HMI:JsonTable</tspan></text><rect
+ style="font-variation-settings:normal;opacity:1;fill:none;fill-opacity:1;stroke:#fe0000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3, 1;stroke-dashoffset:0;stroke-opacity:1;marker:none;stop-color:#000000;stop-opacity:1"
+ id="rect13389"
+ width="984.60046"
+ height="323.62738"
+ x="92.52552"
+ y="232.12688"
+ inkscape:label="DISCARD: boudaries" /><g
+ inkscape:label="HMI:List"
+ id="g1311"
+ transform="matrix(0.29835868,0,0,0.36118863,633.13137,-111.5583)"><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="file" /><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="folder" /></g><g
+ id="g1332"
+ inkscape:label="polygons"
+ transform="matrix(0.29835868,0,0,0.36118863,585.39398,-104.33453)"><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
+ 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" /></g><rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;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:0.282258;fill-rule:nonzero;stroke:#212121;stroke-width:1.50335;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray: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="rect1280"
+ width="333.82678"
+ height="38.496647"
+ x="233.80695"
+ y="667.22266" /><g
+ id="g446"
+ transform="matrix(0.49097749,0,0,0.41976614,231.93893,556.08411)"
+ inkscape:label="HMI:Input@/CSV_ROWIDX"
+ style="stroke-width:0.377115"><text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:35.1742px;line-height:125%;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#ff8c00;fill-opacity:1;stroke:none;stroke-width:0.377115px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="216.32812"
+ y="191.44563"
+ id="text432"
+ inkscape:label="value"><tspan
+ sodipodi:role="line"
+ id="tspan430"
+ x="216.32812"
+ y="191.44563"
+ style="font-size:35.1742px;text-align:end;text-anchor:end;fill:#ff8c00;stroke-width:0.377115px">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:1.88558;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray: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="1.8178837"
+ height="128"
+ width="230.94511"
+ 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:1.88558;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray: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:1.88558;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray: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:1.88558;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray: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
+ id="g446-3"
+ transform="matrix(0.49138036,0,0,0.41346312,411.60568,558.46632)"
+ inkscape:label="HMI:Input@/CSV_COLIDX"
+ style="stroke-width:0.377115"><text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:35.1742px;line-height:125%;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#ff8c00;fill-opacity:1;stroke:none;stroke-width:0.377115px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="216.32812"
+ y="191.44563"
+ id="text432-6"
+ inkscape:label="value"><tspan
+ sodipodi:role="line"
+ id="tspan430-7"
+ x="216.32812"
+ y="191.44563"
+ style="font-size:35.1742px;text-align:end;text-anchor:end;fill:#ff8c00;stroke-width:0.377115px">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:1.88558;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray: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-5"
+ 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="1.8178837"
+ height="128"
+ width="230.94511"
+ id="rect438-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:1.88558;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray: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-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:1.88558;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray: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-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:1.88558;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray: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><text
+ id="text432-2"
+ y="697.93231"
+ x="555.56427"
+ style="font-style:normal;font-weight:normal;font-size:26.6667px;line-height:125%;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#ff8c00;fill-opacity:1;stroke:none;stroke-width:0.285903px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="HMI:Display@/CSV_RES"><tspan
+ style="font-size:26.6667px;text-align:end;text-anchor:end;fill:#ff8c00;stroke-width:0.285903px"
+ y="697.93231"
+ x="555.56427"
+ id="tspan430-9"
+ sodipodi:role="line">8</tspan></text><g
+ style="stroke-width:0.380665"
+ transform="matrix(5.4620443,0,0,5.6582581,-24.547351,237.06866)"
+ id="g72"
+ inkscape:label="HMI:Switch@/CSV_ACK"><text
+ inkscape:label="true"
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.5833px;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:#008000;fill-opacity:1;stroke:none;stroke-width:0.100718px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="112.6369"
+ y="83.254463"
+ id="text62"><tspan
+ sodipodi:role="line"
+ id="tspan60"
+ x="112.6369"
+ y="83.254463"
+ style="fill:#008000;stroke-width:0.100718px">✔</tspan></text><text
+ inkscape:label="false"
+ id="text66"
+ y="83.254463"
+ x="112.6369"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.5833px;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:#ff0000;fill-opacity:1;stroke:none;stroke-width:0.100718px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="fill:#ff0000;stroke-width:0.100718px"
+ y="83.254463"
+ x="112.6369"
+ id="tspan64"
+ sodipodi:role="line">✕</tspan></text></g><text
+ id="text94"
+ y="595.9671"
+ x="288.55566"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.6667px;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="595.9671"
+ x="288.55566"
+ id="tspan92"
+ sodipodi:role="line"
+ style="font-size:26.6667px;fill:#ffffff;fill-opacity:1">Row#</tspan></text><text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.6667px;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="472.55573"
+ y="597.9671"
+ id="text98"><tspan
+ sodipodi:role="line"
+ id="tspan96"
+ x="472.55573"
+ y="597.9671"
+ style="font-size:26.6667px;fill:#ffffff;fill-opacity:1">Column#</tspan></text><text
+ id="text1212"
+ y="693.43469"
+ x="159.53084"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.6667px;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="693.43469"
+ x="159.53084"
+ id="tspan1210"
+ sodipodi:role="line"
+ style="font-size:26.6667px;fill:#ffffff;fill-opacity:1">Content:</tspan></text>
+
+<g
+ id="g907"
+ inkscape:label="HMI:TextStyleList"
+ transform="translate(661.37126,-141.55377)"><text
+ inkscape:label="active"
+ id="use913"
+ y="-32.362888"
+ x="453.75464"
+ 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:#00ff00;fill-opacity:1;stroke:none;stroke-width:1"
+ xml:space="preserve"><tspan
+ y="-32.362888"
+ x="453.75464"
+ id="tspan1850"
+ sodipodi:role="line"
+ style="fill:#00ff00;stroke-width:1">value</tspan></text></g></svg>
--- a/py_ext/pous.xml Thu Nov 28 14:46:50 2024 +0100
+++ b/py_ext/pous.xml Mon Dec 02 11:33:19 2024 +0100
@@ -1657,6 +1657,810 @@
</FBD>
</body>
</pou>
+ <pou name="csv_write_by_int" pouType="functionBlock">
+ <interface>
+ <externalVars>
+ <variable name="pyext_csv_update">
+ <type>
+ <BOOL/>
+ </type>
+ </variable>
+ </externalVars>
+ <outputVars>
+ <variable name="ACK">
+ <type>
+ <BOOL/>
+ </type>
+ </variable>
+ <variable name="RESULT">
+ <type>
+ <string/>
+ </type>
+ </variable>
+ </outputVars>
+ <inputVars>
+ <variable name="FILE_NAME">
+ <type>
+ <string/>
+ </type>
+ </variable>
+ <variable name="ROW">
+ <type>
+ <INT/>
+ </type>
+ </variable>
+ <variable name="COLUMN">
+ <type>
+ <INT/>
+ </type>
+ </variable>
+ <variable name="CONTENT">
+ <type>
+ <string/>
+ </type>
+ </variable>
+ <variable name="SAVE">
+ <type>
+ <INT/>
+ </type>
+ </variable>
+ </inputVars>
+ <localVars>
+ <variable name="OLDCODE">
+ <type>
+ <string/>
+ </type>
+ </variable>
+ <variable name="py_eval0">
+ <type>
+ <derived name="python_eval"/>
+ </type>
+ </variable>
+ <variable name="R_TRIG1">
+ <type>
+ <derived name="R_TRIG"/>
+ </type>
+ </variable>
+ <variable name="R_TRIG2">
+ <type>
+ <derived name="R_TRIG"/>
+ </type>
+ </variable>
+ <variable name="SR0">
+ <type>
+ <derived name="SR"/>
+ </type>
+ </variable>
+ </localVars>
+ </interface>
+ <body>
+ <FBD>
+ <block localId="7" typeName="CONCAT" executionOrderId="0" height="192" width="64">
+ <position x="520" y="112"/>
+ <inputVariables>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="32"/>
+ <connection refLocalId="8">
+ <position x="520" y="144"/>
+ <position x="480" y="144"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN2">
+ <connectionPointIn>
+ <relPosition x="0" y="56"/>
+ <connection refLocalId="9">
+ <position x="520" y="168"/>
+ <position x="312" y="168"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN3">
+ <connectionPointIn>
+ <relPosition x="0" y="80"/>
+ <connection refLocalId="10">
+ <position x="520" y="192"/>
+ <position x="480" y="192"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN4">
+ <connectionPointIn>
+ <relPosition x="0" y="104"/>
+ <connection refLocalId="31" formalParameter="OUT">
+ <position x="520" y="216"/>
+ <position x="320" y="216"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN5">
+ <connectionPointIn>
+ <relPosition x="0" y="128"/>
+ <connection refLocalId="12">
+ <position x="520" y="240"/>
+ <position x="480" y="240"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN6">
+ <connectionPointIn>
+ <relPosition x="0" y="152"/>
+ <connection refLocalId="2" formalParameter="OUT">
+ <position x="520" y="264"/>
+ <position x="320" y="264"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN7">
+ <connectionPointIn>
+ <relPosition x="0" y="128"/>
+ <connection refLocalId="51">
+ <position x="520" y="240"/>
+ <position x="480" y="240"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN8">
+ <connectionPointIn>
+ <relPosition x="0" y="128"/>
+ <connection refLocalId="52">
+ <position x="520" y="240"/>
+ <position x="480" y="240"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN9">
+ <connectionPointIn>
+ <relPosition x="0" y="128"/>
+ <connection refLocalId="53">
+ <position x="520" y="240"/>
+ <position x="480" y="240"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN10">
+ <connectionPointIn>
+ <relPosition x="0" y="152"/>
+ <connection refLocalId="55" formalParameter="OUT">
+ <position x="520" y="264"/>
+ <position x="320" y="264"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN11">
+ <connectionPointIn>
+ <relPosition x="0" y="176"/>
+ <connection refLocalId="14">
+ <position x="520" y="288"/>
+ <position x="480" y="288"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="64" y="32"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="8" executionOrderId="0" height="24" width="160" negated="false">
+ <position x="320" y="128"/>
+ <connectionPointOut>
+ <relPosition x="160" y="16"/>
+ </connectionPointOut>
+ <expression>'CSVWrInt("'</expression>
+ </inVariable>
+ <inVariable localId="9" executionOrderId="0" height="32" width="112" negated="false">
+ <position x="200" y="152"/>
+ <connectionPointOut>
+ <relPosition x="112" y="16"/>
+ </connectionPointOut>
+ <expression>FILE_NAME</expression>
+ </inVariable>
+ <inVariable localId="10" executionOrderId="0" height="24" width="112" negated="false">
+ <position x="368" y="184"/>
+ <connectionPointOut>
+ <relPosition x="112" y="8"/>
+ </connectionPointOut>
+ <expression>'",'</expression>
+ </inVariable>
+ <inVariable localId="11" executionOrderId="0" height="32" width="112" negated="false">
+ <position x="40" y="200"/>
+ <connectionPointOut>
+ <relPosition x="112" y="16"/>
+ </connectionPointOut>
+ <expression>ROW</expression>
+ </inVariable>
+ <inVariable localId="12" executionOrderId="0" height="24" width="112" negated="false">
+ <position x="368" y="224"/>
+ <connectionPointOut>
+ <relPosition x="112" y="16"/>
+ </connectionPointOut>
+ <expression>','</expression>
+ </inVariable>
+ <inVariable localId="13" executionOrderId="0" height="32" width="112" negated="false">
+ <position x="40" y="248"/>
+ <connectionPointOut>
+ <relPosition x="112" y="16"/>
+ </connectionPointOut>
+ <expression>COLUMN</expression>
+ </inVariable>
+ <inVariable localId="51" executionOrderId="0" height="24" width="112" negated="false">
+ <position x="368" y="224"/>
+ <connectionPointOut>
+ <relPosition x="112" y="16"/>
+ </connectionPointOut>
+ <expression>',"'</expression>
+ </inVariable>
+ <inVariable localId="52" executionOrderId="0" height="32" width="112" negated="false">
+ <position x="40" y="248"/>
+ <connectionPointOut>
+ <relPosition x="112" y="16"/>
+ </connectionPointOut>
+ <expression>CONTENT</expression>
+ </inVariable>
+ <inVariable localId="53" executionOrderId="0" height="24" width="112" negated="false">
+ <position x="368" y="224"/>
+ <connectionPointOut>
+ <relPosition x="112" y="16"/>
+ </connectionPointOut>
+ <expression>'",'</expression>
+ </inVariable>
+ <inVariable localId="54" executionOrderId="0" height="32" width="112" negated="false">
+ <position x="40" y="248"/>
+ <connectionPointOut>
+ <relPosition x="112" y="16"/>
+ </connectionPointOut>
+ <expression>SAVE</expression>
+ </inVariable>
+ <inVariable localId="14" executionOrderId="0" height="24" width="112" negated="false">
+ <position x="368" y="272"/>
+ <connectionPointOut>
+ <relPosition x="112" y="16"/>
+ </connectionPointOut>
+ <expression>')'</expression>
+ </inVariable>
+ <continuation name="Code" localId="4" height="24" width="128">
+ <position x="504" y="496"/>
+ <connectionPointOut>
+ <relPosition x="128" y="16"/>
+ </connectionPointOut>
+ </continuation>
+ <block localId="16" typeName="NE" executionOrderId="0" height="64" width="64">
+ <position x="208" y="456"/>
+ <inputVariables>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="32"/>
+ <connection refLocalId="22">
+ <position x="208" y="488"/>
+ <position x="188" y="488"/>
+ <position x="188" y="480"/>
+ <position x="168" y="480"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN2">
+ <connectionPointIn>
+ <relPosition x="0" y="56"/>
+ <connection refLocalId="21">
+ <position x="208" y="512"/>
+ <position x="168" y="512"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="64" y="32"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <outVariable localId="17" executionOrderId="0" height="32" width="66" negated="false">
+ <position x="784" y="440"/>
+ <connectionPointIn>
+ <relPosition x="0" y="16"/>
+ <connection refLocalId="18" formalParameter="OUT">
+ <position x="784" y="456"/>
+ <position x="744" y="456"/>
+ </connection>
+ </connectionPointIn>
+ <expression>OLDCODE</expression>
+ </outVariable>
+ <block localId="18" typeName="SEL" executionOrderId="0" height="96" width="64">
+ <position x="680" y="424"/>
+ <inputVariables>
+ <variable formalParameter="G">
+ <connectionPointIn>
+ <relPosition x="0" y="32"/>
+ <connection refLocalId="25">
+ <position x="680" y="456"/>
+ <position x="652" y="456"/>
+ <position x="652" y="448"/>
+ <position x="624" y="448"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN0">
+ <connectionPointIn>
+ <relPosition x="0" y="56"/>
+ <connection refLocalId="20">
+ <position x="680" y="480"/>
+ <position x="632" y="480"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="80"/>
+ <connection refLocalId="4">
+ <position x="680" y="504"/>
+ <position x="656" y="504"/>
+ <position x="656" y="512"/>
+ <position x="632" y="512"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="64" y="32"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="20" executionOrderId="0" height="32" width="72" negated="false">
+ <position x="560" y="464"/>
+ <connectionPointOut>
+ <relPosition x="72" y="16"/>
+ </connectionPointOut>
+ <expression>OLDCODE</expression>
+ </inVariable>
+ <inVariable localId="21" executionOrderId="0" height="32" width="72" negated="false">
+ <position x="96" y="496"/>
+ <connectionPointOut>
+ <relPosition x="72" y="16"/>
+ </connectionPointOut>
+ <expression>OLDCODE</expression>
+ </inVariable>
+ <continuation name="Code" localId="22" height="24" width="128">
+ <position x="40" y="472"/>
+ <connectionPointOut>
+ <relPosition x="128" y="8"/>
+ </connectionPointOut>
+ </continuation>
+ <connector name="CodeChange" localId="23" height="24" width="120">
+ <position x="328" y="480"/>
+ <connectionPointIn>
+ <relPosition x="0" y="16"/>
+ <connection refLocalId="16" formalParameter="OUT">
+ <position x="328" y="496"/>
+ <position x="300" y="496"/>
+ <position x="300" y="488"/>
+ <position x="272" y="488"/>
+ </connection>
+ </connectionPointIn>
+ </connector>
+ <continuation name="CodeChange" localId="25" height="24" width="120">
+ <position x="504" y="440"/>
+ <connectionPointOut>
+ <relPosition x="120" y="8"/>
+ </connectionPointOut>
+ </continuation>
+ <comment localId="27" height="48" width="312">
+ <position x="40" y="376"/>
+ <content>
+ <xhtml:p><![CDATA[Detect changes in generated code line]]></xhtml:p>
+ </content>
+ </comment>
+ <comment localId="28" height="48" width="520">
+ <position x="48" y="560"/>
+ <content>
+ <xhtml:p><![CDATA[Execute python code on change or globally when CSV is updated]]></xhtml:p>
+ </content>
+ </comment>
+ <comment localId="29" height="40" width="232">
+ <position x="64" y="32"/>
+ <content>
+ <xhtml:p><![CDATA[Generate python code line]]></xhtml:p>
+ </content>
+ </comment>
+ <connector name="Code" localId="30" height="24" width="128">
+ <position x="632" y="128"/>
+ <connectionPointIn>
+ <relPosition x="0" y="16"/>
+ <connection refLocalId="7" formalParameter="OUT">
+ <position x="632" y="144"/>
+ <position x="584" y="144"/>
+ </connection>
+ </connectionPointIn>
+ </connector>
+ <block localId="31" typeName="INT_TO_STRING" executionOrderId="0" height="48" width="120">
+ <position x="200" y="184"/>
+ <inputVariables>
+ <variable formalParameter="IN">
+ <connectionPointIn>
+ <relPosition x="0" y="32"/>
+ <connection refLocalId="11">
+ <position x="200" y="216"/>
+ <position x="152" y="216"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="120" y="32"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <block localId="2" typeName="INT_TO_STRING" executionOrderId="0" height="48" width="120">
+ <position x="200" y="232"/>
+ <inputVariables>
+ <variable formalParameter="IN">
+ <connectionPointIn>
+ <relPosition x="0" y="32"/>
+ <connection refLocalId="13">
+ <position x="200" y="264"/>
+ <position x="152" y="264"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="120" y="32"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <block localId="55" typeName="INT_TO_STRING" executionOrderId="0" height="48" width="120">
+ <position x="200" y="232"/>
+ <inputVariables>
+ <variable formalParameter="IN">
+ <connectionPointIn>
+ <relPosition x="0" y="32"/>
+ <connection refLocalId="54">
+ <position x="200" y="264"/>
+ <position x="152" y="264"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="120" y="32"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <block localId="40" width="104" height="80" typeName="python_eval" instanceName="py_eval0" executionOrderId="0">
+ <position x="552" y="640"/>
+ <inputVariables>
+ <variable formalParameter="TRIG">
+ <connectionPointIn>
+ <relPosition x="0" y="32"/>
+ <connection refLocalId="15" formalParameter="OUT">
+ <position x="552" y="672"/>
+ <position x="360" y="672"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="CODE">
+ <connectionPointIn>
+ <relPosition x="0" y="64"/>
+ <connection refLocalId="41">
+ <position x="552" y="704"/>
+ <position x="528" y="704"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="ACK">
+ <connectionPointOut>
+ <relPosition x="104" y="32"/>
+ </connectionPointOut>
+ </variable>
+ <variable formalParameter="RESULT">
+ <connectionPointOut>
+ <relPosition x="104" y="64"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <continuation name="Code" localId="41" height="24" width="128">
+ <position x="400" y="688"/>
+ <connectionPointOut>
+ <relPosition x="128" y="16"/>
+ </connectionPointOut>
+ </continuation>
+ <inVariable localId="42" height="24" width="152" executionOrderId="0" negated="false">
+ <position x="32" y="656"/>
+ <connectionPointOut>
+ <relPosition x="152" y="16"/>
+ </connectionPointOut>
+ <expression>pyext_csv_update</expression>
+ </inVariable>
+ <outVariable localId="43" height="24" width="40" executionOrderId="0" negated="false">
+ <position x="1216" y="672"/>
+ <connectionPointIn>
+ <relPosition x="0" y="16"/>
+ <connection refLocalId="38" formalParameter="Q1">
+ <position x="1216" y="688"/>
+ <position x="1192" y="688"/>
+ <position x="1192" y="680"/>
+ <position x="1168" y="680"/>
+ </connection>
+ </connectionPointIn>
+ <expression>ACK</expression>
+ </outVariable>
+ <outVariable localId="44" height="24" width="64" executionOrderId="0" negated="false">
+ <position x="688" y="744"/>
+ <connectionPointIn>
+ <relPosition x="0" y="8"/>
+ <connection refLocalId="40" formalParameter="RESULT">
+ <position x="688" y="752"/>
+ <position x="672" y="752"/>
+ <position x="672" y="704"/>
+ <position x="656" y="704"/>
+ </connection>
+ </connectionPointIn>
+ <expression>RESULT</expression>
+ </outVariable>
+ <block localId="15" typeName="OR" executionOrderId="0" height="64" width="64">
+ <position x="296" y="640"/>
+ <inputVariables>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="32"/>
+ <connection refLocalId="46" formalParameter="Q">
+ <position x="296" y="672"/>
+ <position x="272" y="672"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN2">
+ <connectionPointIn>
+ <relPosition x="0" y="56"/>
+ <connection refLocalId="45">
+ <position x="296" y="696"/>
+ <position x="240" y="696"/>
+ <position x="240" y="704"/>
+ <position x="184" y="704"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="64" y="32"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <continuation name="CodeChange" localId="45" height="24" width="120">
+ <position x="64" y="688"/>
+ <connectionPointOut>
+ <relPosition x="120" y="16"/>
+ </connectionPointOut>
+ </continuation>
+ <block localId="46" typeName="R_TRIG" instanceName="R_TRIG1" executionOrderId="0" height="48" width="64">
+ <position x="208" y="640"/>
+ <inputVariables>
+ <variable formalParameter="CLK">
+ <connectionPointIn>
+ <relPosition x="0" y="32"/>
+ <connection refLocalId="42">
+ <position x="208" y="672"/>
+ <position x="184" y="672"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="Q">
+ <connectionPointOut>
+ <relPosition x="64" y="32"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <block localId="33" typeName="LEFT" executionOrderId="0" height="64" width="56">
+ <position x="736" y="672"/>
+ <inputVariables>
+ <variable formalParameter="IN">
+ <connectionPointIn>
+ <relPosition x="0" y="32"/>
+ <connection refLocalId="40" formalParameter="RESULT">
+ <position x="736" y="704"/>
+ <position x="656" y="704"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="L">
+ <connectionPointIn>
+ <relPosition x="0" y="56"/>
+ <connection refLocalId="35">
+ <position x="736" y="728"/>
+ <position x="724" y="728"/>
+ <position x="724" y="720"/>
+ <position x="712" y="720"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="56" y="32"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <block localId="34" typeName="NE" executionOrderId="0" height="64" width="64">
+ <position x="880" y="672"/>
+ <inputVariables>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="32"/>
+ <connection refLocalId="33" formalParameter="OUT">
+ <position x="880" y="704"/>
+ <position x="792" y="704"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN2">
+ <connectionPointIn>
+ <relPosition x="0" y="56"/>
+ <connection refLocalId="36">
+ <position x="880" y="728"/>
+ <position x="868" y="728"/>
+ <position x="868" y="720"/>
+ <position x="856" y="720"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="64" y="32"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="35" executionOrderId="0" height="24" width="24" negated="false">
+ <position x="688" y="712"/>
+ <connectionPointOut>
+ <relPosition x="24" y="8"/>
+ </connectionPointOut>
+ <expression>1</expression>
+ </inVariable>
+ <inVariable localId="36" executionOrderId="0" height="24" width="40" negated="false">
+ <position x="816" y="712"/>
+ <connectionPointOut>
+ <relPosition x="40" y="8"/>
+ </connectionPointOut>
+ <expression>'#'</expression>
+ </inVariable>
+ <block localId="37" typeName="R_TRIG" instanceName="R_TRIG2" executionOrderId="0" height="48" width="64">
+ <position x="880" y="616"/>
+ <inputVariables>
+ <variable formalParameter="CLK">
+ <connectionPointIn>
+ <relPosition x="0" y="32"/>
+ <connection refLocalId="40" formalParameter="ACK">
+ <position x="880" y="648"/>
+ <position x="688" y="648"/>
+ <position x="688" y="672"/>
+ <position x="656" y="672"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="Q">
+ <connectionPointOut>
+ <relPosition x="64" y="32"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <block localId="38" typeName="SR" instanceName="SR0" executionOrderId="0" height="64" width="48">
+ <position x="1120" y="648"/>
+ <inputVariables>
+ <variable formalParameter="S1">
+ <connectionPointIn>
+ <relPosition x="0" y="32"/>
+ <connection refLocalId="39" formalParameter="OUT">
+ <position x="1120" y="680"/>
+ <position x="1056" y="680"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="R" edge="rising">
+ <connectionPointIn>
+ <relPosition x="0" y="56"/>
+ <connection refLocalId="15" formalParameter="OUT">
+ <position x="1120" y="704"/>
+ <position x="1088" y="704"/>
+ <position x="1088" y="776"/>
+ <position x="376" y="776"/>
+ <position x="376" y="672"/>
+ <position x="360" y="672"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="Q1">
+ <connectionPointOut>
+ <relPosition x="48" y="32"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <block localId="39" typeName="AND" executionOrderId="0" height="64" width="64">
+ <position x="992" y="648"/>
+ <inputVariables>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="32"/>
+ <connection refLocalId="37" formalParameter="Q">
+ <position x="992" y="680"/>
+ <position x="976" y="680"/>
+ <position x="976" y="648"/>
+ <position x="944" y="648"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN2">
+ <connectionPointIn>
+ <relPosition x="0" y="56"/>
+ <connection refLocalId="34" formalParameter="OUT">
+ <position x="992" y="704"/>
+ <position x="944" y="704"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="64" y="32"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ </FBD>
+ </body>
+ </pou>
<pou name="python_eval" pouType="functionBlock">
<interface>
<inputVars>
--- a/py_ext/py_ext.py Thu Nov 28 14:46:50 2024 +0100
+++ b/py_ext/py_ext.py Mon Dec 02 11:33:19 2024 +0100
@@ -24,7 +24,6 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
import os
from POULibrary import POULibrary
from py_ext.PythonFileCTNMixin import PythonFileCTNMixin
@@ -46,7 +45,7 @@
if data is None:
data = list()
try:
- csvfile = open(fname, 'rb')
+ csvfile = open(fname, 'rt', encoding='utf-8')
except IOError:
return "#FILE_NOT_FOUND"
try:
@@ -55,12 +54,12 @@
reader = csv.reader(csvfile, dialect)
for row in reader:
data.append(row)
- except csv.Error:
+ except csv.Error as e:
return "#CSV_ERROR"
finally:
csvfile.close()
csv_int_files[fname] = data
-
+
try:
row = data[rowidx]
except IndexError:
@@ -83,14 +82,14 @@
if entry is None:
data = dict()
try:
- csvfile = open(fname, 'rb')
+ csvfile = open(fname, 'rt', encoding='utf-8')
except IOError:
return "#FILE_NOT_FOUND"
try:
dialect = csv.Sniffer().sniff(csvfile.read(1024))
csvfile.seek(0)
reader = csv.reader(csvfile, dialect)
- headers = dict([(name, index) for index, name in enumerate(reader.next()[1:])])
+ headers = dict([(name, index) for index, name in enumerate(reader.__next__()[1:])])
for row in reader:
data[row[0]] = row[1:]
except csv.Error:
@@ -100,7 +99,7 @@
csv_str_files[fname] = (headers, data)
else:
headers, data = entry
-
+
try:
row = data[rowname]
except KeyError:
@@ -116,6 +115,56 @@
except IndexError:
return "#COL_NOT_FOUND"
+
+csv_int_files = {}
+def CSVWrInt(fname, rowidx, colidx, content, save):
+ \"\"\"
+ Update value at row/column pointed by integer indexes
+ Assumes data starts at first row and first column, no headers.
+ \"\"\"
+ if save > 0:
+ global csv_int_files
+ data = csv_int_files.get(fname, None)
+ if data is None:
+ data = list()
+ try:
+ csvfile = open(fname, 'rt', encoding='utf-8')
+ except IOError:
+ return "#FILE_NOT_FOUND"
+ try:
+ dialect = csv.Sniffer().sniff(csvfile.read(1024))
+ csvfile.seek(0)
+ reader = csv.reader(csvfile, dialect)
+ for row in reader:
+ data.append(row)
+ except csv.Error as e:
+ return "#CSV_ERROR"
+ finally:
+ csvfile.close()
+ csv_int_files[fname] = data
+
+ try:
+ row = data[rowidx]
+ except IndexError:
+ return "#ROW_NOT_FOUND"
+
+ try:
+ row[colidx] = content
+ except IndexError:
+ return "#COL_NOT_FOUND"
+
+ wfile = open(fname, 'rt+', encoding='utf-8')
+ wdialect = csv.Sniffer().sniff(wfile.read(1024))
+ wfile.seek(0)
+ writer = csv.writer(wfile, wdialect)
+ for row in data:
+ writer.writerow(row)
+ wfile.truncate()
+ wfile.close()
+
+ return "#SUCCESS"
+
+
def pyext_csv_reload():
global csv_int_files, csv_str_files
csv_int_files.clear()
@@ -123,6 +172,7 @@
"""
+
class PythonLibrary(POULibrary):
def GetLibraryPath(self):
return paths.AbsNeighbourFile(__file__, "pous.xml")
@@ -157,8 +207,7 @@
("runtime_00_pyext.py", open(runtimefile_path, "rb")))
-
class PythonFile(PythonFileCTNMixin):
def GetIconName(self):
- return "Pyfile"
+ return "Pyfile"
\ No newline at end of file
--- a/svghmi/analyse_widget.xslt Thu Nov 28 14:46:50 2024 +0100
+++ b/svghmi/analyse_widget.xslt Mon Dec 02 11:33:19 2024 +0100
@@ -546,6 +546,20 @@
<xsl:text> where to find HMI_NODEs whose HMI_CLASS is class_name</xsl:text>
</path>
</xsl:template>
+ <xsl:template match="widget[@type='Image']" mode="widget_desc">
+ <type>
+ <xsl:value-of select="@type"/>
+ </type>
+ <longdesc>
+ <xsl:text>If Image widget is a svg:image element, then href content is replaced by
+</xsl:text>
+ <xsl:text>value of given variable.
+</xsl:text>
+ </longdesc>
+ <shortdesc>
+ <xsl:text>Image display</xsl:text>
+ </shortdesc>
+ </xsl:template>
<xsl:template match="widget[@type='Input']" mode="widget_desc">
<type>
<xsl:value-of select="@type"/>
@@ -589,7 +603,7 @@
</xsl:text>
<xsl:text>
</xsl:text>
- <xsl:text>Documentation to be written. see svghmi exemple.
+ <xsl:text>Documentation to be written. see svghmi example.
</xsl:text>
</longdesc>
<shortdesc>
--- a/svghmi/gen_index_xhtml.xslt Thu Nov 28 14:46:50 2024 +0100
+++ b/svghmi/gen_index_xhtml.xslt Mon Dec 02 11:33:19 2024 +0100
@@ -4816,6 +4816,76 @@
<xsl:text>}
</xsl:text>
</xsl:template>
+ <xsl:template match="widget[@type='Image']" mode="widget_desc">
+ <type>
+ <xsl:value-of select="@type"/>
+ </type>
+ <longdesc>
+ <xsl:text>If Image widget is a svg:image element, then href content is replaced by
+</xsl:text>
+ <xsl:text>value of given variable.
+</xsl:text>
+ </longdesc>
+ <shortdesc>
+ <xsl:text>Image display</xsl:text>
+ </shortdesc>
+ </xsl:template>
+ <xsl:template match="widget[@type='Image']" mode="widget_class">
+ <xsl:text>class </xsl:text>
+ <xsl:text>ImageWidget</xsl:text>
+ <xsl:text> extends Widget{
+</xsl:text>
+ <xsl:text> frequency = 5;
+</xsl:text>
+ <xsl:text> dispatch(value, oldval, index) {
+</xsl:text>
+ <xsl:text> if (index == 0) {
+</xsl:text>
+ <xsl:text> this.given_url = value;
+</xsl:text>
+ <xsl:text> this.ready = true;
+</xsl:text>
+ <xsl:text> this.request_animate();
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>}
+</xsl:text>
+ </xsl:template>
+ <xsl:template match="widget[@type='Image']" mode="widget_defs">
+ <xsl:param name="hmi_element"/>
+ <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:value-of select="$disability"/>
+ <xsl:variable name="has_disability" select="string-length($disability)&gt;0"/>
+ <xsl:text> given_url: "",
+</xsl:text>
+ <xsl:text> ready: false,
+</xsl:text>
+ <xsl:text> animate: function(){
+</xsl:text>
+ <xsl:text> this.element.setAttribute('href', this.given_url);
+</xsl:text>
+ <xsl:text> },
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> init: function() {
+</xsl:text>
+ <xsl:text> this.animate();
+</xsl:text>
+ <xsl:text> },
+</xsl:text>
+ </xsl:template>
<xsl:template match="widget[@type='Input']" mode="widget_desc">
<type>
<xsl:value-of select="@type"/>
@@ -5042,7 +5112,7 @@
</xsl:text>
<xsl:text>
</xsl:text>
- <xsl:text>Documentation to be written. see svghmi exemple.
+ <xsl:text>Documentation to be written. see svghmi example.
</xsl:text>
</longdesc>
<shortdesc>
@@ -5247,7 +5317,7 @@
<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:text>JsonTable : misplaced '=' or inconsistent names in Json data expressions.</xsl:text>
</xsl:message>
</xsl:if>
<xsl:attribute name="name">
@@ -5320,7 +5390,7 @@
<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:text>Clones (svg:use) in JsonTable Widget pointing to a HMI:TextStyleList widget or item must have a "textContent=.someVal" assignment following value expression in label.</xsl:text>
</xsl:message>
</xsl:if>
<xsl:text> {
@@ -5352,6 +5422,16 @@
</xsl:otherwise>
</xsl:choose>
</xsl:template>
+ <xsl:template mode="json_table_elt_render" match="svg:image">
+ <xsl:param name="expressions"/>
+ <xsl:variable name="value_expr" select="$expressions/expression[1]/@content"/>
+ <xsl:text> id("</xsl:text>
+ <xsl:value-of select="@id"/>
+ <xsl:text>").setAttribute('href', String(</xsl:text>
+ <xsl:value-of select="$value_expr"/>
+ <xsl:text>));
+</xsl:text>
+ </xsl:template>
<func:function name="func:filter_non_widget_label">
<xsl:param name="elt"/>
<xsl:param name="widget_elts"/>
@@ -10142,8 +10222,6 @@
</xsl:text>
<xsl:text> let widget = hmi_widgets[id];
</xsl:text>
- <xsl:text> if(widget.curr_value != undefined) return;
-</xsl:text>
<xsl:text> widget.do_init();
</xsl:text>
<xsl:text> });
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/widget_image.ysl2 Mon Dec 02 11:33:19 2024 +0100
@@ -0,0 +1,35 @@
+// widget_image.ysl2
+
+widget_desc("Image") {
+ longdesc
+ ||
+ If Image widget is a svg:image element, then href content is replaced by
+ value of given variable.
+ ||
+
+ shortdesc > Image display
+}
+
+widget_class("Image")
+ ||
+ frequency = 5;
+ dispatch(value, oldval, index) {
+ if (index == 0) {
+ this.given_url = value;
+ this.ready = true;
+ this.request_animate();
+ }
+ }
+ ||
+
+widget_defs("Image") {
+ | given_url: "",
+ | ready: false,
+ | animate: function(){
+ | this.element.setAttribute('href', this.given_url);
+ | },
+ |
+ | init: function() {
+ | this.animate();
+ | },
+}
--- a/svghmi/widget_jsontable.ysl2 Thu Nov 28 14:46:50 2024 +0100
+++ b/svghmi/widget_jsontable.ysl2 Mon Dec 02 11:33:19 2024 +0100
@@ -6,7 +6,7 @@
Send given variables as POST to http URL argument, spread returned JSON in
SVG sub-elements of "data" labeled element.
- Documentation to be written. see svghmi exemple.
+ Documentation to be written. see svghmi example.
||
shortdesc > Http POST variables, spread JSON back
@@ -113,7 +113,7 @@
param "label";
// compute javascript expressions to access JSON data
- // desscribed in given svg element's "label"
+ // described in given svg element's "label"
// knowing that parent element already has given "expressions".
choose {
@@ -128,7 +128,7 @@
when "contains($suffix,'=')" {
const "name", "substring-before($suffix,'=')";
if "$expr/@name[. != $name]"
- error > JsonTable : missplaced '=' or inconsistent names in Json data expressions.
+ error > JsonTable : misplaced '=' or inconsistent names in Json data expressions.
attrib "name" value "$name";
attrib "content" > «$expr/@content»«substring-after($suffix,'=')»
}
@@ -176,7 +176,7 @@
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.
+ error > Clones (svg:use) in JsonTable Widget pointing to a HMI:TextStyleList widget or item must have a "textContent=.someVal" assignment following value expression in label.
| {
| let elt = id("«@id»");
| elt.textContent = String(«$content_expr»);
@@ -189,8 +189,13 @@
}
}
+template "svg:image", mode="json_table_elt_render" {
+ param "expressions";
+ const "value_expr", "$expressions/expression[1]/@content";
+ | id("«@id»").setAttribute('href', String(«$value_expr»));
+}
-// only labels comming from Json widget are counted in
+// only labels coming from Json widget are counted in
def "func:filter_non_widget_label" {
param "elt";
param "widget_elts";