# HG changeset patch # User Dino Kosic <44305363+kraskrom@users.noreply.github.com> # Date 1733135599 -3600 # Node ID 4b2de1a0fbf9ce02e3341dc7f3fb35369530255c # Parent c325749651d1162223ce156db6eef44007e903bd 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 diff -r c325749651d1 -r 4b2de1a0fbf9 doc/svghmi/widgets.rst --- 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 -------- diff -r c325749651d1 -r 4b2de1a0fbf9 exemples/svghmi_csv_json_img_table/beremiz.xml --- /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> diff -r c325749651d1 -r 4b2de1a0fbf9 exemples/svghmi_csv_json_img_table/plc.xml --- /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> diff -r c325749651d1 -r 4b2de1a0fbf9 exemples/svghmi_csv_json_img_table/project_files/beremiz.png Binary file exemples/svghmi_csv_json_img_table/project_files/beremiz.png has changed diff -r c325749651d1 -r 4b2de1a0fbf9 exemples/svghmi_csv_json_img_table/project_files/file.png Binary file exemples/svghmi_csv_json_img_table/project_files/file.png has changed diff -r c325749651d1 -r 4b2de1a0fbf9 exemples/svghmi_csv_json_img_table/project_files/folder.png Binary file exemples/svghmi_csv_json_img_table/project_files/folder.png has changed diff -r c325749651d1 -r 4b2de1a0fbf9 exemples/svghmi_csv_json_img_table/project_files/test1.csv --- /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 + diff -r c325749651d1 -r 4b2de1a0fbf9 exemples/svghmi_csv_json_img_table/project_files/test2.csv --- /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 + diff -r c325749651d1 -r 4b2de1a0fbf9 exemples/svghmi_csv_json_img_table/py_ext_0@py_ext/baseconfnode.xml --- /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"/> diff -r c325749651d1 -r 4b2de1a0fbf9 exemples/svghmi_csv_json_img_table/py_ext_0@py_ext/pyfile.xml --- /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> diff -r c325749651d1 -r 4b2de1a0fbf9 exemples/svghmi_csv_json_img_table/svghmi_0@svghmi/baseconfnode.xml --- /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"/> diff -r c325749651d1 -r 4b2de1a0fbf9 exemples/svghmi_csv_json_img_table/svghmi_0@svghmi/confnode.xml --- /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}"/> diff -r c325749651d1 -r 4b2de1a0fbf9 exemples/svghmi_csv_json_img_table/svghmi_0@svghmi/svghmi.svg --- /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["g443-3"].off_action = function(){ + console.log("Hello from Inkscape"); + PushButtonWidget.prototype.off_action.call(this); + fading_page_switch(); + console.log("Bye from Inkscape"); +}</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 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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-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:""@.filter" + transform="translate(1380)" /><g + id="g909-3" + inkscape:label="HMI:VarInit:"/files?name=beremiz.png"@.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> diff -r c325749651d1 -r 4b2de1a0fbf9 py_ext/pous.xml --- 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> diff -r c325749651d1 -r 4b2de1a0fbf9 py_ext/py_ext.py --- 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 diff -r c325749651d1 -r 4b2de1a0fbf9 svghmi/analyse_widget.xslt --- 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> diff -r c325749651d1 -r 4b2de1a0fbf9 svghmi/gen_index_xhtml.xslt --- 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)>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> }); diff -r c325749651d1 -r 4b2de1a0fbf9 svghmi/widget_image.ysl2 --- /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(); + | }, +} diff -r c325749651d1 -r 4b2de1a0fbf9 svghmi/widget_jsontable.ysl2 --- 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 @@ } } - -// only labels comming from Json widget are counted in +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 coming from Json widget are counted in def "func:filter_non_widget_label" { param "elt"; param "widget_elts";