From bb1c786921edfe22540f2f04721ceb57d25e24bd Mon Sep 17 00:00:00 2001 From: Kirill Shumilov Date: Tue, 29 May 2018 17:57:21 +0300 Subject: [PATCH 1/4] refactor(workspace): add new `gpio` lib, add `analog-sensor` into `xod/common-hardware` --- .../common-hardware/analog-sensor/patch.xodp | 120 ++++++++++++++++++ .../__lib__/xod/gpio/analog-read/patch.cpp | 20 +++ .../__lib__/xod/gpio/analog-read/patch.xodp | 69 ++++++++++ .../__lib__/xod/gpio/digital-read/patch.cpp | 20 +++ .../__lib__/xod/gpio/digital-read/patch.xodp | 69 ++++++++++ .../__lib__/xod/gpio/digital-write/patch.cpp | 21 +++ .../__lib__/xod/gpio/digital-write/patch.xodp | 66 ++++++++++ workspace/__lib__/xod/gpio/project.xod | 9 ++ .../__lib__/xod/gpio/pwm-write/patch.cpp | 25 ++++ .../__lib__/xod/gpio/pwm-write/patch.xodp | 66 ++++++++++ 10 files changed, 485 insertions(+) create mode 100644 workspace/__lib__/xod/common-hardware/analog-sensor/patch.xodp create mode 100644 workspace/__lib__/xod/gpio/analog-read/patch.cpp create mode 100644 workspace/__lib__/xod/gpio/analog-read/patch.xodp create mode 100644 workspace/__lib__/xod/gpio/digital-read/patch.cpp create mode 100644 workspace/__lib__/xod/gpio/digital-read/patch.xodp create mode 100644 workspace/__lib__/xod/gpio/digital-write/patch.cpp create mode 100644 workspace/__lib__/xod/gpio/digital-write/patch.xodp create mode 100644 workspace/__lib__/xod/gpio/project.xod create mode 100644 workspace/__lib__/xod/gpio/pwm-write/patch.cpp create mode 100644 workspace/__lib__/xod/gpio/pwm-write/patch.xodp diff --git a/workspace/__lib__/xod/common-hardware/analog-sensor/patch.xodp b/workspace/__lib__/xod/common-hardware/analog-sensor/patch.xodp new file mode 100644 index 00000000..ef1e3042 --- /dev/null +++ b/workspace/__lib__/xod/common-hardware/analog-sensor/patch.xodp @@ -0,0 +1,120 @@ +{ + "description": "Reads analog signal value from analog sensor", + "links": [ + { + "id": "HkDlNcCJQ", + "input": { + "nodeId": "BJdJV9RkX", + "pinKey": "__in__" + }, + "output": { + "nodeId": "r1niX9AJQ", + "pinKey": "BkGpcpcJQ" + } + }, + { + "id": "Syag4cRJQ", + "input": { + "nodeId": "BkoeN9Ay7", + "pinKey": "__in__" + }, + "output": { + "nodeId": "r1niX9AJQ", + "pinKey": "SyBtREhlW" + } + }, + { + "id": "r1A0QqRJ7", + "input": { + "nodeId": "r1niX9AJQ", + "pinKey": "SkuhqCqym" + }, + "output": { + "nodeId": "r1l3XcR17", + "pinKey": "__out__" + } + }, + { + "id": "rJlkN5R1Q", + "input": { + "nodeId": "r1niX9AJQ", + "pinKey": "SyKd0E2x-" + }, + "output": { + "nodeId": "SkUhQ5RkQ", + "pinKey": "__out__" + } + }, + { + "id": "ryFyXyJeX", + "input": { + "nodeId": "H1P1711gm", + "pinKey": "__in__" + }, + "output": { + "nodeId": "r1niX9AJQ", + "pinKey": "HJgzpqacyX" + } + } + ], + "nodes": [ + { + "description": "Fires on reading complete\n", + "id": "BJdJV9RkX", + "label": "DONE", + "position": { + "x": 68, + "y": 204 + }, + "type": "xod/patch-nodes/output-pulse" + }, + { + "description": "The latest read value in range 0.0 … 1.0", + "id": "BkoeN9Ay7", + "label": "VAL", + "position": { + "x": 34, + "y": 204 + }, + "type": "xod/patch-nodes/output-number" + }, + { + "description": "Fires if update failed. E.g. `PORT` is not an ADC port.\n", + "id": "H1P1711gm", + "label": "ERR", + "position": { + "x": 102, + "y": 204 + }, + "type": "xod/patch-nodes/output-pulse" + }, + { + "description": "Triggers new read", + "id": "SkUhQ5RkQ", + "label": "UPD", + "position": { + "x": 68, + "y": 0 + }, + "type": "xod/patch-nodes/input-pulse" + }, + { + "description": "Analog port to read from. Should start with `A` to succeed.\n", + "id": "r1l3XcR17", + "label": "PORT", + "position": { + "x": 34, + "y": 0 + }, + "type": "xod/patch-nodes/input-port" + }, + { + "id": "r1niX9AJQ", + "position": { + "x": 34, + "y": 102 + }, + "type": "xod/gpio/analog-read" + } + ] +} diff --git a/workspace/__lib__/xod/gpio/analog-read/patch.cpp b/workspace/__lib__/xod/gpio/analog-read/patch.cpp new file mode 100644 index 00000000..b0fe4f86 --- /dev/null +++ b/workspace/__lib__/xod/gpio/analog-read/patch.cpp @@ -0,0 +1,20 @@ +struct State { +}; + +{{ GENERATED_CODE }} + +void evaluate(Context ctx) { + if (!isInputDirty(ctx)) + return; + + const uint8_t port = getValue(ctx); + bool err = (port < A0 || port > A0 + NUM_ANALOG_INPUTS - 1); + if (err) { + emitValue(ctx, 1); + return; + } + + ::pinMode(port, INPUT); + emitValue(ctx, ::analogRead(port) / 1023.); + emitValue(ctx, 1); +} diff --git a/workspace/__lib__/xod/gpio/analog-read/patch.xodp b/workspace/__lib__/xod/gpio/analog-read/patch.xodp new file mode 100644 index 00000000..bb5b0f63 --- /dev/null +++ b/workspace/__lib__/xod/gpio/analog-read/patch.xodp @@ -0,0 +1,69 @@ +{ + "description": "Reads analog signal value from board ADC port", + "nodes": [ + { + "description": "Fires on reading complete", + "id": "BkGpcpcJQ", + "label": "DONE", + "position": { + "x": 102, + "y": 204 + }, + "type": "xod/patch-nodes/output-pulse" + }, + { + "id": "H1vY0E2xb", + "position": { + "x": 68, + "y": 102 + }, + "type": "xod/patch-nodes/not-implemented-in-xod" + }, + { + "description": "Fires if update failed. E.g. `PORT` is not an ADC port.", + "id": "HJgzpqacyX", + "label": "ERR", + "position": { + "x": 170, + "y": 204 + }, + "type": "xod/patch-nodes/output-pulse" + }, + { + "boundLiterals": { + "__out__": "A0" + }, + "description": "Analog port to read from. Should start with `A` to succeed.\n", + "id": "SkuhqCqym", + "label": "PORT", + "position": { + "x": 33, + "y": -1 + }, + "type": "xod/patch-nodes/input-port" + }, + { + "description": "The latest read value in range 0.0 … 1.0", + "id": "SyBtREhlW", + "label": "VAL", + "position": { + "x": 34, + "y": 204 + }, + "type": "xod/patch-nodes/output-number" + }, + { + "boundLiterals": { + "__out__": "Continuously" + }, + "description": "Triggers new read", + "id": "SyKd0E2x-", + "label": "UPD", + "position": { + "x": 102, + "y": 0 + }, + "type": "xod/patch-nodes/input-pulse" + } + ] +} diff --git a/workspace/__lib__/xod/gpio/digital-read/patch.cpp b/workspace/__lib__/xod/gpio/digital-read/patch.cpp new file mode 100644 index 00000000..f13431a1 --- /dev/null +++ b/workspace/__lib__/xod/gpio/digital-read/patch.cpp @@ -0,0 +1,20 @@ +struct State { +}; + +{{ GENERATED_CODE }} + +void evaluate(Context ctx) { + if (!isInputDirty(ctx)) + return; + + const uint8_t port = getValue(ctx); + bool err = (port < 0 || port > NUM_DIGITAL_PINS - 1); + if (err) { + emitValue(ctx, 1); + return; + } + + ::pinMode(port, INPUT); + emitValue(ctx, ::digitalRead(port)); + emitValue(ctx, 1); +} diff --git a/workspace/__lib__/xod/gpio/digital-read/patch.xodp b/workspace/__lib__/xod/gpio/digital-read/patch.xodp new file mode 100644 index 00000000..08a7735c --- /dev/null +++ b/workspace/__lib__/xod/gpio/digital-read/patch.xodp @@ -0,0 +1,69 @@ +{ + "description": "Reads digital signal value from board GPIO port", + "nodes": [ + { + "description": "Board port to read from", + "id": "B143qAq1Q", + "label": "PORT", + "position": { + "x": 33, + "y": -1 + }, + "type": "xod/patch-nodes/input-port" + }, + { + "boundLiterals": { + "__in__": "False" + }, + "description": "The last read signal value", + "id": "B1gI0urv1W", + "label": "SIG", + "position": { + "x": 34, + "y": 204 + }, + "type": "xod/patch-nodes/output-boolean" + }, + { + "description": "Fires if update failed. E.g. `PORT` does not exist.", + "id": "S1fi5aqyQ", + "label": "ERR", + "position": { + "x": 170, + "y": 204 + }, + "type": "xod/patch-nodes/output-pulse" + }, + { + "boundLiterals": { + "__out__": "Continuously" + }, + "description": "Triggers new read", + "id": "SyLCdSwJZ", + "label": "UPD", + "position": { + "x": 102, + "y": 0 + }, + "type": "xod/patch-nodes/input-pulse" + }, + { + "id": "noNativeImpl", + "position": { + "x": 68, + "y": 102 + }, + "type": "xod/patch-nodes/not-implemented-in-xod" + }, + { + "description": "Fires on reading complete", + "id": "rkw3cp9k7", + "label": "DONE", + "position": { + "x": 102, + "y": 204 + }, + "type": "xod/patch-nodes/output-pulse" + } + ] +} diff --git a/workspace/__lib__/xod/gpio/digital-write/patch.cpp b/workspace/__lib__/xod/gpio/digital-write/patch.cpp new file mode 100644 index 00000000..70dc5f0d --- /dev/null +++ b/workspace/__lib__/xod/gpio/digital-write/patch.cpp @@ -0,0 +1,21 @@ +struct State { +}; + +{{ GENERATED_CODE }} + +void evaluate(Context ctx) { + if (!isInputDirty(ctx)) + return; + + const uint8_t port = getValue(ctx); + bool err = (port < 0 || port > NUM_DIGITAL_PINS - 1); + if (err) { + emitValue(ctx, 1); + return; + } + + ::pinMode(port, OUTPUT); + const bool val = getValue(ctx); + ::digitalWrite(port, val); + emitValue(ctx, 1); +} diff --git a/workspace/__lib__/xod/gpio/digital-write/patch.xodp b/workspace/__lib__/xod/gpio/digital-write/patch.xodp new file mode 100644 index 00000000..5bfc8b37 --- /dev/null +++ b/workspace/__lib__/xod/gpio/digital-write/patch.xodp @@ -0,0 +1,66 @@ +{ + "description": "Outputs high or low signal on a board port", + "nodes": [ + { + "boundLiterals": { + "__out__": "Continuously" + }, + "description": "Triggers new write", + "id": "BygApTqym", + "label": "UPD", + "position": { + "x": 170, + "y": 0 + }, + "type": "xod/patch-nodes/input-pulse" + }, + { + "description": "State to write", + "id": "HJ6HsEngZ", + "label": "SIG", + "position": { + "x": 102, + "y": 0 + }, + "type": "xod/patch-nodes/input-boolean" + }, + { + "description": "Board port to write to", + "id": "rJjXFA9JQ", + "label": "PORT", + "position": { + "x": 34, + "y": 0 + }, + "type": "xod/patch-nodes/input-port" + }, + { + "description": "Fires if write failed. E.g. `PORT` does not exist.", + "id": "rJl2TqpqyX", + "label": "ERR", + "position": { + "x": 102, + "y": 204 + }, + "type": "xod/patch-nodes/output-pulse" + }, + { + "id": "rkwUj42xb", + "position": { + "x": 102, + "y": 102 + }, + "type": "xod/patch-nodes/not-implemented-in-xod" + }, + { + "description": "Fires on writing complete", + "id": "ry3pcpqyX", + "label": "DONE", + "position": { + "x": 34, + "y": 204 + }, + "type": "xod/patch-nodes/output-pulse" + } + ] +} diff --git a/workspace/__lib__/xod/gpio/project.xod b/workspace/__lib__/xod/gpio/project.xod new file mode 100644 index 00000000..28ab83fd --- /dev/null +++ b/workspace/__lib__/xod/gpio/project.xod @@ -0,0 +1,9 @@ +{ + "authors": [ + "XOD" + ], + "description": "Nodes of XOD to deal with GPIO (hardware pins)", + "license": "AGPL-3.0", + "name": "gpio", + "version": "0.21.0" +} diff --git a/workspace/__lib__/xod/gpio/pwm-write/patch.cpp b/workspace/__lib__/xod/gpio/pwm-write/patch.cpp new file mode 100644 index 00000000..acff2113 --- /dev/null +++ b/workspace/__lib__/xod/gpio/pwm-write/patch.cpp @@ -0,0 +1,25 @@ +struct State { +}; + +{{ GENERATED_CODE }} + +void evaluate(Context ctx) { + if (!isInputDirty(ctx)) + return; + + const uint8_t port = getValue(ctx); + bool err = (port < 0 || port > NUM_DIGITAL_PINS - 1); + + if (err) { + emitValue(ctx, 1); + return; + } + + auto duty = getValue(ctx); + duty = duty > 1 ? 1 : (duty < 0 ? 0 : duty); + uint8_t val = (uint8_t)(duty * 255.0); + + ::pinMode(port, OUTPUT); + ::analogWrite(port, val); + emitValue(ctx, 1); +} diff --git a/workspace/__lib__/xod/gpio/pwm-write/patch.xodp b/workspace/__lib__/xod/gpio/pwm-write/patch.xodp new file mode 100644 index 00000000..57af97ba --- /dev/null +++ b/workspace/__lib__/xod/gpio/pwm-write/patch.xodp @@ -0,0 +1,66 @@ +{ + "description": "Outputs hardware-supported PWM signal on a board port", + "nodes": [ + { + "boundLiterals": { + "__out__": "Continuously" + }, + "description": "Triggers new write", + "id": "B14R6TcyQ", + "label": "UPD", + "position": { + "x": 170, + "y": 0 + }, + "type": "xod/patch-nodes/input-pulse" + }, + { + "description": "Duty cycle value in range 0.0 … 1.0", + "id": "ByXnYHPyb", + "label": "DUTY", + "position": { + "x": 102, + "y": 0 + }, + "type": "xod/patch-nodes/input-number" + }, + { + "description": "Fires if write failed. E.g. `PORT` does not exist.", + "id": "S1eDAq69yX", + "label": "ERR", + "position": { + "x": 102, + "y": 204 + }, + "type": "xod/patch-nodes/output-pulse" + }, + { + "description": "Fires on writing complete", + "id": "SkwRqaq17", + "label": "DONE", + "position": { + "x": 34, + "y": 204 + }, + "type": "xod/patch-nodes/output-pulse" + }, + { + "description": "Board port to write to. If the port supports hardware PWM it will be used. If not, it will be set high for values greater than 0.5 and set low otherwise.", + "id": "Syro9C9yQ", + "label": "PORT", + "position": { + "x": 34, + "y": 0 + }, + "type": "xod/patch-nodes/input-port" + }, + { + "id": "noNativeImpl", + "position": { + "x": 68, + "y": 102 + }, + "type": "xod/patch-nodes/not-implemented-in-xod" + } + ] +} From 55a657be90613eac1065d97c17935831f95bf8d7 Mon Sep 17 00:00:00 2001 From: Kirill Shumilov Date: Tue, 29 May 2018 18:47:06 +0300 Subject: [PATCH 2/4] refactor(workspace, xod-arduino, xod-clients): update `welcome-to-xod`, fixtures and tests --- packages/xod-arduino/test/transpiler.spec.js | 13 +- .../test-func/creatingBlinkPatch.spec.js | 8 +- .../test-func/fixtures/welcome-to-xod.xodball | 20 +- .../__lib__/xod/core/analog-input/patch.xodp | 9 + .../__lib__/xod/core/digital-input/patch.xodp | 9 + .../xod/core/digital-output/patch.xodp | 9 + .../__lib__/xod/core/pwm-output/patch.xodp | 9 + .../__lib__/xod/gpio/analog-read/README.md | 1 + .../__lib__/xod/gpio/digital-read/README.md | 1 + .../__lib__/xod/gpio/digital-write/README.md | 1 + .../__lib__/xod/gpio/pwm-write/README.md | 1 + workspace/blink/__fixtures__/arduino.cpp | 252 ++++++++++++++---- workspace/blink/__fixtures__/firmware.bin | Bin 25636 -> 25748 bytes workspace/blink/__fixtures__/firmware.hex | 179 +++++++------ workspace/blink/main/patch.xodp | 4 +- .../welcome-to-xod/18-comparisons/patch.xodp | 4 +- .../welcome-to-xod/19-if-else/patch.xodp | 4 +- workspace/welcome-to-xod/20-fade/patch.xodp | 4 +- workspace/welcome-to-xod/21-pulses/patch.xodp | 2 +- workspace/welcome-to-xod/22-clock/patch.xodp | 2 +- .../28-string-concat/patch.xodp | 4 +- 21 files changed, 374 insertions(+), 162 deletions(-) create mode 100644 workspace/__lib__/xod/gpio/analog-read/README.md create mode 100644 workspace/__lib__/xod/gpio/digital-read/README.md create mode 100644 workspace/__lib__/xod/gpio/digital-write/README.md create mode 100644 workspace/__lib__/xod/gpio/pwm-write/README.md diff --git a/packages/xod-arduino/test/transpiler.spec.js b/packages/xod-arduino/test/transpiler.spec.js index a4e4b7d3..5ebc33a0 100644 --- a/packages/xod-arduino/test/transpiler.spec.js +++ b/packages/xod-arduino/test/transpiler.spec.js @@ -72,16 +72,17 @@ describe('xod-arduino transpiler', () => { assert.deepEqual(patchPaths, [ 'xod/core/constant-number', // IVAL 'xod/core/constant-boolean', // EN - 'xod/core/constant-number', // PORT + 'xod/core/constant-port', // PORT + 'xod/core/continuously', // UPD 'xod/core/clock', 'xod/core/flip-flop', - 'xod/core/digital-output', + 'xod/gpio/digital-write', ]); const ids = R.pluck('id', nodes); assert.deepEqual( ids, - [0, 1, 2, 3, 4, 5], + [0, 1, 2, 3, 4, 5, 6], 'Node IDs were not arranged in topological order' ); })); @@ -90,9 +91,9 @@ describe('xod-arduino transpiler', () => { describe('getNodeIdsMap', () => { it('should return correct NodeIdsMap', () => { const expected = { - By6HVYHZb: '3', - rkwIEFrWb: '4', - SyeDNFBWZ: '5', + By6HVYHZb: '4', + rkwIEFrWb: '5', + SyeDNFBWZ: '6', }; return loadProject([wsPath()], wsPath('blink')) diff --git a/packages/xod-client-browser/test-func/creatingBlinkPatch.spec.js b/packages/xod-client-browser/test-func/creatingBlinkPatch.spec.js index 4e22ab25..178b7fda 100644 --- a/packages/xod-client-browser/test-func/creatingBlinkPatch.spec.js +++ b/packages/xod-client-browser/test-func/creatingBlinkPatch.spec.js @@ -97,7 +97,7 @@ describe('creating blink patch', () => { it('adds rest of the nodes needed for blink patch', async () => { // please note that nodes must be added in this specific order, // or else the order of implementations in transpiled code is different from fixture - await projectBrowser.addNodeViaContextMenu('xod/core', 'digital-output'); + await projectBrowser.addNodeViaContextMenu('xod/gpio', 'digital-write'); const [digitalOutputNode] = await getSelectedNodes(page); await digitalOutputNode.drag(150, 250); @@ -109,7 +109,7 @@ describe('creating blink patch', () => { it('creates links between nodes', async () => { const clockNode = await Node.findByName(page, 'clock'); const flipFlopNode = await Node.findByName(page, 'flip-flop'); - const digitalOutputNode = await Node.findByName(page, 'digital-output'); + const digitalOutputNode = await Node.findByName(page, 'digital-write'); const clockTickPin = await clockNode.findPinByName('TICK'); @@ -148,13 +148,13 @@ describe('creating blink patch', () => { it('binds values to outputs in Inspector', async () => { const inspector = await Inspector.findOnPage(page); const clockNode = await Node.findByName(page, 'clock'); - const digitalOutputNode = await Node.findByName(page, 'digital-output'); + const digitalOutputNode = await Node.findByName(page, 'digital-write'); await clockNode.click(); await inspector.setPinValue('IVAL', '0.25'); await digitalOutputNode.click(); - await inspector.setPinValue('PORT', '13'); + await inspector.setPinValue('PORT', 'D13'); }); it('shows transpiled code for arduino', async () => { diff --git a/packages/xod-client-electron/test-func/fixtures/welcome-to-xod.xodball b/packages/xod-client-electron/test-func/fixtures/welcome-to-xod.xodball index 2337b5d4..e2e73128 100644 --- a/packages/xod-client-electron/test-func/fixtures/welcome-to-xod.xodball +++ b/packages/xod-client-electron/test-func/fixtures/welcome-to-xod.xodball @@ -1050,14 +1050,14 @@ }, "H1UNiwVt-": { "boundLiterals": { - "BJuORNheZ": "2" + "SkuhqCqym": "A2" }, "id": "H1UNiwVt-", "position": { "x": 272, "y": 0 }, - "type": "xod/core/analog-input" + "type": "xod/gpio/analog-read" }, "S1THoPVFZ": { "boundLiterals": { @@ -1172,14 +1172,14 @@ }, "H1pMkkVqZ": { "boundLiterals": { - "BJuORNheZ": "2" + "SkuhqCqym": "A2" }, "id": "H1pMkkVqZ", "position": { "x": 238, "y": -102 }, - "type": "xod/core/analog-input" + "type": "xod/gpio/analog-read" } }, "path": "@/19-if-else" @@ -1289,14 +1289,14 @@ }, "rJyzdUqjZ": { "boundLiterals": { - "BJuORNheZ": "2" + "SkuhqCqym": "A2" }, "id": "rJyzdUqjZ", "position": { "x": 306, "y": 0 }, - "type": "xod/core/analog-input" + "type": "xod/gpio/analog-read" } }, "path": "@/20-fade" @@ -1349,7 +1349,7 @@ "x": 306, "y": 204 }, - "type": "xod/core/analog-input" + "type": "xod/gpio/analog-read" }, "Skw0PzVcZ": { "boundLiterals": { @@ -1412,7 +1412,7 @@ "x": 306, "y": 408 }, - "type": "xod/core/analog-input" + "type": "xod/gpio/analog-read" }, "rk_NQmEqb": { "boundLiterals": { @@ -2019,7 +2019,7 @@ }, "By5oDu8qW": { "boundLiterals": { - "BJuORNheZ": "0" + "SkuhqCqym": "A0" }, "id": "By5oDu8qW", "label": "Photoresistor", @@ -2027,7 +2027,7 @@ "x": 578, "y": 612 }, - "type": "xod/core/analog-input" + "type": "xod/gpio/analog-read" }, "S1ykdOLqb": { "id": "S1ykdOLqb", diff --git a/workspace/__lib__/xod/core/analog-input/patch.xodp b/workspace/__lib__/xod/core/analog-input/patch.xodp index a3e410e4..5ac6bd95 100644 --- a/workspace/__lib__/xod/core/analog-input/patch.xodp +++ b/workspace/__lib__/xod/core/analog-input/patch.xodp @@ -19,6 +19,15 @@ }, "type": "xod/patch-nodes/not-implemented-in-xod" }, + { + "description": "Use `xod/gpio/analog-read` instead", + "id": "SJtJAJsJm", + "position": { + "x": 204, + "y": 102 + }, + "type": "xod/patch-nodes/deprecated" + }, { "description": "The latest read value in range 0.0 … 1.0", "id": "SyBtREhlW", diff --git a/workspace/__lib__/xod/core/digital-input/patch.xodp b/workspace/__lib__/xod/core/digital-input/patch.xodp index 6ef26146..f5c4c7c2 100644 --- a/workspace/__lib__/xod/core/digital-input/patch.xodp +++ b/workspace/__lib__/xod/core/digital-input/patch.xodp @@ -24,6 +24,15 @@ }, "type": "xod/patch-nodes/output-boolean" }, + { + "description": "Use `xod/gpio/digital-read` instead", + "id": "H1oxA1o17", + "position": { + "x": 170, + "y": 102 + }, + "type": "xod/patch-nodes/deprecated" + }, { "boundLiterals": { "__out__": "Continuously" diff --git a/workspace/__lib__/xod/core/digital-output/patch.xodp b/workspace/__lib__/xod/core/digital-output/patch.xodp index f1564252..339a519f 100644 --- a/workspace/__lib__/xod/core/digital-output/patch.xodp +++ b/workspace/__lib__/xod/core/digital-output/patch.xodp @@ -21,6 +21,15 @@ }, "type": "xod/patch-nodes/input-boolean" }, + { + "description": "Use `xod/gpio/digital-write` instead", + "id": "r1fbAJskX", + "position": { + "x": 204, + "y": 102 + }, + "type": "xod/patch-nodes/deprecated" + }, { "id": "rkwUj42xb", "position": { diff --git a/workspace/__lib__/xod/core/pwm-output/patch.xodp b/workspace/__lib__/xod/core/pwm-output/patch.xodp index 22d4a69e..9b94fe0a 100644 --- a/workspace/__lib__/xod/core/pwm-output/patch.xodp +++ b/workspace/__lib__/xod/core/pwm-output/patch.xodp @@ -1,6 +1,15 @@ { "description": "Outputs hardware-supported PWM signal on a board port", "nodes": [ + { + "description": "Use `xod/gpio/pwm-write` instead", + "id": "BJ-fAJsyQ", + "position": { + "x": 170, + "y": 102 + }, + "type": "xod/patch-nodes/deprecated" + }, { "description": "Duty cycle value in range 0.0 … 1.0", "id": "ByXnYHPyb", diff --git a/workspace/__lib__/xod/gpio/analog-read/README.md b/workspace/__lib__/xod/gpio/analog-read/README.md new file mode 100644 index 00000000..0616b17d --- /dev/null +++ b/workspace/__lib__/xod/gpio/analog-read/README.md @@ -0,0 +1 @@ +Previously known as `xod/core/analog-input`. diff --git a/workspace/__lib__/xod/gpio/digital-read/README.md b/workspace/__lib__/xod/gpio/digital-read/README.md new file mode 100644 index 00000000..b9194cdc --- /dev/null +++ b/workspace/__lib__/xod/gpio/digital-read/README.md @@ -0,0 +1 @@ +Previously known as `xod/core/digital-input`. diff --git a/workspace/__lib__/xod/gpio/digital-write/README.md b/workspace/__lib__/xod/gpio/digital-write/README.md new file mode 100644 index 00000000..f335bcdd --- /dev/null +++ b/workspace/__lib__/xod/gpio/digital-write/README.md @@ -0,0 +1 @@ +Previously known as `xod/core/digital-output`. diff --git a/workspace/__lib__/xod/gpio/pwm-write/README.md b/workspace/__lib__/xod/gpio/pwm-write/README.md new file mode 100644 index 00000000..c0297e87 --- /dev/null +++ b/workspace/__lib__/xod/gpio/pwm-write/README.md @@ -0,0 +1 @@ +Previously known as `xod/core/pwm-output`. diff --git a/workspace/blink/__fixtures__/arduino.cpp b/workspace/blink/__fixtures__/arduino.cpp index e66cc36e..59093543 100644 --- a/workspace/blink/__fixtures__/arduino.cpp +++ b/workspace/blink/__fixtures__/arduino.cpp @@ -684,6 +684,81 @@ void loop() { namespace xod { +//----------------------------------------------------------------------------- +// xod/core/continuously implementation +//----------------------------------------------------------------------------- +namespace xod__core__continuously { + +struct State { +}; + +struct Node { + State state; + TimeMs timeoutAt; + Logic output_TICK; + + union { + struct { + bool isOutputDirty_TICK : 1; + bool isNodeDirty : 1; + }; + + DirtyFlags dirtyFlags; + }; +}; + +struct output_TICK { }; + +template struct ValueType { using T = void; }; +template<> struct ValueType { using T = Logic; }; + +struct ContextObject { + Node* _node; + +}; + +using Context = ContextObject*; + +template typename ValueType::T getValue(Context ctx) { + static_assert(always_false::value, + "Invalid pin descriptor. Expected one of:" \ + "" \ + " output_TICK"); +} + +template<> Logic getValue(Context ctx) { + return ctx->_node->output_TICK; +} + +template bool isInputDirty(Context ctx) { + static_assert(always_false::value, + "Invalid input descriptor. Expected one of:" \ + ""); + return false; +} + +template void emitValue(Context ctx, typename ValueType::T val) { + static_assert(always_false::value, + "Invalid output descriptor. Expected one of:" \ + " output_TICK"); +} + +template<> void emitValue(Context ctx, Logic val) { + ctx->_node->output_TICK = val; + ctx->_node->isOutputDirty_TICK = true; +} + +State* getState(Context ctx) { + return &ctx->_node->state; +} + +void evaluate(Context ctx) { + emitValue(ctx, 1); + setTimeout(ctx, 0); +} + +} // namespace xod__core__continuously + //----------------------------------------------------------------------------- // xod/core/clock implementation //----------------------------------------------------------------------------- @@ -929,9 +1004,9 @@ void evaluate(Context ctx) { } // namespace xod__core__flip_flop //----------------------------------------------------------------------------- -// xod/core/digital-output implementation +// xod/gpio/digital-write implementation //----------------------------------------------------------------------------- -namespace xod__core__digital_output { +namespace xod__gpio__digital_write { struct State { int configuredPort = -1; @@ -939,9 +1014,13 @@ struct State { struct Node { State state; + Logic output_DONE; + Logic output_ERR; union { struct { + bool isOutputDirty_DONE : 1; + bool isOutputDirty_ERR : 1; bool isNodeDirty : 1; }; @@ -951,17 +1030,25 @@ struct Node { struct input_PORT { }; struct input_SIG { }; +struct input_UPD { }; +struct output_DONE { }; +struct output_ERR { }; template struct ValueType { using T = void; }; -template<> struct ValueType { using T = Number; }; +template<> struct ValueType { using T = uint8_t; }; template<> struct ValueType { using T = Logic; }; +template<> struct ValueType { using T = Logic; }; +template<> struct ValueType { using T = Logic; }; +template<> struct ValueType { using T = Logic; }; struct ContextObject { Node* _node; - Number _input_PORT; + uint8_t _input_PORT; Logic _input_SIG; + Logic _input_UPD; + bool _isInputDirty_UPD; }; using Context = ContextObject*; @@ -969,28 +1056,50 @@ using Context = ContextObject*; template typename ValueType::T getValue(Context ctx) { static_assert(always_false::value, "Invalid pin descriptor. Expected one of:" \ - " input_PORT input_SIG" \ - ""); + " input_PORT input_SIG input_UPD" \ + " output_DONE output_ERR"); } -template<> Number getValue(Context ctx) { +template<> uint8_t getValue(Context ctx) { return ctx->_input_PORT; } template<> Logic getValue(Context ctx) { return ctx->_input_SIG; } +template<> Logic getValue(Context ctx) { + return ctx->_input_UPD; +} +template<> Logic getValue(Context ctx) { + return ctx->_node->output_DONE; +} +template<> Logic getValue(Context ctx) { + return ctx->_node->output_ERR; +} template bool isInputDirty(Context ctx) { static_assert(always_false::value, "Invalid input descriptor. Expected one of:" \ - ""); + " input_UPD"); return false; } +template<> bool isInputDirty(Context ctx) { + return ctx->_isInputDirty_UPD; +} + template void emitValue(Context ctx, typename ValueType::T val) { static_assert(always_false::value, "Invalid output descriptor. Expected one of:" \ - ""); + " output_DONE output_ERR"); +} + +template<> void emitValue(Context ctx, Logic val) { + ctx->_node->output_DONE = val; + ctx->_node->isOutputDirty_DONE = true; +} +template<> void emitValue(Context ctx, Logic val) { + ctx->_node->output_ERR = val; + ctx->_node->isOutputDirty_ERR = true; } State* getState(Context ctx) { @@ -998,8 +1107,17 @@ State* getState(Context ctx) { } void evaluate(Context ctx) { + if (!isInputDirty(ctx)) + return; + + const uint8_t port = getValue(ctx); + bool err = (port < 0 || port > NUM_DIGITAL_PINS - 1); + if (err) { + emitValue(ctx, 1); + return; + } + State* state = getState(ctx); - const int port = (int)getValue(ctx); if (port != state->configuredPort) { ::pinMode(port, OUTPUT); // Store configured port so to avoid repeating `pinMode` call if just @@ -1009,9 +1127,10 @@ void evaluate(Context ctx) { const bool val = getValue(ctx); ::digitalWrite(port, val); + emitValue(ctx, 1); } -} // namespace xod__core__digital_output +} // namespace xod__gpio__digital_write } // namespace xod @@ -1032,27 +1151,42 @@ constexpr Number node_0_output_VAL = 0.25; constexpr Logic node_1_output_VAL = true; -constexpr Number node_2_output_VAL = 13; +constexpr uint8_t node_2_output_VAL = 13; constexpr Logic node_3_output_TICK = false; -xod__core__clock::Node node_3 = { - xod__core__clock::State(), // state default +xod__core__continuously::Node node_3 = { + xod__core__continuously::State(), // state default 0, // timeoutAt node_3_output_TICK, // output TICK default false, // TICK dirty true // node itself dirty }; -constexpr Logic node_4_output_MEM = false; -xod__core__flip_flop::Node node_4 = { +constexpr Logic node_4_output_TICK = false; +xod__core__clock::Node node_4 = { + xod__core__clock::State(), // state default + 0, // timeoutAt + node_4_output_TICK, // output TICK default + false, // TICK dirty + true // node itself dirty +}; + +constexpr Logic node_5_output_MEM = false; +xod__core__flip_flop::Node node_5 = { xod__core__flip_flop::State(), // state default - node_4_output_MEM, // output MEM default + node_5_output_MEM, // output MEM default true, // MEM dirty true // node itself dirty }; -xod__core__digital_output::Node node_5 = { - xod__core__digital_output::State(), // state default +constexpr Logic node_6_output_DONE = false; +constexpr Logic node_6_output_ERR = false; +xod__gpio__digital_write::Node node_6 = { + xod__gpio__digital_write::State(), // state default + node_6_output_DONE, // output DONE default + node_6_output_ERR, // output ERR default + false, // DONE dirty + false, // ERR dirty true // node itself dirty }; @@ -1064,6 +1198,7 @@ void runTransaction() { // Check for timeouts detail::checkTriggerTimeout(&node_3); + detail::checkTriggerTimeout(&node_4); // defer-* nodes are always at the very bottom of the graph, so no one will // recieve values emitted by them. We must evaluate them before everybody @@ -1073,14 +1208,30 @@ void runTransaction() { // evaluate on the regular pass only if it pushed a new value again. // Evaluate all dirty nodes - { // xod__core__clock #3 + { // xod__core__continuously #3 if (node_3.isNodeDirty) { XOD_TRACE_F("Eval node #"); XOD_TRACE_LN(3); - xod__core__clock::ContextObject ctxObj; + xod__core__continuously::ContextObject ctxObj; ctxObj._node = &node_3; + // copy data from upstream nodes into context + + xod__core__continuously::evaluate(&ctxObj); + + // mark downstream nodes dirty + node_6.isNodeDirty |= node_3.isOutputDirty_TICK; + } + } + { // xod__core__clock #4 + if (node_4.isNodeDirty) { + XOD_TRACE_F("Eval node #"); + XOD_TRACE_LN(4); + + xod__core__clock::ContextObject ctxObj; + ctxObj._node = &node_4; + // copy data from upstream nodes into context ctxObj._input_EN = node_1_output_VAL; ctxObj._input_IVAL = node_0_output_VAL; @@ -1091,43 +1242,46 @@ void runTransaction() { xod__core__clock::evaluate(&ctxObj); // mark downstream nodes dirty - node_4.isNodeDirty |= node_3.isOutputDirty_TICK; + node_5.isNodeDirty |= node_4.isOutputDirty_TICK; } } - { // xod__core__flip_flop #4 - if (node_4.isNodeDirty) { - XOD_TRACE_F("Eval node #"); - XOD_TRACE_LN(4); - - xod__core__flip_flop::ContextObject ctxObj; - ctxObj._node = &node_4; - - // copy data from upstream nodes into context - ctxObj._input_TGL = node_3.output_TICK; - - ctxObj._isInputDirty_SET = false; - ctxObj._isInputDirty_RST = false; - ctxObj._isInputDirty_TGL = node_3.isOutputDirty_TICK; - - xod__core__flip_flop::evaluate(&ctxObj); - - // mark downstream nodes dirty - node_5.isNodeDirty |= node_4.isOutputDirty_MEM; - } - } - { // xod__core__digital_output #5 + { // xod__core__flip_flop #5 if (node_5.isNodeDirty) { XOD_TRACE_F("Eval node #"); XOD_TRACE_LN(5); - xod__core__digital_output::ContextObject ctxObj; + xod__core__flip_flop::ContextObject ctxObj; ctxObj._node = &node_5; // copy data from upstream nodes into context - ctxObj._input_PORT = node_2_output_VAL; - ctxObj._input_SIG = node_4.output_MEM; + ctxObj._input_TGL = node_4.output_TICK; - xod__core__digital_output::evaluate(&ctxObj); + ctxObj._isInputDirty_SET = false; + ctxObj._isInputDirty_RST = false; + ctxObj._isInputDirty_TGL = node_4.isOutputDirty_TICK; + + xod__core__flip_flop::evaluate(&ctxObj); + + // mark downstream nodes dirty + node_6.isNodeDirty |= node_5.isOutputDirty_MEM; + } + } + { // xod__gpio__digital_write #6 + if (node_6.isNodeDirty) { + XOD_TRACE_F("Eval node #"); + XOD_TRACE_LN(6); + + xod__gpio__digital_write::ContextObject ctxObj; + ctxObj._node = &node_6; + + // copy data from upstream nodes into context + ctxObj._input_PORT = node_2_output_VAL; + ctxObj._input_SIG = node_5.output_MEM; + ctxObj._input_UPD = node_3.output_TICK; + + ctxObj._isInputDirty_UPD = node_3.isOutputDirty_TICK; + + xod__gpio__digital_write::evaluate(&ctxObj); // mark downstream nodes dirty } @@ -1137,7 +1291,9 @@ void runTransaction() { node_3.dirtyFlags = 0; node_4.dirtyFlags = 0; node_5.dirtyFlags = 0; + node_6.dirtyFlags = 0; detail::clearStaleTimeout(&node_3); + detail::clearStaleTimeout(&node_4); XOD_TRACE_F("Transaction completed, t="); XOD_TRACE_LN(millis()); diff --git a/workspace/blink/__fixtures__/firmware.bin b/workspace/blink/__fixtures__/firmware.bin index af9b9bec2f3ef0688510da17bdb39f52170a38e4..5f9e57403c1fe1e3cac1e1e0305d3c4d52f88e02 100644 GIT binary patch delta 2989 zcmb7Ge@qnF9e;0TXLc4?c40x8<=4PMSPnfvj@}x@EDH|kVi$|;sbF2fyY3b1E!ZFI zibboWww8){XHQH_HQuFXS{vzPdvM;m8q=gCnxHMsd3QvbJApb`=lkQm`Ods~`_K5z5!{3J3erfLfPR+yJkT@a&^(8#4}(npi_f!hu8DJT zsn3}l0sS2yg5P=oj2?PHw}ABJJn_l=yf6^uEWH1JWO32+3$sSJ21i%Lu)%vIo@{z3 z7$utFBuU4Ps*}wE(m+FJI@kctw|8z1dsNJ9?qs}7AT!Y957t>tMoEi^YdF~u*c(7< zlaAF>WD{=2RuaLEp39+N#30`tD+ zO21Ry7DDQ!83)bQaXdt`9S0slOYf*Pz2}gcJJZ<_WKdSAQJ{h^=Xxs>ZK(whkKJb!*mj0a>5ks4Jn? zu;+8av`+m5%4!ea)IRICsf=a0PaMULKFv_(Q^QRRK_DlWReA$*X4h2>_4jG!GJRUs z&vy-ICdu=86GW(H&j-(U-PC^9f7~dJ^^}AIa-YVPQCDMGpJpm+4^!96Q;6-;1aRL9 z=?63h-2YvG5^6T4j){;45%X;N-CZ<>BiyI)Wo_X(UnBUg*INU~0c-6%A5=Q*gCA~IA2>D4-d*&3xbeR@?aSci}hLFy|SRJqpjGMz zv6`ZBGEy79!fFzkWXtgY5e@5BbV4oP(geijg`v?3^^z?P)xy$NN}KShS%UD`pz(JF z;}BR|bi9CTA*T$*%s=Dgiou?=AqE?;??59IYatH|@{5n+uHiB{PkupW>E5`J+I;~# z5Sh~<2U33>XV0n8d6(BXmn}R~I0zf$k4BU<*R$fhUig!<|qamhGT< zjZ~Pfn)b)39;rVfri4=b1=*KaNp>cLt7%n%O9}4!M5B}gasfcsGo&it7dKx*qST`r zf1Cw6x@i(11pQYCZ~;U>2PsZ`1$!ahF5FHYB^ITB`NTGnSdv0(lTy5Pe-c#RPRf(S z(w$EXATN&N31*ElDbQ~DDT*DU(I9doyh9pPQU>yDMiNTO#Vg4`QW0D)B{jn}+x!Ms z3ze=UN6e+Tn_M#6(ivz)wu@cERIou$K7#kG<%5glj(Hc?4H3J@w&cYeUEN8tC;4>V zc92>C*qZ^LUlcn49L5W6v&=qsPpU1M_<*v-@*75JOijZHtW7}00H2NQw0&d_%sB_B zbAWs^tu1@*8*h~82|!U`qbC7;_wS>LKasIC!qhgB@1}plykkM$9b_b3Nk0afAl1Uz zc^`80!aP8ZENa3B$*o1FMQUfgO#WrfpU2Gh6QsSE;0}^gi%)aZI!@MPIPfv@y^JCp zBu6tU;5w4wgR3YOfxcQS#iOJ{w29qj+J8t*e;>u(o|i2kUm+*N6*xj}h?V#_vDlB| zUyyg~?^Qiaf^QoD3CZqHEJkS*{L&`RZg=EUBc_lo* z5%d|&%CCz4#w08OxgM~wS^41$t5|+cChsrpa7gJbJ%sU5l2ZO@ zYDYQz0jw6#S->p-Clh|zGVV?AI;K=DYr>`p12izydrujtIE2mg_BI7=3#GjBJFNKw zxP``>?VV4^JFbs88ugaayS$W5r~HT19r!Ap0h%(hath-KCA!MSucHiC#MpowoGi!= z|6@3NYqHR&E9wZKlEfIQtWI!&r9f;E~!TB&1 z{$NxhD2E%dA2}EJzL_!Wt@4AML9uO1}~#R zK~9nFav?1Dty$hvb^eE!vw+z9JW&~|Z{u@AW&y2B7SM8-j{r6S#sKR9<7R;j_?9dE zzKaQ49>Hn+Tll-|g;@c-1sDg2@aMTETR{6jUO4_2fA=%|8gS|-XE$$69WRAwSU}g{ z><}#iD$gW2%^T9^gEDkxkq!eP1KHiYI;opAN}mB5V4n$YDPXP50@>HnL6ZD}5^U*W baX-1UwN#P(8k_bZbP)wY%xn;@PC)+x?%B3P delta 2887 zcmb7GeQ*=U6@RPK$4R#2lZ8N*KR6+%Yz+8AxQGE$*|N_D8OzjZQ?MzDOEK!NtM^F{^z!0kb9ivge;DwE$34SgY7h2{zr^Q@alV%` z9hdo374WbV5kp)<;M2nz*o~y0%@7aG$k~AyXZHC2>BsC3FHA`28r)sp5pA$PZ86^9 z4I-PtNA1Mz^0n|FqlQWLD2bf4I!PPpjeu-WiTo7ZL0Sk;&l7h~G@*}ZC4Yp-g5r(n zq{G$RC~<+TDiz^E$<>{_8uf#`Yh>v)wF=}bN_m5KU3)|bACPim&r~l-ft$G7x|cTo zal%hB0+-%spQzHbbr!GxLyWll6m4lp?rzplz`mvQE5V4A+XcVuQ_Q96WVd>fQNP zmow0Y8gGYp=Ou&jf`H+HW(5g-qHCJfueL?N-QIaJ>g`w@yQqNh^Xk1m}XxBNz&WKRs2n$lQPC#28wQHNbfpmKOa3c@Vx{$1v zM(apDk?V#b)#SAJiM)E)m(WV}F(R)}bP~u7_lR6hU(lA36g{V1pLG~>`KH1H=jz7& z4ALT9e%8|}nWd|s-_R9lM3wgHoSEGzw$i*N9`0G_uXWP0T-7&HD!HV^632>wyZh>C z;s!dc12@R;rMV$FIpgBg`)n`YS%ll^4yPuz>~H&>FA1q#^l^QW>*+hkt9>b*bgEiE zDoRAIzGGDMK)(9#@%$JYchcYLJsFWZpJ8cAarwLGr}~ZaUQ#M*ZjAdRmKQ4klW3NRN$Z7 zyiXBv(&SYEYdAP8Bn7OZt{&uDX^z4plF*4^_mMH zH>zX|{CE!PSZy2#Ylw#=9;s183}K{~ zGae-!^roqTem`>!>8B?$J)7sHZDSe5*7G=_Xbn2UnV4w*eIW?0oZh5j5-mY;+}W#6 z_T3k-BnR(n(O#J*W16+`ah@HPpF+xwGqLPy@Tw@7VIlUXGNDV&^T~3$-t574hq(pY z^X6^3)wqJ?wANBm6h#lNi(9Mla?$DqfEVdIZy&{I59(Uq{uUju{LsbNPa?FqEt|rj ze|C2s4Qud1;nhpAs`zMG)?j5T_8viypkvC?g&vw9o~rU`CL8P4@d;aGW1e=Dtg?kO zMl`|0b!?Nn;#T1`O+)CqU-QQ8bSUdDA^9aP{#kaL`J>Qva0g@v2r`7+|Ix^fl)swY zR=_)(efzO2a=u!lJC9aBpW24)=eGE8_8ek*A)AMH5#!nPL)%}?;pzM$Eb}l;&S}q| zelZ(F_S$C1v$59>zN~M;n3Y!AspjJl{j>e+=B=}qww0F6joS~PCW1I(KJzijXB(?z2NYm_P)c5ZCOqT+dVlR)St*HS^9pa zL5$Y19{|A{llvB=wwu}M2icDO7iaoe*gr#c&Q)YTt#Ve7?es^^L!_6QbAMlX17r9R zz+3zuWEn&jvsJ+5q3?DJ>U)iT78Bkv`dK{ioBU@`HXwJHlDrjW=D`@udL~|*w}p@< zdMy75oWNQ@wY{5opkoDPT8qVhgkt*=)Ri{)(Kf*#HN-xoWk=2y(_po9!>on?*7(hmeS|EfJInr_ zZ7jpjcP$UKh~0>RTKa?Xa@`V4p)`K1yqOp;Vh9EdI{2PBX{o zjH5RkO*&|8-C)t{SQ7R;IL)>D4^2a@_4~;XeWl*k)BlhaQqyV7PW73GSd0_JRP_=p z;w7u(losKVI;MCJWcH=JEuZsDQ){1ELcDTqyMF$AnLHdZg`CX~pwnJzZ`qQ)qXeT6 zoB_X7k6U;+>!i=MJYwWP#fJdUTP?K$n_@d>5I;uL;1<)4)`i^hO+3Bb+Cg`P`S@6C c7f1Hejo}iW9RY^;-mt=D0%)cp4M;rv7mNsU%K!iX diff --git a/workspace/blink/__fixtures__/firmware.hex b/workspace/blink/__fixtures__/firmware.hex index ef9426c5..593fc030 100644 --- a/workspace/blink/__fixtures__/firmware.hex +++ b/workspace/blink/__fixtures__/firmware.hex @@ -2,91 +2,106 @@ :100010000C9479000C9479000C9479000C9479007C :100020000C9479000C9479000C9479000C9479006C :100030000C9479000C9479000C9479000C9479005C -:100040000C9406020C9479000C9479000C947900BD +:100040000C947A020C9479000C9479000C94790049 :100050000C9479000C9479000C9479000C9479003C -:100060000C9479000C947900000000080002010053 -:100070000003040700000000000000000000000072 -:10008000250028002B0000000000240027002A0083 -:10009000040404040404040402020202020203032E -:1000A0000303030301020408102040800102040836 -:1000B000102001020408102011241FBECFEFD8E049 -:1000C000DEBFCDBF11E0A0E0B1E0E6E9F5E002C09F -:1000D00005900D92A031B107D9F721E0A0E1B1E080 -:1000E00001C01D92AE31B207E1F70E9450020C949C -:1000F000C9020C9400003FB7F89480911A019091C6 -:100100001B01A0911C01B0911D0126B5A89B05C043 +:100060000C9479000C947900000000002400270013 +:100070002A0000000000250028002B0004040404CE +:100080000404040402020202020203030303030342 +:10009000010204081020408001020408102001021F +:1000A00004081020000000080002010000030407FB +:1000B000000000000000000011241FBECFEFD8E0B8 +:1000C000DEBFCDBF11E0A0E0B1E0EEE7F6E002C098 +:1000D00005900D92AA31B107D9F721E0AAE1B1E06C +:1000E00001C01D92A832B207E1F70E94C4020C942D +:1000F0003D030C9400003FB7F89480912401909147 +:100100002501A0912601B091270126B5A89B05C025 :100110002F3F19F00196A11DB11D3FBFBA2FA92F86 :10012000982F8827820F911DA11DB11DBC01CD0103 :1001300042E0660F771F881F991F4A95D1F70895EF -:100140000F931F932FB7F894809116019091170188 -:10015000A0911801B09119012FBF809310019093C5 -:100160001101A0931201B093130140910A01509123 -:100170000B0160910C0170910D0141155105610554 +:100140000F931F932FB7F894809120019091210174 +:10015000A0912201B09123012FBF80931A019093A7 +:100160001B01A0931C01B0931D01409113015091FC +:100170001401609115017091160141155105610539 :10018000710531F021E0481759076A077B0708F02D -:1001900020E080910F0181FB992790F9922B90FB31 -:1001A00081F980930F01992309F446C04091100111 -:1001B000509111016091120170911301DB01CA018C -:1001C00086509F4FAF4FBF4F209114012223A1F0C3 -:1001D0000091060110910701209108013091090159 -:1001E000041715072607370708F4E3C0801791079F -:1001F000A207B30708F4DDC000910A0110910B01BA -:1002000020910C0130910D010115110521053105D9 -:1002100031F0041715072607370708F4DBC0909163 -:100220000F0191708091050181FB222720F9922B0B -:1002300090FB81F9809305018091050181FF1CC02D -:100240009091040180910F0180FF03C081E0892714 -:1002500001C080E0891739F0809304018091050185 -:100260008160809305019091050180910201982B96 -:1002700090FB80F9809302018091020180FF70C0A1 -:100280002091040180910001909101010D9709F1E5 -:10029000E1EBF0E03491EDE9F0E08491882399F00E -:1002A00090E0880F991FFC01EA57FF4FA591B49188 -:1002B000FC01E458FF4F859194918FB7F894EC912D -:1002C000E32BEC938FBF8DE090E09093010180933E -:1002D0000001E5E7F0E09491E1EBF0E08491EDE9D5 -:1002E000F0E0E491EE2309F43BC0992339F1933017 -:1002F00091F038F49130A9F0923001F594B59F7DDA -:1003000012C0973091F09830A1F09430B9F49091E8 -:1003100080009F7D03C0909180009F779093800024 -:100320000DC094B59F7794BD09C09091B0009F77A0 -:1003300003C09091B0009F7D9093B000F0E0EE0F6D -:10034000FF1FE458FF4FA591B4919FB7F894EC912B -:10035000211103C080958E2301C08E2B8C939FBFEB -:1003600010920F01109205011092020180910A0172 -:1003700090910B01A0910C01B0910D010097A10586 -:10038000B10509F440C040911001509111016091F4 -:1003900012017091130184179507A607B70798F506 -:1003A00010920A0110920B0110920C0110920D0193 -:1003B0002AC08093060190930701A0930801B0938F -:1003C000090180930A0190930B01A0930C01B09353 -:1003D0000D0112CF21E020930E0120910F01216029 -:1003E00020930F018093060190930701A0930801C9 -:1003F000B093090180930A0190930B01A0930C0123 -:10040000B0930D010CCF1F910F9108951F920F9281 -:100410000FB60F9211242F933F938F939F93AF9317 -:10042000BF938091160190911701A0911801B0918E -:1004300019013091150123E0230F2D3720F4019687 -:10044000A11DB11D05C026E8230F0296A11DB11DF7 -:10045000209315018093160190931701A093180122 -:10046000B093190180911A0190911B01A0911C0178 -:10047000B0911D010196A11DB11D80931A019093A9 -:100480001B01A0931C01B0931D01BF91AF919F91DF -:100490008F913F912F910F900FBE0F901F90189545 -:1004A000789484B5826084BD84B5816084BD85B54F -:1004B000826085BD85B5816085BD80916E0081605B -:1004C00080936E0010928100809181008260809301 -:1004D0008100809181008160809381008091800003 -:1004E0008160809380008091B10084608093B1002E -:1004F0008091B00081608093B00080917A00846028 -:1005000080937A0080917A00826080937A00809153 -:100510007A00816080937A0080917A00806880936D -:100520007A001092C1000E947B004B015C0184E6BE -:10053000C82ED12CE12CF12C0E947B00DC01CB01D8 -:1005400088199909AA09BB09883E9340A105B105FC -:1005500058F021E0C21AD108E108F10888EE880EAF -:1005600083E0981EA11CB11CC114D104E104F10464 -:1005700019F781E0809314010E94A00010921401E9 -:10058000C0E0D0E00E94A0002097E1F30E940000AC -:06059000F9CFF894FFCF43 -:10059600FFFF010000030000000000000000000251 +:1001900020E08091180181FB992790F9292B20FB01 +:1001A00081F98093180180910C0190910D01A0912B +:1001B0000E01B0910F010097A105B10571F031E07A +:1001C00040911A0150911B0160911C0170911D0119 +:1001D00084179507A607B70708F030E08091110152 +:1001E00081FB992790F9932B90FB81F98093110162 +:1001F0002223E9F081E0809317018091180181604A +:100200008093180140911A0150911B0160911C01CB +:1002100070911D01409313015093140160931501D7 +:1002200070931601809107018460809307019923E0 +:1002300009F446C040911A0150911B0160911C01C4 +:1002400070911D01DB01CA0186509F4FAF4FBF4F18 +:1002500020911E012223A1F00091080110910901B3 +:1002600020910A0130910B01041715072607370763 +:1002700008F40AC180179107A207B30708F404C164 +:1002800000910C0110910D0120910E0130910F0190 +:10029000011511052105310531F004171507260751 +:1002A000370708F402C19091110191708091020109 +:1002B00081FB222720F9922B90FB81F98093020188 +:1002C0008091020181FF20C0909101018091110174 +:1002D00080FF03C081E0892701C080E0891739F0E1 +:1002E00080930101809102018160809302019091CD +:1002F000020191708091070182FB222720F9922B45 +:1003000090FB82F9809307018091070182FF77C0FB +:10031000209101018091180180FF71C0809103013B +:10032000909104010D9709F1EDE9F0E03491E9E8CD +:10033000F0E08491882399F090E0880F991FFC01E8 +:10034000E859FF4FA591B491FC01EE58FF4F8591FC +:1003500094918FB7F894EC91E32BEC938FBF8DE0E1 +:1003600090E09093040180930301E1EBF0E094911D +:10037000EDE9F0E08491E9E8F0E0E491EE2309F49E +:100380003BC0992339F1933091F038F49130A9F0C2 +:10039000923001F594B59F7D12C0973091F098305E +:1003A000A1F09430B9F4909180009F7D03C09091AA +:1003B00080009F77909380000DC094B59F7794BD87 +:1003C00009C09091B0009F7703C09091B0009F7DCD +:1003D0009093B000F0E0EE0FFF1FEE58FF4FA59195 +:1003E000B4919FB7F894EC91211103C080958E23AE +:1003F00001C08E2B8C939FBF81E0809305011092EA +:1004000018011092110110920201109207018091BF +:10041000130190911401A0911501B091160100975C +:10042000A105B10571F040911A0150911B01609135 +:100430001C0170911D0184179507A607B70708F4E2 +:100440004DC080910C0190910D01A0910E01B091D1 +:100450000F010097A105B10509F449C040911A01A7 +:1004600050911B0160911C0170911D01841795072B +:10047000A607B707E0F510920C0110920D0110923B +:100480000E0110920F0133C080930801909309016F +:10049000A0930A01B0930B0180930C0190930D017E +:1004A000A0930E01B0930F01EBCE21E02093100139 +:1004B00020911101216020931101809308019093F4 +:1004C0000901A0930A01B0930B0180930C01909352 +:1004D0000D01A0930E01B0930F01E5CE1092130110 +:1004E000109214011092150110921601AACF1F91BB +:1004F0000F9108951F920F920FB60F9211242F9310 +:100500003F938F939F93AF93BF93809120019091DE +:100510002101A0912201B091230130911F0123E01C +:10052000230F2D3720F40196A11DB11D05C026E82B +:10053000230F0296A11DB11D20931F01809320015E +:1005400090932101A0932201B09323018091240173 +:1005500090912501A0912601B09127010196A11D3E +:10056000B11D8093240190932501A0932601B0939F +:100570002701BF91AF919F918F913F912F910F9044 +:100580000FBE0F901F901895789484B5826084BD3B +:1005900084B5816084BD85B5826085BD85B5816087 +:1005A00085BD80916E00816080936E001092810005 +:1005B00080918100826080938100809181008160C0 +:1005C0008093810080918000816080938000809181 +:1005D000B10084608093B1008091B000816080930D +:1005E000B00080917A00846080937A0080917A00D4 +:1005F000826080937A0080917A00816080937A0093 +:1006000080917A00806880937A001092C1000E94E5 +:100610007B004B015C0184E6C82ED12CE12CF12C2F +:100620000E947B00DC01CB0188199909AA09BB094A +:10063000883E9340A105B10558F021E0C21AD108C7 +:10064000E108F10888EE880E83E0981EA11CB11C19 +:10065000C114D104E104F10419F781E080931E0173 +:100660000E94A00010921E01C0E0D0E00E94A000F5 +:0E0670002097E1F30E940000F9CFF894FFCF2D +:10067E00000003FFFF000004000000000000000067 +:0A068E00000200000000000002005E :00000001FF diff --git a/workspace/blink/main/patch.xodp b/workspace/blink/main/patch.xodp index d9b8c4dd..0105e3bd 100644 --- a/workspace/blink/main/patch.xodp +++ b/workspace/blink/main/patch.xodp @@ -38,7 +38,7 @@ }, { "boundLiterals": { - "B134j4neZ": "13", + "rJjXFA9JQ": "D13", "HJ6HsEngZ": "False" }, "id": "SyeDNFBWZ", @@ -46,7 +46,7 @@ "x": 0, "y": 204 }, - "type": "xod/core/digital-output" + "type": "xod/gpio/digital-write" }, { "boundLiterals": { diff --git a/workspace/welcome-to-xod/18-comparisons/patch.xodp b/workspace/welcome-to-xod/18-comparisons/patch.xodp index ebf9c657..c3ad47ae 100644 --- a/workspace/welcome-to-xod/18-comparisons/patch.xodp +++ b/workspace/welcome-to-xod/18-comparisons/patch.xodp @@ -59,14 +59,14 @@ }, { "boundLiterals": { - "BJuORNheZ": "2" + "SkuhqCqym": "A2" }, "id": "H1UNiwVt-", "position": { "x": 272, "y": 0 }, - "type": "xod/core/analog-input" + "type": "xod/gpio/analog-read" }, { "boundLiterals": { diff --git a/workspace/welcome-to-xod/19-if-else/patch.xodp b/workspace/welcome-to-xod/19-if-else/patch.xodp index 375521f5..c13644b4 100644 --- a/workspace/welcome-to-xod/19-if-else/patch.xodp +++ b/workspace/welcome-to-xod/19-if-else/patch.xodp @@ -97,14 +97,14 @@ }, { "boundLiterals": { - "BJuORNheZ": "2" + "SkuhqCqym": "A2" }, "id": "H1pMkkVqZ", "position": { "x": 238, "y": -102 }, - "type": "xod/core/analog-input" + "type": "xod/gpio/analog-read" } ] } diff --git a/workspace/welcome-to-xod/20-fade/patch.xodp b/workspace/welcome-to-xod/20-fade/patch.xodp index 3d7ae62b..07a86e4e 100644 --- a/workspace/welcome-to-xod/20-fade/patch.xodp +++ b/workspace/welcome-to-xod/20-fade/patch.xodp @@ -103,14 +103,14 @@ }, { "boundLiterals": { - "BJuORNheZ": "2" + "SkuhqCqym": "A2" }, "id": "rJyzdUqjZ", "position": { "x": 306, "y": 0 }, - "type": "xod/core/analog-input" + "type": "xod/gpio/analog-read" } ] } diff --git a/workspace/welcome-to-xod/21-pulses/patch.xodp b/workspace/welcome-to-xod/21-pulses/patch.xodp index 96c7ac44..84e64dbb 100644 --- a/workspace/welcome-to-xod/21-pulses/patch.xodp +++ b/workspace/welcome-to-xod/21-pulses/patch.xodp @@ -46,7 +46,7 @@ "x": 306, "y": 204 }, - "type": "xod/core/analog-input" + "type": "xod/gpio/analog-read" }, { "boundLiterals": { diff --git a/workspace/welcome-to-xod/22-clock/patch.xodp b/workspace/welcome-to-xod/22-clock/patch.xodp index 465d313b..d86dbf0d 100644 --- a/workspace/welcome-to-xod/22-clock/patch.xodp +++ b/workspace/welcome-to-xod/22-clock/patch.xodp @@ -45,7 +45,7 @@ "x": 306, "y": 408 }, - "type": "xod/core/analog-input" + "type": "xod/gpio/analog-read" }, { "boundLiterals": { diff --git a/workspace/welcome-to-xod/28-string-concat/patch.xodp b/workspace/welcome-to-xod/28-string-concat/patch.xodp index 1b1fe06d..31dd3967 100644 --- a/workspace/welcome-to-xod/28-string-concat/patch.xodp +++ b/workspace/welcome-to-xod/28-string-concat/patch.xodp @@ -60,7 +60,7 @@ }, { "boundLiterals": { - "BJuORNheZ": "0" + "SkuhqCqym": "A0" }, "id": "By5oDu8qW", "label": "Photoresistor", @@ -68,7 +68,7 @@ "x": 578, "y": 612 }, - "type": "xod/core/analog-input" + "type": "xod/gpio/analog-read" }, { "id": "S1ykdOLqb", From 0d712201a3b33f9373183fe49f3fdd9c72c66545 Mon Sep 17 00:00:00 2001 From: Kirill Shumilov Date: Tue, 29 May 2018 18:55:05 +0300 Subject: [PATCH 3/4] chore(docs): replace mentions of old gpio nodes from `xod/core` with new nodes from `xod/gpio` and `xod/common-hardware/analog-sensor` --- docs/guide/analog-sensor-node/README.md | 2 +- .../sharp-irm.step1.xodball | 192 ++--- .../sharp-irm.step2.xodball | 434 +++++------ .../sharp-irm.step3.xodball | 674 +++++++++--------- docs/guide/analog-sensor-node/step1.patch.png | Bin 35360 -> 25523 bytes .../guide/analog-sensor-node/step2a.patch.png | Bin 37737 -> 27374 bytes docs/guide/analog-sensor-node/step2b.gif | Bin 12158 -> 19013 bytes .../guide/analog-sensor-node/step3a.patch.png | Bin 43198 -> 30717 bytes .../guide/analog-sensor-node/step3b.patch.png | Bin 13208 -> 13624 bytes docs/reference/README.md | 1 + docs/reference/supported-hardware/index.yaml | 2 +- docs/tutorial/17-ldr/README.md | 2 +- docs/tutorial/18-comparisons/README.md | 2 +- docs/tutorial/21-pulses/README.md | 2 +- docs/tutorial/complex-projects/README.md | 4 +- .../data-types-and-conversions/README.md | 10 +- docs/tutorial/nodes-and-links/README.md | 18 +- 17 files changed, 672 insertions(+), 671 deletions(-) mode change 100644 => 100755 docs/guide/analog-sensor-node/step1.patch.png mode change 100644 => 100755 docs/guide/analog-sensor-node/step2a.patch.png mode change 100644 => 100755 docs/guide/analog-sensor-node/step3a.patch.png diff --git a/docs/guide/analog-sensor-node/README.md b/docs/guide/analog-sensor-node/README.md index 54e1f0e0..73cb6f2c 100644 --- a/docs/guide/analog-sensor-node/README.md +++ b/docs/guide/analog-sensor-node/README.md @@ -57,7 +57,7 @@ correctness. Here is our patch: ![Single patch implementation](./step1.patch.png) -Bind the `PORT` value of `analog-input` to the board pin number you’ve +Bind the `PORT` value of `analog-sensor` to the board pin number you’ve connected the sensor. Upload with debugger enabled, slowly move a book or sheet of paper ahead of the sensor and observe value change. Do measurements look realistic? Cool! We have a “body” for our new node. diff --git a/docs/guide/analog-sensor-node/sharp-irm.step1.xodball b/docs/guide/analog-sensor-node/sharp-irm.step1.xodball index 1ab8422e..887ad5b5 100644 --- a/docs/guide/analog-sensor-node/sharp-irm.step1.xodball +++ b/docs/guide/analog-sensor-node/sharp-irm.step1.xodball @@ -3,178 +3,178 @@ "patches": { "@/main": { "comments": { - "BJt6agslz": { - "id": "BJt6agslz", - "position": { - "x": 204, - "y": 102 - }, - "size": { - "width": 136, - "height": 51 - }, - "content": "Multiply by 5 to get the voltage level" - }, "BJ8kCxoez": { + "content": "Map the voltage to inverse distance (1/cm)", "id": "BJ8kCxoez", "position": { "x": 306, "y": 204 }, "size": { - "width": 136, - "height": 51 + "height": 51, + "width": 136 + } + }, + "BJt6agslz": { + "content": "Multiply by 5 to get the voltage level", + "id": "BJt6agslz", + "position": { + "x": 204, + "y": 102 }, - "content": "Map the voltage to inverse distance (1/cm)" + "size": { + "height": 51, + "width": 136 + } }, "BkgWAgjeM": { + "content": "Invert the distance", "id": "BkgWAgjeM", "position": { "x": 170, "y": 306 }, "size": { - "width": 136, - "height": 51 - }, - "content": "Invert the distance" + "height": 51, + "width": 136 + } }, "HksWAeoeG": { + "content": "Divide by 100 to convert centimeters to meters", "id": "HksWAeoeG", "position": { "x": 170, "y": 408 }, "size": { - "width": 170, - "height": 51 - }, - "content": "Divide by 100 to convert centimeters to meters" + "height": 51, + "width": 170 + } } }, "links": { - "SJHwjejlM": { - "id": "SJHwjejlM", - "output": { - "nodeId": "BkdmixilM", - "pinKey": "BkQzLCurwJZ" - }, - "input": { - "nodeId": "HkbVixief", - "pinKey": "BJlzICOSv1-" - } - }, - "Bywwsligz": { - "id": "Bywwsligz", - "output": { - "nodeId": "BJbZigolM", - "pinKey": "SyBtREhlW" - }, - "input": { - "nodeId": "BkdmixilM", - "pinKey": "B1GfLR_SPk-" - } - }, "HkWdsljlG": { "id": "HkWdsljlG", - "output": { - "nodeId": "HkbVixief", - "pinKey": "H12bIR_SPyZ" - }, "input": { "nodeId": "BkADjeolG", "pinKey": "BytUCdHD1-" + }, + "output": { + "nodeId": "HkbVixief", + "pinKey": "H12bIR_SPyZ" + } + }, + "Hkhi-o0JX": { + "id": "Hkhi-o0JX", + "input": { + "nodeId": "BkdmixilM", + "pinKey": "B1GfLR_SPk-" + }, + "output": { + "nodeId": "B1pqWsCkQ", + "pinKey": "BkoeN9Ay7" } }, "Hypdsxsez": { "id": "Hypdsxsez", - "output": { - "nodeId": "BkADjeolG", - "pinKey": "BkqLCOSw1W" - }, "input": { "nodeId": "Byjusxilz", "pinKey": "SkdIRuBD1b" + }, + "output": { + "nodeId": "BkADjeolG", + "pinKey": "BkqLCOSw1W" + } + }, + "SJHwjejlM": { + "id": "SJHwjejlM", + "input": { + "nodeId": "HkbVixief", + "pinKey": "BJlzICOSv1-" + }, + "output": { + "nodeId": "BkdmixilM", + "pinKey": "BkQzLCurwJZ" } }, "ry_FilolM": { "id": "ry_FilolM", - "output": { - "nodeId": "Byjusxilz", - "pinKey": "BkqLCOSw1W" - }, "input": { "nodeId": "HyIFsxjgG", "pinKey": "HkXK-dGob" + }, + "output": { + "nodeId": "Byjusxilz", + "pinKey": "BkqLCOSw1W" } } }, "nodes": { - "BJbZigolM": { - "id": "BJbZigolM", - "type": "xod/core/analog-input", + "B1pqWsCkQ": { + "id": "B1pqWsCkQ", "position": { "x": 102, "y": 0 - } - }, - "BkdmixilM": { - "id": "BkdmixilM", - "type": "xod/core/multiply", - "position": { - "x": 102, - "y": 102 }, - "boundValues": { - "SJ4zUC_BD1-": 5 - } - }, - "HkbVixief": { - "id": "HkbVixief", - "type": "xod/math/map", - "position": { - "x": 102, - "y": 204 - }, - "boundValues": { - "ry1z8CuBDy-": 1.25, - "HJCWLAdSwyW": 2, - "rJbGU0_Hv1Z": 0.02, - "rkpbU0OrwyZ": 0.033 - } + "type": "xod/common-hardware/analog-sensor" }, "BkADjeolG": { + "boundLiterals": { + "SkdIRuBD1b": "1" + }, "id": "BkADjeolG", - "type": "xod/core/divide", "position": { "x": 68, "y": 306 }, - "boundValues": { - "SkdIRuBD1b": 1 - } + "type": "xod/core/divide" + }, + "BkdmixilM": { + "boundLiterals": { + "SJ4zUC_BD1-": "5" + }, + "id": "BkdmixilM", + "position": { + "x": 102, + "y": 102 + }, + "type": "xod/core/multiply" }, "Byjusxilz": { + "boundLiterals": { + "BytUCdHD1-": "100" + }, "id": "Byjusxilz", - "type": "xod/core/divide", "position": { "x": 68, "y": 408 }, - "boundValues": { - "BytUCdHD1-": 100 - } + "type": "xod/core/divide" + }, + "HkbVixief": { + "boundLiterals": { + "HJCWLAdSwyW": "2", + "rJbGU0_Hv1Z": "0.02", + "rkpbU0OrwyZ": "0.033", + "ry1z8CuBDy-": "1.25" + }, + "id": "HkbVixief", + "position": { + "x": 102, + "y": 204 + }, + "type": "xod/math/map" }, "HyIFsxjgG": { "id": "HyIFsxjgG", - "type": "xod/core/watch", "position": { "x": 68, "y": 510 - } + }, + "type": "xod/core/watch" } }, "path": "@/main" } } -} \ No newline at end of file +} diff --git a/docs/guide/analog-sensor-node/sharp-irm.step2.xodball b/docs/guide/analog-sensor-node/sharp-irm.step2.xodball index b15a7fdc..bb22b7bf 100644 --- a/docs/guide/analog-sensor-node/sharp-irm.step2.xodball +++ b/docs/guide/analog-sensor-node/sharp-irm.step2.xodball @@ -1,235 +1,235 @@ { "name": "sharp-irm", "patches": { - "@/main": { - "links": { - "BJlK0ljez": { - "id": "BJlK0ljez", - "output": { - "nodeId": "BytOAxolG", - "pinKey": "SkTw0gjgf" - }, - "input": { - "nodeId": "HyIFsxjgG", - "pinKey": "HkXK-dGob" - } - } - }, - "nodes": { - "HyIFsxjgG": { - "id": "HyIFsxjgG", - "type": "xod/core/watch", - "position": { - "x": 68, - "y": 204 - } - }, - "BytOAxolG": { - "id": "BytOAxolG", - "type": "@/gp2y0a02-range-meter", - "position": { - "x": 68, - "y": 102 - } - } - }, - "path": "@/main" - }, "@/gp2y0a02-range-meter": { - "nodes": { - "HkRSAlixf": { - "id": "HkRSAlixf", - "type": "xod/core/analog-input", - "position": { - "x": 68, - "y": 102 - } - }, - "Skg0rRxjeM": { - "id": "Skg0rRxjeM", - "type": "xod/core/multiply", - "position": { - "x": 68, - "y": 204 - }, - "boundValues": { - "SJ4zUC_BD1-": 5 - } - }, - "HkWRBRxigf": { - "id": "HkWRBRxigf", - "type": "xod/math/map", - "position": { - "x": 68, - "y": 306 - }, - "boundValues": { - "ry1z8CuBDy-": 1.25, - "HJCWLAdSwyW": 2, - "rJbGU0_Hv1Z": 0.02, - "rkpbU0OrwyZ": 0.033 - } - }, - "SyfABRgjgG": { - "id": "SyfABRgjgG", - "type": "xod/core/divide", - "position": { - "x": 34, - "y": 408 - }, - "boundValues": { - "SkdIRuBD1b": 1 - } - }, - "rJQABAgilM": { - "id": "rJQABAgilM", - "type": "xod/core/divide", - "position": { - "x": 34, - "y": 510 - }, - "boundValues": { - "BytUCdHD1-": 100 - } - }, - "HJ7vCgjef": { - "id": "HJ7vCgjef", - "type": "xod/patch-nodes/input-number", - "position": { - "x": 68, - "y": 0 - }, - "label": "PORT" - }, - "SkTw0gjgf": { - "id": "SkTw0gjgf", - "type": "xod/patch-nodes/output-number", - "position": { - "x": 34, - "y": 612 - }, - "label": "Dm" - } - }, - "links": { - "Hy4CHCeigf": { - "id": "Hy4CHCeigf", - "output": { - "nodeId": "Skg0rRxjeM", - "pinKey": "BkQzLCurwJZ" - }, - "input": { - "nodeId": "HkWRBRxigf", - "pinKey": "BJlzICOSv1-" - } - }, - "rkHCSAxslf": { - "id": "rkHCSAxslf", - "output": { - "nodeId": "HkRSAlixf", - "pinKey": "SyBtREhlW" - }, - "input": { - "nodeId": "Skg0rRxjeM", - "pinKey": "B1GfLR_SPk-" - } - }, - "BJ80H0xixG": { - "id": "BJ80H0xixG", - "output": { - "nodeId": "HkWRBRxigf", - "pinKey": "H12bIR_SPyZ" - }, - "input": { - "nodeId": "SyfABRgjgG", - "pinKey": "BytUCdHD1-" - } - }, - "BJw0SRgoeG": { - "id": "BJw0SRgoeG", - "output": { - "nodeId": "SyfABRgjgG", - "pinKey": "BkqLCOSw1W" - }, - "input": { - "nodeId": "rJQABAgilM", - "pinKey": "SkdIRuBD1b" - } - }, - "ByHvAgilf": { - "id": "ByHvAgilf", - "output": { - "nodeId": "HJ7vCgjef", - "pinKey": "__out__" - }, - "input": { - "nodeId": "HkRSAlixf", - "pinKey": "BJuORNheZ" - } - }, - "rkxd0lixz": { - "id": "rkxd0lixz", - "output": { - "nodeId": "rJQABAgilM", - "pinKey": "BkqLCOSw1W" - }, - "input": { - "nodeId": "SkTw0gjgf", - "pinKey": "__in__" - } - } - }, "comments": { - "SJu0H0xsxz": { - "id": "SJu0H0xsxz", - "position": { - "x": 170, - "y": 204 - }, - "size": { - "width": 136, - "height": 51 - }, - "content": "Multiply by 5 to get the voltage level" - }, - "H1FCSCxsxf": { - "id": "H1FCSCxsxf", - "position": { - "x": 272, - "y": 306 - }, - "size": { - "width": 136, - "height": 51 - }, - "content": "Map the voltage to inverse distance (1/cm)" - }, - "rJqArResef": { - "id": "rJqArResef", - "position": { - "x": 136, - "y": 408 - }, - "size": { - "width": 136, - "height": 51 - }, - "content": "Invert the distance" - }, "Bko0B0xsgz": { + "content": "Divide by 100 to convert centimeters to meters", "id": "Bko0B0xsgz", "position": { "x": 136, "y": 510 }, "size": { - "width": 170, - "height": 51 + "height": 51, + "width": 170 + } + }, + "H1FCSCxsxf": { + "content": "Map the voltage to inverse distance (1/cm)", + "id": "H1FCSCxsxf", + "position": { + "x": 272, + "y": 306 }, - "content": "Divide by 100 to convert centimeters to meters" + "size": { + "height": 51, + "width": 136 + } + }, + "SJu0H0xsxz": { + "content": "Multiply by 5 to get the voltage level", + "id": "SJu0H0xsxz", + "position": { + "x": 170, + "y": 204 + }, + "size": { + "height": 51, + "width": 136 + } + }, + "rJqArResef": { + "content": "Invert the distance", + "id": "rJqArResef", + "position": { + "x": 136, + "y": 408 + }, + "size": { + "height": 51, + "width": 136 + } + } + }, + "links": { + "B1PAWsRJX": { + "id": "B1PAWsRJX", + "input": { + "nodeId": "Skg0rRxjeM", + "pinKey": "B1GfLR_SPk-" + }, + "output": { + "nodeId": "Hksa-sCJX", + "pinKey": "BkoeN9Ay7" + } + }, + "BJ80H0xixG": { + "id": "BJ80H0xixG", + "input": { + "nodeId": "SyfABRgjgG", + "pinKey": "BytUCdHD1-" + }, + "output": { + "nodeId": "HkWRBRxigf", + "pinKey": "H12bIR_SPyZ" + } + }, + "BJw0SRgoeG": { + "id": "BJw0SRgoeG", + "input": { + "nodeId": "rJQABAgilM", + "pinKey": "SkdIRuBD1b" + }, + "output": { + "nodeId": "SyfABRgjgG", + "pinKey": "BkqLCOSw1W" + } + }, + "Hy4CHCeigf": { + "id": "Hy4CHCeigf", + "input": { + "nodeId": "HkWRBRxigf", + "pinKey": "BJlzICOSv1-" + }, + "output": { + "nodeId": "Skg0rRxjeM", + "pinKey": "BkQzLCurwJZ" + } + }, + "rk8AWoCJQ": { + "id": "rk8AWoCJQ", + "input": { + "nodeId": "Hksa-sCJX", + "pinKey": "r1l3XcR17" + }, + "output": { + "nodeId": "ry-CZiAk7", + "pinKey": "__out__" + } + }, + "rkxd0lixz": { + "id": "rkxd0lixz", + "input": { + "nodeId": "SkTw0gjgf", + "pinKey": "__in__" + }, + "output": { + "nodeId": "rJQABAgilM", + "pinKey": "BkqLCOSw1W" + } + } + }, + "nodes": { + "HkWRBRxigf": { + "boundLiterals": { + "HJCWLAdSwyW": "2", + "rJbGU0_Hv1Z": "0.02", + "rkpbU0OrwyZ": "0.033", + "ry1z8CuBDy-": "1.25" + }, + "id": "HkWRBRxigf", + "position": { + "x": 68, + "y": 306 + }, + "type": "xod/math/map" + }, + "Hksa-sCJX": { + "id": "Hksa-sCJX", + "position": { + "x": 68, + "y": 102 + }, + "type": "xod/common-hardware/analog-sensor" + }, + "SkTw0gjgf": { + "id": "SkTw0gjgf", + "label": "Dm", + "position": { + "x": 34, + "y": 612 + }, + "type": "xod/patch-nodes/output-number" + }, + "Skg0rRxjeM": { + "boundLiterals": { + "SJ4zUC_BD1-": "5" + }, + "id": "Skg0rRxjeM", + "position": { + "x": 68, + "y": 204 + }, + "type": "xod/core/multiply" + }, + "SyfABRgjgG": { + "boundLiterals": { + "SkdIRuBD1b": "1" + }, + "id": "SyfABRgjgG", + "position": { + "x": 34, + "y": 408 + }, + "type": "xod/core/divide" + }, + "rJQABAgilM": { + "boundLiterals": { + "BytUCdHD1-": "100" + }, + "id": "rJQABAgilM", + "position": { + "x": 34, + "y": 510 + }, + "type": "xod/core/divide" + }, + "ry-CZiAk7": { + "id": "ry-CZiAk7", + "label": "PORT", + "position": { + "x": 68, + "y": 0 + }, + "type": "xod/patch-nodes/input-port" } }, "path": "@/gp2y0a02-range-meter" + }, + "@/main": { + "links": { + "BJlK0ljez": { + "id": "BJlK0ljez", + "input": { + "nodeId": "HyIFsxjgG", + "pinKey": "HkXK-dGob" + }, + "output": { + "nodeId": "BytOAxolG", + "pinKey": "SkTw0gjgf" + } + } + }, + "nodes": { + "BytOAxolG": { + "id": "BytOAxolG", + "position": { + "x": 68, + "y": 102 + }, + "type": "@/gp2y0a02-range-meter" + }, + "HyIFsxjgG": { + "id": "HyIFsxjgG", + "position": { + "x": 68, + "y": 204 + }, + "type": "xod/core/watch" + } + }, + "path": "@/main" } } -} \ No newline at end of file +} diff --git a/docs/guide/analog-sensor-node/sharp-irm.step3.xodball b/docs/guide/analog-sensor-node/sharp-irm.step3.xodball index f823de6a..ec8b67c5 100644 --- a/docs/guide/analog-sensor-node/sharp-irm.step3.xodball +++ b/docs/guide/analog-sensor-node/sharp-irm.step3.xodball @@ -1,355 +1,355 @@ { "name": "sharp-irm", "patches": { - "@/main": { - "comments": { - "HJcjI-olf": { - "id": "HJcjI-olf", - "position": { - "x": 204, - "y": 102 - }, - "size": { - "width": 136, - "height": 51 - }, - "content": "Look! We can read three sensors at once" - } - }, - "links": { - "BJlK0ljez": { - "id": "BJlK0ljez", - "output": { - "nodeId": "BytOAxolG", - "pinKey": "SkTw0gjgf" - }, - "input": { - "nodeId": "HyIFsxjgG", - "pinKey": "HkXK-dGob" - } - }, - "Hy-YhGZjez": { - "id": "Hy-YhGZjez", - "output": { - "nodeId": "H1xY2GWjez", - "pinKey": "SkTw0gjgf" - }, - "input": { - "nodeId": "HJF3MWjgG", - "pinKey": "HkXK-dGob" - } - }, - "HJWihGWsxG": { - "id": "HJWihGWsxG", - "output": { - "nodeId": "Hyxo2G-jxf", - "pinKey": "SkTw0gjgf" - }, - "input": { - "nodeId": "B1s3zWoeM", - "pinKey": "HkXK-dGob" - } - } - }, - "nodes": { - "HyIFsxjgG": { - "id": "HyIFsxjgG", - "type": "xod/core/watch", - "position": { - "x": -68, - "y": 204 - } - }, - "BytOAxolG": { - "id": "BytOAxolG", - "type": "@/gp2y0a02-range-meter", - "position": { - "x": -68, - "y": 102 - }, - "boundValues": { - "HJ7vCgjef": 1 - } - }, - "HJF3MWjgG": { - "id": "HJF3MWjgG", - "type": "xod/core/watch", - "position": { - "x": -204, - "y": 204 - } - }, - "H1xY2GWjez": { - "id": "H1xY2GWjez", - "type": "@/gp2y0a02-range-meter", - "position": { - "x": -204, - "y": 102 - } - }, - "B1s3zWoeM": { - "id": "B1s3zWoeM", - "type": "xod/core/watch", - "position": { - "x": 68, - "y": 204 - } - }, - "Hyxo2G-jxf": { - "id": "Hyxo2G-jxf", - "type": "@/gp2y0a02-range-meter", - "position": { - "x": 68, - "y": 102 - }, - "boundValues": { - "HJ7vCgjef": 2 - } - } - }, - "path": "@/main" - }, "@/gp2y0a02-range-meter": { - "nodes": { - "HkRSAlixf": { - "id": "HkRSAlixf", - "type": "xod/core/analog-input", - "position": { - "x": 68, - "y": 102 - } - }, - "Skg0rRxjeM": { - "id": "Skg0rRxjeM", - "type": "xod/core/multiply", - "position": { - "x": 68, - "y": 306 - }, - "boundValues": { - "SJ4zUC_BD1-": 5 - } - }, - "HkWRBRxigf": { - "id": "HkWRBRxigf", - "type": "xod/math/map", - "position": { - "x": 68, - "y": 408 - }, - "boundValues": { - "ry1z8CuBDy-": 1.25, - "HJCWLAdSwyW": 2, - "rJbGU0_Hv1Z": 0.02, - "rkpbU0OrwyZ": 0.033 - } - }, - "SyfABRgjgG": { - "id": "SyfABRgjgG", - "type": "xod/core/divide", - "position": { - "x": 34, - "y": 510 - }, - "boundValues": { - "SkdIRuBD1b": 1 - } - }, - "rJQABAgilM": { - "id": "rJQABAgilM", - "type": "xod/core/divide", - "position": { - "x": 34, - "y": 612 - }, - "boundValues": { - "BytUCdHD1-": 100 - } - }, - "HJ7vCgjef": { - "id": "HJ7vCgjef", - "type": "xod/patch-nodes/input-number", - "position": { - "x": 34, - "y": 0 - }, - "label": "PORT" - }, - "SkTw0gjgf": { - "id": "SkTw0gjgf", - "type": "xod/patch-nodes/output-number", - "position": { - "x": 34, - "y": 714 - }, - "label": "Dm" - }, - "SyeOgZsgG": { - "id": "SyeOgZsgG", - "type": "xod/patch-nodes/input-pulse", - "position": { - "x": 170, - "y": 0 - }, - "label": "UPD", - "boundValues": { - "__out__": "CONTINUOUSLY" - } - }, - "BJqdlWogG": { - "id": "BJqdlWogG", - "type": "xod/patch-nodes/input-number", - "position": { - "x": 102, - "y": 204 - }, - "label": "AVcc", - "boundValues": { - "__out__": 5 - } - } - }, - "links": { - "Hy4CHCeigf": { - "id": "Hy4CHCeigf", - "output": { - "nodeId": "Skg0rRxjeM", - "pinKey": "BkQzLCurwJZ" - }, - "input": { - "nodeId": "HkWRBRxigf", - "pinKey": "BJlzICOSv1-" - } - }, - "rkHCSAxslf": { - "id": "rkHCSAxslf", - "output": { - "nodeId": "HkRSAlixf", - "pinKey": "SyBtREhlW" - }, - "input": { - "nodeId": "Skg0rRxjeM", - "pinKey": "B1GfLR_SPk-" - } - }, - "BJ80H0xixG": { - "id": "BJ80H0xixG", - "output": { - "nodeId": "HkWRBRxigf", - "pinKey": "H12bIR_SPyZ" - }, - "input": { - "nodeId": "SyfABRgjgG", - "pinKey": "BytUCdHD1-" - } - }, - "BJw0SRgoeG": { - "id": "BJw0SRgoeG", - "output": { - "nodeId": "SyfABRgjgG", - "pinKey": "BkqLCOSw1W" - }, - "input": { - "nodeId": "rJQABAgilM", - "pinKey": "SkdIRuBD1b" - } - }, - "ByHvAgilf": { - "id": "ByHvAgilf", - "output": { - "nodeId": "HJ7vCgjef", - "pinKey": "__out__" - }, - "input": { - "nodeId": "HkRSAlixf", - "pinKey": "BJuORNheZ" - } - }, - "rkxd0lixz": { - "id": "rkxd0lixz", - "output": { - "nodeId": "rJQABAgilM", - "pinKey": "BkqLCOSw1W" - }, - "input": { - "nodeId": "SkTw0gjgf", - "pinKey": "__in__" - } - }, - "SJbdeZoeM": { - "id": "SJbdeZoeM", - "output": { - "nodeId": "SyeOgZsgG", - "pinKey": "__out__" - }, - "input": { - "nodeId": "HkRSAlixf", - "pinKey": "SyKd0E2x-" - } - }, - "SkxtlZjxG": { - "id": "SkxtlZjxG", - "output": { - "nodeId": "BJqdlWogG", - "pinKey": "__out__" - }, - "input": { - "nodeId": "Skg0rRxjeM", - "pinKey": "SJ4zUC_BD1-" - } - } - }, "comments": { - "SJu0H0xsxz": { - "id": "SJu0H0xsxz", - "position": { - "x": 170, - "y": 306 - }, - "size": { - "width": 170, - "height": 51 - }, - "content": "Multiply by AVcc to get the voltage level" - }, - "H1FCSCxsxf": { - "id": "H1FCSCxsxf", - "position": { - "x": 272, - "y": 408 - }, - "size": { - "width": 136, - "height": 51 - }, - "content": "Map the voltage to inverse distance (1/cm)" - }, - "rJqArResef": { - "id": "rJqArResef", - "position": { - "x": 136, - "y": 510 - }, - "size": { - "width": 136, - "height": 51 - }, - "content": "Invert the distance" - }, "Bko0B0xsgz": { + "content": "Divide by 100 to convert centimeters to meters", "id": "Bko0B0xsgz", "position": { "x": 136, "y": 612 }, "size": { - "width": 170, - "height": 51 + "height": 51, + "width": 170 + } + }, + "H1FCSCxsxf": { + "content": "Map the voltage to inverse distance (1/cm)", + "id": "H1FCSCxsxf", + "position": { + "x": 272, + "y": 408 }, - "content": "Divide by 100 to convert centimeters to meters" + "size": { + "height": 51, + "width": 136 + } + }, + "SJu0H0xsxz": { + "content": "Multiply by AVcc to get the voltage level", + "id": "SJu0H0xsxz", + "position": { + "x": 170, + "y": 306 + }, + "size": { + "height": 51, + "width": 170 + } + }, + "rJqArResef": { + "content": "Invert the distance", + "id": "rJqArResef", + "position": { + "x": 136, + "y": 510 + }, + "size": { + "height": 51, + "width": 136 + } + } + }, + "links": { + "BJ80H0xixG": { + "id": "BJ80H0xixG", + "input": { + "nodeId": "SyfABRgjgG", + "pinKey": "BytUCdHD1-" + }, + "output": { + "nodeId": "HkWRBRxigf", + "pinKey": "H12bIR_SPyZ" + } + }, + "BJw0SRgoeG": { + "id": "BJw0SRgoeG", + "input": { + "nodeId": "rJQABAgilM", + "pinKey": "SkdIRuBD1b" + }, + "output": { + "nodeId": "SyfABRgjgG", + "pinKey": "BkqLCOSw1W" + } + }, + "ByLeGi0ym": { + "id": "ByLeGi0ym", + "input": { + "nodeId": "SJAyGsRJQ", + "pinKey": "SkUhQ5RkQ" + }, + "output": { + "nodeId": "SyeOgZsgG", + "pinKey": "__out__" + } + }, + "HJfxGiRJX": { + "id": "HJfxGiRJX", + "input": { + "nodeId": "Skg0rRxjeM", + "pinKey": "B1GfLR_SPk-" + }, + "output": { + "nodeId": "SJAyGsRJQ", + "pinKey": "BkoeN9Ay7" + } + }, + "Hk0xGjCJm": { + "id": "Hk0xGjCJm", + "input": { + "nodeId": "SJAyGsRJQ", + "pinKey": "r1l3XcR17" + }, + "output": { + "nodeId": "HkhxMoR1X", + "pinKey": "__out__" + } + }, + "Hy4CHCeigf": { + "id": "Hy4CHCeigf", + "input": { + "nodeId": "HkWRBRxigf", + "pinKey": "BJlzICOSv1-" + }, + "output": { + "nodeId": "Skg0rRxjeM", + "pinKey": "BkQzLCurwJZ" + } + }, + "SkxtlZjxG": { + "id": "SkxtlZjxG", + "input": { + "nodeId": "Skg0rRxjeM", + "pinKey": "SJ4zUC_BD1-" + }, + "output": { + "nodeId": "BJqdlWogG", + "pinKey": "__out__" + } + }, + "rkxd0lixz": { + "id": "rkxd0lixz", + "input": { + "nodeId": "SkTw0gjgf", + "pinKey": "__in__" + }, + "output": { + "nodeId": "rJQABAgilM", + "pinKey": "BkqLCOSw1W" + } + } + }, + "nodes": { + "BJqdlWogG": { + "boundLiterals": { + "__out__": "5" + }, + "id": "BJqdlWogG", + "label": "AVcc", + "position": { + "x": 102, + "y": 204 + }, + "type": "xod/patch-nodes/input-number" + }, + "HkWRBRxigf": { + "boundLiterals": { + "HJCWLAdSwyW": "2", + "rJbGU0_Hv1Z": "0.02", + "rkpbU0OrwyZ": "0.033", + "ry1z8CuBDy-": "1.25" + }, + "id": "HkWRBRxigf", + "position": { + "x": 68, + "y": 408 + }, + "type": "xod/math/map" + }, + "HkhxMoR1X": { + "id": "HkhxMoR1X", + "label": "PORT", + "position": { + "x": 34, + "y": 0 + }, + "type": "xod/patch-nodes/input-port" + }, + "SJAyGsRJQ": { + "id": "SJAyGsRJQ", + "position": { + "x": 34, + "y": 102 + }, + "type": "xod/common-hardware/analog-sensor" + }, + "SkTw0gjgf": { + "id": "SkTw0gjgf", + "label": "Dm", + "position": { + "x": 34, + "y": 714 + }, + "type": "xod/patch-nodes/output-number" + }, + "Skg0rRxjeM": { + "boundLiterals": { + "SJ4zUC_BD1-": "5" + }, + "id": "Skg0rRxjeM", + "position": { + "x": 68, + "y": 306 + }, + "type": "xod/core/multiply" + }, + "SyeOgZsgG": { + "boundLiterals": { + "__out__": "Continuously" + }, + "id": "SyeOgZsgG", + "label": "UPD", + "position": { + "x": 136, + "y": 0 + }, + "type": "xod/patch-nodes/input-pulse" + }, + "SyfABRgjgG": { + "boundLiterals": { + "SkdIRuBD1b": "1" + }, + "id": "SyfABRgjgG", + "position": { + "x": 34, + "y": 510 + }, + "type": "xod/core/divide" + }, + "rJQABAgilM": { + "boundLiterals": { + "BytUCdHD1-": "100" + }, + "id": "rJQABAgilM", + "position": { + "x": 34, + "y": 612 + }, + "type": "xod/core/divide" } }, "path": "@/gp2y0a02-range-meter" + }, + "@/main": { + "comments": { + "HJcjI-olf": { + "content": "Look! We can read three sensors at once", + "id": "HJcjI-olf", + "position": { + "x": 204, + "y": 102 + }, + "size": { + "height": 51, + "width": 136 + } + } + }, + "links": { + "BJlK0ljez": { + "id": "BJlK0ljez", + "input": { + "nodeId": "HyIFsxjgG", + "pinKey": "HkXK-dGob" + }, + "output": { + "nodeId": "BytOAxolG", + "pinKey": "SkTw0gjgf" + } + }, + "HJWihGWsxG": { + "id": "HJWihGWsxG", + "input": { + "nodeId": "B1s3zWoeM", + "pinKey": "HkXK-dGob" + }, + "output": { + "nodeId": "Hyxo2G-jxf", + "pinKey": "SkTw0gjgf" + } + }, + "Hy-YhGZjez": { + "id": "Hy-YhGZjez", + "input": { + "nodeId": "HJF3MWjgG", + "pinKey": "HkXK-dGob" + }, + "output": { + "nodeId": "H1xY2GWjez", + "pinKey": "SkTw0gjgf" + } + } + }, + "nodes": { + "B1s3zWoeM": { + "id": "B1s3zWoeM", + "position": { + "x": 68, + "y": 204 + }, + "type": "xod/core/watch" + }, + "BytOAxolG": { + "boundLiterals": { + "HJ7vCgjef": "1" + }, + "id": "BytOAxolG", + "position": { + "x": -68, + "y": 102 + }, + "type": "@/gp2y0a02-range-meter" + }, + "H1xY2GWjez": { + "id": "H1xY2GWjez", + "position": { + "x": -204, + "y": 102 + }, + "type": "@/gp2y0a02-range-meter" + }, + "HJF3MWjgG": { + "id": "HJF3MWjgG", + "position": { + "x": -204, + "y": 204 + }, + "type": "xod/core/watch" + }, + "HyIFsxjgG": { + "id": "HyIFsxjgG", + "position": { + "x": -68, + "y": 204 + }, + "type": "xod/core/watch" + }, + "Hyxo2G-jxf": { + "boundLiterals": { + "HJ7vCgjef": "2" + }, + "id": "Hyxo2G-jxf", + "position": { + "x": 68, + "y": 102 + }, + "type": "@/gp2y0a02-range-meter" + } + }, + "path": "@/main" } } -} \ No newline at end of file +} diff --git a/docs/guide/analog-sensor-node/step1.patch.png b/docs/guide/analog-sensor-node/step1.patch.png old mode 100644 new mode 100755 index 80bd33f30e3af05ac86f4f8aedabac2f43241d1c..d030fbe59cb16d99b925cd5cd1851872b56f1586 GIT binary patch literal 25523 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 I$yr7G7d+&JJOBUy literal 35360 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 ca|(_R?#m*w?>+JSUnwSHc>n+a diff --git a/docs/guide/analog-sensor-node/step2a.patch.png b/docs/guide/analog-sensor-node/step2a.patch.png old mode 100644 new mode 100755 index 3944d516604debd1c5c98a114338054197c12e7f..660c382c24402d4af1e5f169e2cc8983f5835597 GIT binary patch literal 27374 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%0AKcY6BOX^F>}T5zQ2kK=$O%Vhs-n*xanW&sp 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 EFHHv=pa1{> diff --git a/docs/guide/analog-sensor-node/step2b.gif b/docs/guide/analog-sensor-node/step2b.gif index 9ef4f208241d58c579cbec8ac8383dd04906fcf7..013aa27fd812022e2b526204a80b5966a813b374 100644 GIT binary patch literal 19013 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 diff --git a/docs/guide/analog-sensor-node/step3a.patch.png b/docs/guide/analog-sensor-node/step3a.patch.png old mode 100644 new mode 100755 index f66db5b8f9df39cb5e22d02c5c191a1416c94d41..3021f884aecaf585fb34d54885532a56a75304c3 GIT binary patch literal 30717 zcmbSwWl&sA)F$rk5Zv9}-QC^Y-QC@t00DvrcNpAV5+Jxsuz^8?E_uJ*+Woy#HC4Ay zA9gx)gN#6c00stzEGH|e4h9AR00V&f*w|QDSU5P?J3Bjhd3kAQXlPUHsi>(xO#}o4=;-Je7#S%j$Q2b8&(6-o z#KgF{xxWw)u(GmI)6o!qA*4-rzAK;Gl`KmX?;L4sWNXWn^Pzp(dwfWMZbx zbfzMuU}d5=H8G&VBI4mT9HBpr^@krJ*FDu~n_9sbZq11Oq1;>#4{qtDuC!2Ls0%Y%Ts)Q4I!3MNB~_ zCnG^j44zh4!a~Qy$|I7Smn$JIj!#TcTAbC}U5^R@W@XYoF<4(+Q8+x*Sz8!MjSEhj zXxr6ZW8@h*Gu0ay9708m_5~7*ijf^09I>sZy}7L=GPM92o5I7}o0*P?1Py$293afg zQC?SviA&Vq-_Jrp-`&&m{cD1~#jvqnrJ9;LBMn4hQ6U2>yPKAPsIUMDEi*p>Sd^a) zqm!ncot+XdaZOW`t(7rgpffNj8w(SQIvN0|&y_awiVbzARuGEMEiTMS{F)X4jg04L zH72R$ni}Oz>u12qA{h}C1%}6KD8nV7>KJUNibcl2!$zNwo>dg*Af#-{N<`}wmdGV2 zr>YR292?qJnbB01L>F!z;$~{<8G=zfDa~04dLh;mgTSSWIahIz@f?t z%V?&AOT$OaEfr)c0m+~u%7B%Tn!v}*nVOehmgbi1rpiFiP4A^=E>22`PfWxn3P-`x zT35WdFr^^O{&TiRUfSPAo&}#`2a*1bqr$bwZ~lvz^>43e9lPluiXjZ)m4)~B3B zU*5%LnnA}?PhF1AG3)8+iN-WyduxlqGM3HX_)ih+4H%ebpPZzartkViq01?v8{zol zhTdiO2Fad+zPGwgyYr;bqB~Vd+(fxHyT;WY+9eBTp6fB?j37J{DM`6Mu64SamU?tJ4l(7F z7;^tqn*b9TS?gX6HU3`L9=%LfLKD06<{CA0YMv{?{w^5x%ueXodpf3FXX^gEKG z4d|(_iBf)%=gO%yw(~)#(eE#mnwX#;R^@2;uI}EnB5Og=R{B+*?k_dL!>SK7r6NN^ zOiHiL^2((xFEKi6nlG<^Pr3ijxNk~{7JFQLdI$l140$J9uz$V|eO#h;)KeieJo!-@ zh4DpIlsD_eF>n6h0^tdYhEu~jx?f6|Ry=kW4w9Xgt)XPCdWC(tJh~29u#H%_q~E0k z;J3PgPCW;qL{Q{j)w#~~^lyfUvB88XgD$l(msfm3E$0ar>@*VT=ecmGI1mc*D8IcB z?v=v5+>UE&y|?*B^cwX*W` z4Jrh-m*X)zYqN7@c2l$UV;_2*?!x7YlmVaI1pWRFZ;NvVUr%m&ZOl6v2braR+$eZY zZ+4w0BZV}hh#1LBBW_P)hUggoaTN_dv;KPVrmzNWa4g*2h@!)La}5?8*hTPi5lo*$ zfaw$x@(E26WZx34+zIeGOT%u#75?3PGZBTqkwaMA?R8T_#GtLX(YN1_>&54Mc%l$DTNbu-5Dt{^X{IUUwL7l#uG3spY_tx;6 z;k~C|g>lecXk$Mll*wSgd1FfXWa#(RPELpJWDb`fsvYPVNHi3c%+#u~F|eKIpXqhR zWN;%W9uo8)Jo4(RUh-2A@!if=djj?~NfY2_PMw_b*ItLPq-4XJmB)`FZMe})NeW4a zVnC1|Zext6AIUxmu2c*Gyp_m=L+Qv431M@hi(jo6Bk*AKCrIS5FiZ&UD8Q)UAzwe@nRPN5& zft*D=4lfiPYh4#oj<$rHlz#g(Gq}tdxL%*~)J~MQ4xEClacx1$L9b8N7bOpq0tOj5 z=u1>Bo8Vy?cfOSk7^UOhPV1B5xs6Lg*jMK?}$w$5H zkcV7W`#{vIpRHzZ?zLG)o(HE#Yqu^$kHza8PU9E{mB<=6ggd@>*B5^guP?$1NCk_% zEiW&kDz$&IIMU^UE8@bBRqOG5FP@il7v3NV^elgMlG??W5m^t=8{0JM`pvXn0H&r z%`E~YYkA7BV~97HCW`u*_H{$IM~J=fLCv*l=ASVQbyI=a9M77J8J_*5SIl?S$8 zcqCkY>?>0P8Cbmt8HG=U_f&it$_@I9DkO9Awo=QSv*4*IZKn}vmXBv)exP_bH}H2StML}8!SC-b~_^*T@1S^DENqT z7HMG6434H&&yj4&i<#rAx#!jv;H$i;I{Q0o^yn$I5*l0QyOn5n&vuGwKvEx4)h{@= z?w&YFx==bQjNjYaR-z4i?4%x46L?>P!L2!m*u>j*-(*V&EW2?{$B=r#GSHXY$rmWd zDxqPR2RN<5GY9XPgHZc5dP&rFM$7gLr=JvdB=R)r7RoZGGRsN`4WFHdpztHkcRVHG zRzz|-h_SYjb}J~vRpp?B(^bPEHa$l&;l*KAd$ur%n0!Ub(2fuwJGU_3G*JS{$wZDU zJGV0MF~0}0H3ydox!g1Ob=7=69E^q4T0+=eDfo4H(v@kEy(g5C-B67LQuSi%wRF^` zu~Z`Oon8LG#^*z^R671y@;NTKJEyJ}f7Q8@*jHeDC@D7g;eFSHuz4tZ(n0>Rp7OEs z+ijQrsDXgnu)LVmCO~vw2Yz~irE%lKaOeuHpI?(Y7NzG#OS=2>k^4adJG~v2GPtNw zHzaKKfd-R%HHU`IupL}eOuglGR4#tLHnmNN^rj^;iuH#{5i#+=Q)=!E?$4un6;#X) zY%mY=w^mjg)+_(?ze^j6r!7%@n2cbiaN0R&xTR{Zy9A*<#0DH0vQ~mC@Zw!PluOXX zJ)v&8G_GBQJZ5O>aTq3w(DriYtcIibNc=RR-JxNpt3$ZQ*AwQv=8nngX}5CdUWjCf zV0cUos{(L-qm~l&v`H1V;Gx9FsX78P-|Ea_!+Hi}X2=@GOFQf_P_H10S)%~tJ5I}t z!;E0p=o}LaW76IRT&Ihn^K4;&POaf9?sQfwu)auNzn;2$c36F`T?g45A3XULh-z}w zI)ZDi@6!w*b?U4MP9|bRut4ZFP&`|cE}d8{OdxLQ5q5!o?E}H5Q4bm;3r0pmi56rq zQWxmKfD3*Tx(~4n6u+WNoi;JzxKINw5~}GZHL0PPWiJP16B$M#Rs}G>ZCt4tG=tft zL8EhN&=NpO@ChpxD+TmwJK?q356qLQ8K<;Wx7jN(e2!GeRE*UKv=yPhX+a7%`aG~H zeRU&r0s2STJl@qS_|Ylq?nQfCb{BT!p=l%MPff#c=2A05eHF{aCot1@vv5Xa$<-LiCO(FZOsgg$CAf?TKR%aUc#XYl< zWY-5I*IW5`_%}*vW)e|@OZIylo1a+?Oq^g7RYOP(_llc0xZ*PD9;N|kN}~;hT?^8O z%mbg=@+Z19v1WKKn6PC{HnaxU#AZxoQhM5n-yEaS>#%dCI^U$MG#d5*+{A=?YubIr zSFLn+KWa+_!rU6MV?q9+_S2;n*RY@nGqQRNobM#tsoz!P=9}GrqD9yu+su}yDk31> z9a#}#a%x2|xslRKb^>+|ZhSj7H*GLsZz4}`l5$eR=9aU;{BDDPci^hDhFs9R%~*!u zle7lVImSV%kqtc;?q9pfSQH2N6u;c7nONT(G6dC&Al@!;N*oo^UX2FbQ?RcI{dIkx z1mDBw zKPJE6(|l5V`!={0F93Rh)$>{fz|rEr^}4=E;ebd_LNd@5B}iREgX=d2Y^ioEpnY<3 zFw5ttckhY@N?&^cv*kM1aT5m<>1saKqLL5$R}y+69TRgJh7-@XtKSTTwvrN>=89F&E(*%!(Z@# z#*UcM9YffgYlCC^n&5*vl+BCQHl$-D7&0^ECNLJ$9c;+<&b@8&ckg`=RgW63nWT=8 zzh8=)C(*|Xxua1qujX&Z$Qp#fzUZ&`f%PVAHbVMw-`O)zTUQL5g0L!@BpJn6ZXNk| zq2*AU}>$GZ&U_y5`i$9ytmL!)*zOP>3n zDw9pCR99D@NDHebpsWyw?~+LYarnq8CUz~B-AE_Zr8!v})B*w)k&*G&Ry)X*V>KT)iKl-judkuA&QkzoYq)50p6NRMMR~D`pk9IoH zDIMjJF{t~YFic8@BF&CN7k&no>lUUqHbM2fTI+9furi$NVGBcH&t=I2}k)V z<|EHNdaaKgNH{BU=_4j3Syswv41MhnY+9hnIa7(fetbBMV-6GgRDq+c?1ZGh(#1Pn zs4vK6;Ms_{BTV8)R6PGtqvDYXN7U>z1+2d`R~q!uQ5qyNXwE_WZD0II3n$GA zyAQ_igy&Na0hAu8gLzo^_~|VSAQ}oF1qM?5VnI2ChB$=wJNbtOeQMf`lm!j-J3!mh zmkALBaT7W*txTeaL*){@Ij5YWL(rt9}{(5ze*Wl>k zr2}-LQUWuqnqAa7G0Fyhsd07;sy&H5n2xvKaYdZ?a`Kr?y57&1bwZLp{Y^hDN5kx$ zJCDmIgpK>FXWXw!okK>sz|o-k7>9Wg!%gGh*ZJdTuDbRuCu2bU8<)*V^ZL-S|7%-I z$I$&>ggFGz*uPTAgWQ=8N>8u1vA(Dr^3)MF$2pS&!EZ3O>2QvD(EY{}gmR?6CReo0 zqNsV2*g24c_T%|CNR55mk^iLYsr8RSV7B}ItI(fjGNAqYBsPcv*fX~+k&LSE6zt~| z;8r`!0*rj|&s$8l%jf0cJqw`n*gzc(_QSQxm!3DWcOC~GKWe9Pi~sMkQ8v6)w0L}< z3s^qR=@_~>sfw6jz<%ko^9b5GrZ+kf*4Fl#UGw|7#<|DKzH}ehlr!;SU<4fP-j4Se zj+x^M2i%5z=6uxWi+#6K>F=)TpR&eMDn}cF`&WI>D$RA-@X_!jA7CAl}v5&}MZ zB=fLbFViubvevSk3SN%sutcqt4-`6t*&c-A!Y32R*`bSGn!(d3%ibI*F$oe?U>8q^ za`>`e{K<#PPY%ue%>n-q6@*6i7u>wXgnygMmL)ZPvcLO|Wbj`smta+ z9ZHw8(os7*)JZu7iU<0~@29*04y*MBHUb2(1$*$RJjU?%35c0Fvwr*%-a73(2Y(z# zokfXY6XGu($d`V}U%_ByhdPV8$yb?d779CB>oxs4niqOl=oNg}1ZhSIJ9fZ;|8T?D9nmpKTK9Uf8Mpa42H^~iiD_nNt*4B_7ez@u zu%o*UfE4(4{elhGcdf;dzt|{2RZH`-a&rI8g5%pImnFd+y*BeM$3~{+SXyRL7VZ0$ z}_>Gm^?vCW7_wfeq z$N)KJnpfJ~gN|RSVU>;rGiPko^*qV(U=`+s%?y3ck`No@z0CV@t|>L z;LSZQE18NhBWt|YcD!@7aqd+gs*X@+sUY+wm2jN>er|p?ppx)olyA%_w zoo&NT4ZM&XEqj{yOcmUr@cabGYG&QkWWA#an@8qPUEO#?@ z?P?6ptQKKs<(@y1pxc9yKOjkBJko(*Z-FHa-Yb`U>Eaw4%v38Ea|JnXlK`F#=I=%3 zh^Y1bE8d)1Ki3;U`*vX*c|H&0Yz#U@{yf&VeIpAiHZ4Ps)Z+7qudtM!yKA@9oFZ%t z56{Z`ztQxcqx@2+=PYiC4cCBw`!W~0FQ2;z9Jfo&hO5yvd{WkMH#oYuv^KbHVkN-` zL~MTV*X>1Ps@NBok8=je&xp#RCCqL_*0)`v_7AKQF{~0Bt#U)7A}zF%#2`DM5qs`R z)KRzBum5WF#=ip$^v4iI&o}BPTXS#9aA4+`$IN}rXNzQDciC6GAQpaRC+c~m1~}MU zg6zEF?n;cNPfOu9zT4PvyEt|B(>-+EUmvbJ+2TQieGn=ex|#`f2ibehZW+8;m;bD^ zE|{GL_7*A^_wYa8{IEGcxzO!|+Ui?=6z4A#Zc;qE>F4x^ec!K}?wA7_`Cbj_1-7g~ z%=`}h2%RX4Tk;%1EL#+f+>@$-Ey_z?z$qe0TG%8jTf}lh!9cSna0!+pyOYWdi-O$4 zjs2N6paFIb+>?~sr;-~HS&R>qjA3|Bt)Pm_jy8kN#?#NQ7~NkT-e>(W6(Wda0^*5C z#(fGo+^Xn*ls+vM`4hK|6^xi;-YvrAX==0^GOWev&#=n}zAJkd3nGI@Bn5-rcW_x5 z>v*9Bb0u_aW>^3hV%e3Py6=cTi&(?imEXglU)809!MF zqo_%(eH9!50$Vc=nmDC5-cb8|0$mlBc0xmyIKk!qk41y|K!6m}?QfI+WEiUsK1_as z?ex6saM^3du(WWRs)P#n5Yt&%Yqh5LfsHdZ0Yu+ORmBWuPNt?DHF6`Y{>Qx}?kW+Z zg;N7078HFfb3Kjj*gxwD4K$;#Vt&H9FvrkQkh2DG+5e#dVg08Lc^f_ycgzGeeer2_ zNEgd|70~#jNxY*UMHQ`*w7V066D6Apz6uiS`{&$Tt3}?MS7;Y2{}C(v6IdF^{Gh{yHPIcJa7nw)s3uk#o691ZA< zFC4e~&W{q5XsQA=`o!AW!j9Evs*qt5u$zA|mT*)vbN!M`*GTem%I~eErZuI;M+G8s z=bk!kwWKxjz4EEb{s-P*voP`888LD4gVQQO%M5QnBO*-m1!c1Y0LOdJ<4J~ zmYfhu6V8j8l2-e43wTz4R4*5@-(tGkwAFCYkmVh7e`YQ(+zP+e3^MCnoxot`t-cHB zWTz=CDm?Vhk^`u_GHzaA>?|rhJ=Wv{U2&bjvNdt@11HQff8(=aHYnM8gg=JbZ6NW7 zo5{l9qwo|>#uTX+vM5SF`7zx#k0o0PClLLG&^oY`#+y#G@)aJ5djtadkWP{YBNHaqLLc z!WxKUq_CNbAK=O9T~$w}lat%l3NKg4G=+=D-Kikv=@#OFWj*%7N*jAR;I7$$Pn2}I z-bgsBQX+8QFC#CUd+ut`zk<;Tj;ZD148y<^+4{!UE82_8td=Vuh|Cek)#bKc?tXWY4L6H; z`BysfN2-M^OD1YZu5kmFxisn-mmatBcKBsOKVlS~lDs|Fvk`W5YR9X8{Tla`&Eot` zP0tVqMwU#N(-G_EDv#g@>Q{E(`{jjYVGUfSgFUr8MC{KVhRk{SCTV+~gB9_NkhtK3 zMv;gNj|AM|jkS3a`ywF-`0iR3e!B0!EBMx%gxz{{ZZB-nK6(v3fKqMGi62uMh- zy)p4fQihg%az4Y&{W#Tt%hq$@$GDTha^aC5A&FFyF|7G)OLD2;@n%YguB{Auom%VL zn&oDM4WTZLo2*^|X*E2!GG1a>*l@J=Y4UYvn%}yINL>obyJ{DLi_Jy^P3_l6FIMbQ z=6jB5=G&kTY;BUT0gH)KkM#S5G#ku=TGsQ9)$2x@BGsm~p1nH^1jfc&9~7##zDFH_2OK3QsV*v+^}D zP6lySYTSx>rp36LubJ3f_FwOT<4+77jx@fZ5UYgq`3FvtbPC% zIKJvy3vdr13f=26QUK5_1-Kcqmm_igSGJsZn-Z_ZQ+g3Rem9{TpX$Y!df8g^z7ks=HyhV%?Qf*)c&MaIJb}C%r-4wBt4K5YG(tvvM*it%! ziu#>R;?-upH#2KCJe>)m$0dL1qzL#{?@mHee10o5ZTA+3ob7h)t{-9^VYT^@IQJ=l z&vx@LRz6qzg}vc{_vj@0b)`(+JN-Y6nkBah)xS!ToYM-bAJ#q?4XeMz z%M!-`yD^f%>Qn&zA%MGbo#LPeeEoUhm$P#+*Mdso%h<<72wih3GfD(ezz%_qAQ){N z*;ll8grP>Ry#eT@)`bhDf`_p%;C8fSvt!>IQS3&~q{KGiT8W)H+nk9pndP@{mhXGV zT=g-xR1i#)CYUEj)%UxCeFV($08H<@Pf>q4t*l!x8SX zAPK6U$CHlq*TrjX{=KKyq2c48UAQasyB5w zSQt2Xn1M;aHsa;(7_>aAM|6 zu>C*9Ih7ZptXO)|v||TCL9p>J(N}d)Rd8p;w()|8TVdf-y(Q|NU1g~hw}`U?B;#_1 z%rtHtvcxF^M+r^(Vf7 zN}wo})mp(Tq!a}0%?=H;IXDAb;L#Qt!re~hC5zE1@ z$47<5*3g%Jy9^aDWMDSW&NYBA;9!=i=-S^W79x<_2?1konso2H!>^^7#WPhslSRX9 zM%(Eqr4pr8>>3Mp+Kqr=pD7X=sU!IPpxSv@ed#b7)1+gPSd64%fK{?0e7Ijx+PpCo z;;%qeRWp29K5a5N1K?+nKFT)N+cD1Gy-B3b>psKXkI+I)K(p86#QEqALJ--V7*=$0vUWFrJI6BI!8@urZKpf7Lu#v7;%6W zb=Yul4SigrdfrA4LT1LnxWAS}K1z$~XeE-nuFO&U1Qty{bLK%KOdR?X!u7NJb^RZn zM>t<-gKS1IK&#X)e1i^bWX@ymHI8AC3V6V=OqdHqJPc*3xhwvVLa_flAM7u8D%-y| z0PJyTQCD;3f&+b_TriJ*M9l>qaO)Y9hMakyZ(;uEe}f3paw60@mnE z8<)N6ct|F|7)`;-W=W%w*=^=fQ&MvP)e6m!% z)@LYi&{&$QKrKG=nblvXo|i04TG^t*Ri|h;jkH)vzsb8gaVOZ`$~h63=Pwg2tgrc% zZiEU4E#v@}W^{RvAH8zukbQ>bx{9v_kEmOtWMkoCQdTX4g$r8uszfP-4IoVNYr8j@ z#QqP=AWp8=ck(m?vb>bY)t^lWzGdqtJ;Cze%RDpL6Id|Yip>M*La?pwRE?JN`Y<$3 zKB5UN!xs{R3{XuKaX2Tmq? z4Se4+G5|Cdz<0yw#L^mxo7W93C4(Y9EJQG z6TX|j>!r1`l~eL)AN`{Mwouz>}Tqh`mXuVvn7$UF&# zYyiXe{fT=1lH9R1-3JcSusV0-e(ioO%m&c1Mnl}I`>0vYg4hobW+S>E-_ZX`m+dR1 zJJaalZ8QJ97IKES{s;znMM`Tl;}3HEhDI-A#dUncMy^Ez0_5fGJ+|3Qjl@Q33uNf@ zLm!dEa!1Pjaj~l>W$;y}cM$Nj(xh|K;)mdCqysYt%;CVKG~+7(`DpiOH)u%ZOKFYo zZl%xQ$s~6{ANm~)&3SrRFauZc#lose2md{DZ_tB(o$xYS_tsKNyJM4NSjRVxCrl#aZD@yTV+TajM00Nv7@dZ!3?aXxM=WN}r<^2Lkq2-|xyI z&&#v6g|jFk)4Re>ySrA|F(f`w$P};Ga66TXIKIswG1t6bJM%0PEHL9(@WEWDPiDcv zY{9`!!_|-*#DtkQZ*S)2rZk;J0A2|xwvsbTB}Fznu;R6bP8pT=xhJ$Jh+Dcth9ZWD z%mWG<2jaxc{o<=1ey*&MTx9I!_tW`!ih8eBN@mQDd@QgmOl^`1f>$8c5LidKayUC) z+tKe;noKy=qnTo=j#+e)_GzMkx5)QoJwVNkaUplxuLyi@J{XK41an@W>6n%eo{>BW|eHfP&P3X#}Y}H>}2wUoA}jY^y)R zOhK0ej5@xxO&~R1-w%@O_zuW6U2+`T<%HS(CS>_Jz%9#A!UP-+OFPxb2YivCEG-&} zG0L{g07C_FtK^2tN-H!>Y*2Zo6k|pHS-Fk_;KJwK$X9N3YBvoktRb;tL*Czw)r;4c z2Mr+beV+&;O;U0etugUuejj3RbZr_e7&&?j<&br_WTS+*z?$G;&7KhgeSG=?nMS?@ z7QG^^f7f9<$wh=v~r#+21G_P#Ru?JE2K84Iy1;Ech>g%O0$-`@1IGR=1kFN@<+b1& zXhSy;9*@9h=C4k{MG273$!F<(-r?j1>++~3W5S)g`J`tiC70a78~WW=QtBX(svceI z)qvfJ@mPsRQF@?ZSR^!;cw=2D`pIGt7fQ0NAJl)6W81|J;@4}f?dPxVIvse6ePfb> zCEzqUmL%*3D_ACZNKxUkeJvfo!cGGJL%%zExThBgmT`pO8W@mGXal+bgKo!g3w&zN ze=Td%wZ(AESJxj~Pn%FJcRCKD3?lPDm!Bvpb(l3EiVsf*!hx4oYv5ZK9OuoAD;fmO zDp{^-Ks6F{V{PkO-n#^c5Y}3d$Q?qg z(64WQOX_bBXBQ18>36eYP#qlQdMYrIA1f<}*Jfcx^4j#>DOt$*=&RlK8{fxoel?kB z_KTyw*wrigaa`%vpV@D+UH|p9UsYo;mOYx&q&XP#l9SVb&%3OyPKp3k-&f*rGEWhzb1l(yw?lCvb3B1QX-SYhg)qe z_fh}&W1l7_$I)SuyD+J!IN~N(Vm6r#5fiOrzx8C)$!>10wWY^^r~>k`qoIkILu{~? z9cP*5s_){dYk5)YPb7G>I0ZCt4xsyzCILzM@DPTNtN6sP4tiJ*>AZ@x^M2W1f&s6x zwb~y~rm(A58~C**GUAVr^m$q$ZR6l<3uMb8Y{MvF3xTx5P?HB%bI2)BsIGKJp}#b} za3aMHZyu!99-N&wsbPAGZk{P`7ERNifvsG|c)f%*J&y^kU`8*+eTC`d>c))r1;_So zTv&jY<8{gfBOAZ1NKP49`B@mCh*^A^jKH$&ovTHBT`DoRxb5Nf0NbZ|q&ZKJ%D4h7+0Qa0wnR|_kH@)UWp+~fw zbL^|0qnnWC{8CDpmWfvJRiKd@6s;zSqkQCaUT@rck+&6JwCV;NP|uH|SBhWm z_q4V2vQ3${qqqjFpYkJoA^~R^Nn@>oFXu+uDMHhfrjLME8<_JAyY5|C2qTqngEIs3 zO2Qwk)ia|&&e@&u9AmSoPd?+@7J0B1#ztcq*7eoOE}i3vm}9%%21~SwwB+C0!s!@i zgf8Yy#y{UR5@XXT>oHEuxpZDox@3&dfVdvrR=&=2K3kQ2@vJR7__^2lc7ZG!7()Mx zI0M^GWWB(f%}8vS?YN`c7S$kTey~Sux7-{_-y}?%0RsxkJ}9WozKL74PFe8BpJ|NP zK*;Iyu@oyg?F^^X3)=dTPfYqR|6a*UtD)YX>~_fqp)_2q7h z+-G7ly`B0id~A<|B`qd5^g42vi8BM|G`f^7nMw5CkC-}& zgWb1`-rE$reT3bo`{%3EwN(LKg=!wkOmYaKrdotVvPKYtWu`b37Pu5RHY>9m+=OcM z4KA9|=C41cYV0SfUpv!EDAaI6cCC+_M`xLy#yy9vUK~Q0tv@dA{RhHC@iqKufE0Eq zeZYXqKGc-+t@GX!$?cnyTYHOdM!z3oR0Vqf0!}scyg>5>-bEWj1($p{MIc2q5_VXy zd?}A5x@^*!uTgL~9OTmRkYIR!|8kWGim@*0J9z@qAgnczZ4MWayiDn~bQaPsi@wjb zgz*jDUH2~t9Tb*?+x4&_66Ho2K=`v~{zegY^zA#+;`sVRG_G`;fi)N^6inHF=}C)M zgyD=;9OK*|^Ye7Ag~>Xa4PsAgZ*TM8<6C#2lQngrhuwtflBSbRS9BmGB)bT zarl-QsPTmK1)Q8T(g5s6@pvD@lQdFp&{vox`w>6TACD?j%nEFTBRyxAiypElG5IJ+ z8iXK7tZM;_y2hhZ0`902dh`u{=(BZ7K=QyofiFkUI6=7C zI(eU?0AhU3mqTd7iDhcW2J$1Kp8XNW3|!Yd#74kWrcdc|C}6rafcem?C*epd6QE4l zU>EN7+d2yn-Xm)aKq+uPEZj%P#U!f_^$S8^FqNLxHy$*ibU8x&*u`eWCU3C0G&>k! zKn#e<1+5Qn>p(vk4Pi8cEq=|rG!DQ+YX)}N6sV32two9%-fwZf=U-9tgbl4eeS@%- zy?9hdkKa-ue6@K8ZX!$riwlg$U8cuMXX&5Ojb8z?+iK~w)(8B%OkZueo!RW6TO~5=iSbm zGC3{cA1<);DWQGGrIja!7ZvZBt6mjgQuvNbm#w?tu3BruN@3v$;kSt_+GXOw!4Zg5eMv;wSdA3r2-_?kX{fEJNdG<7MCj}p9MBJ)vv znpo5{69GS^LUIfd72$a{Y!EKh@O6LmhEN-~Ofd0R0)sX{79So-+AWo3F7K9{*q2Q{ zQj&rt8@EjMdLluMQP()pd=O-gh4?AaZ3N(rh98a6;xMvEH<|je#Y0d3f2dr;va-cT zxu*cI!Ukzms*?e~?w~3oW8~HcM0j%T#GBr4A20HN^T{V@qczJHm|1+% zNQzK3){l=JGA&r7V3U##T{MqClyB{9xgT)nE{VR^rfqA*MB`hz1V)l17H+7yj25v= z?iSH=PXh#7OWxXWs&L`tizIf@3CF%*zRI&DIeN-gD+p$CnD00~q09OU)8Y)@ucO8- z5_K5;NS1>`8XhEMg}WGChPG~3){lihh`1I7e*IzUDe;eqJEHWm2m@Xkiw zEKy=@dZ!*^#|RT@i)F^k#cZKC-Wza=5s^>F=ppiPq;=gOI@K8G5U|JVDdbwif5pK# zKxRHR(?6Jcb>bsr!=VRCzvpTEt>gmFD=DZYd<(HTg>e^o^ss52Aq;uYW8t9xe6)@9wKVLGS!cf<~ zjq11+;3JVtF3C#`ZY&J0qwnC*QrBAxyWL~a)>bq}8kZ)jsOLukIDo%v`|U{b(8*lB z>AjnVdw@JZ^_qY5Oc(K`;c!oMKduheDP_vQMCA{&%jQvyxV1XPepYay)z(`%Ue)=Z z^{kMq=2@=_aev#vt|Ou4ZrXCU;^{olcvJfUo!2ELo}Hzg|KF<;(IC0UruKaBjrnPb zn~8**_@j&R*4L|eHyD2Hg4D%~CI7{?Gf;46M^Cw%4ufP-5+y#hwU>%M5VlBk3$~4W zmB&Og1%Ffs)IQi7bJfP*^3K~XLRVWaB+h;pa3~c<0_+k#uWoxd-s&_yi6v#lV@V}+ zv=dr_IVf(;i5PzvZg707KgxL&5Ck2^f#TPxjGQBR3~`0R5Ca;5j`ZIbAKH(QzmF)X z8INyEg!msSk*FB6p{1?_RU#YrZNu>ec7q=vPuCc2oTC`$5L(EqNKzI}*!Sj!)RwQN zX`Ki=h6bboFnWNL#Ik?3az4rhTzdfbvhT;O1#}aF=8kkhB$wo&++8);-hD2J+LrNjC9C&Juh~Kk{ya=bHmOSq4#UNdrFtU9!?=#zcNl#GgH58+ z_u3pq^Z{ZW*W=B$;Jq7l{n5xJPp_F+6CdV_NZ;0YDz=U@+Ko7RHiQ$8h6$sZAWm5{ zUi#Pk?|a#rA}f`|BZ4MPS)3z98PR{4z$Z6eG zo)oF?l;R4tv*rv`PBjM*Ip1b5Tg9k@1m2(q)iO|4ze-a?K%pw|Va|+z z_+Svj$Plm5>{9`253VcT9;rfKZ;C^5 z(Dh}nF}HWpAsWpZZ1C=bmZdsPY)4tBMAxq{IJjF>Z2Q})aaNyMzD z+y69IYWeZvjWbb8lC2{UvM2a?#7CJOB*r09(KK0evU&O8W?fCaHSO=+8&|QZer~$9 zpI`G;$kl2Km?Q1wA4k1;7GNk#!DSKrd~RX#_x+YcWdsQ)c2wbzN%z%tv{;qC5z6;S zhz?^)x?)YN0ZXSS>`ZEt={UTSg;uY9VMKlu+Ys z%Wj{+l~b5XLu{H?+|uLyR$hW%fMBqd?+X&>In+w&6a0~FPetD4DxgLVs-}5w0gO&| zs0X`5jJG7j`>zHW?#s_y3Z0;50&5i+WoKP_+E}hm&ZSm~CExt}s%%55Rc#Y}bAzhL z&zv8~etYy*9rPk~(+kz1NfXWY5f>DP2-w`Gm6o>8hi?F}u)EfkH(2x%f_sbxr#oD1 z@&NXKMhNe1>jDdNy8*S@$Hx!GAD76wy%)ofqpPOtz!y|35-&+~IRE$XbS@f&?rai9 zWoJRqOG=}lH_sF=lCxh~dX3L9Q@`5l^x%GS1=pmAQ?i0ig%~He@i>(n zJnWmvG#JquTAfuhaMs`f4FwRuux23 zg~qwbL;mcnx2`YSDChtmM_7y-zleQOQiaSRHh;jS?=)aswh;ZAdav-CUk}bR_JYRD zI9U()CEUVzEOW_x)a-#;b%D=6rJ?#?GcqCC)wo5{4C6toh+pFe>VrWT?}?d z$N7otbg+7?g!6)RkjB&O*067#zSydt@(%a^ZVg%vVyP@V|1vyu+oySiNpru)Pf7PY# zY!&oNJ21qsmL1gXd*oU@OIk$@&C%ju?>DbPA`QdE4Vz87MO?$Tq*(?uk8`mafjP8b z8{K66E!?$rp+(f_^Nc@UDdCCC1#BG+Nz`5%fOToVMfvPdP`(W}x%iFnf3H{h)?8R= z2*zS?5urH#T-!)_1{oC+(F;N3p&QB(c!w85U=)wLg5qpl4<>tD0*QJXWB$pN@r;#N zFSLRxWM;LNtHkIZ9Zlj$M!L+09l%}-r8MkL#A~#%h-g?TW52@il(B5`z zy4}Z-j&Tf!fF7J@`cRZwnD)1j?c%np#v6R1nuU+FHvLJrSc$9q0otHCL%G_%%DxVx z0gvURc+sL~8k|e}Q&r@j3`N#O$*7;0P8 zpfwxb38ZBh24yj|d^t#g@icQ?B+yoy{Z>pWfos4%V(vObc-A{bi@$F%11m3oDbXIt z3?4gO|K4Nc-vIAl4}D)H_^539nDwlGZ1)gtcOevvTAScZHG2VR-OhEtEbZ$X_x*`# zAm5tM?sRdS*>(NAh^NxBZQ8G=Aa`|%w-OTCjq25HY>UBaejlnWjbW*|-%G(#uD$1*?QBTS2#&+Y!+6;w z55*^co2RNV-+j07i!Q3S7cKOw-KG^U02e9wsPWi z4XCEVFEHvPuSM4=Zikja%%!B}ctBZq`^c@c3 z*7F7O`_6Tb?o5}0T04p>RmjAJL&c#b?0xBWh5g?|Te)tz>dreMZf7#4I`^FGADTsN z3mc1-eU%eaY%3Gqwih6moey6@0!|cp(v>(Er}1cf;E=xPrLI4T`%?x!)Mu+`;30nY zCmZkb4Y1hvzK*xT?m_Y6EkIf?qY<+Aj_4uJ1wTD643@)L`wGq;T%L zzl*#oq~D1;&GduPwhYcUom6LYatp_c2>3{E%58vV?)Fw_EAD3c`^(NR&cQGcv|Q}z>0VAiz@d?+O17ScO38;oxMa~8WY%gY%2v~b0o&rXuO z(q_~;mOH$#y3culP0Pa|lgN3S-84ktD5Kc4<<#hubHKn{gXf>U^d3?#r1yFB?QuJVNc=#)z105ad~e2gU#g9Zyjac`r`e?T!|e`lS8!2Y}}W_O8jFo>=TDoFTl?2@c3 zVEf=RjvvRp10(^OL7qMylk64EBEp?xN!73n5UvOZ&v-p zSIA?Zvr0AJ;oa@$(>EQs!#$00|6aX`uXI<4*x;=Y>Y>YB)cs&v*2nTArfPKUC~w3v z2LkepHUcZW9ITxSMrpE?YU%-F1OZQz9v-KnirhuRl$%(yF;i(2MY_{1BR4SfVxQf4 zq;b-oZyAoU!3QxF$^um_DMQ(UUF>dN7in{dzCdA7dGe7Olv->XjSv`c_LYS0s)g=- z=_y{0R>p1H<4fu|UW#&S!9sWWL&NujLgiTDx!)Ks2dUge1nS&R>ONIv#jVat=2(}= zWbjQMSQe*A-xW1$;c~uRq|T(Dq?k&}njYVa`&gizT(WaA-NG(wZEKnE=9`6hTrC7V zXnV7IT&k6~+UB!o>w|}ViQiWKc;*$^q6llU`=nzo*|xcq<>L#F#l3Fl^*oHws~+oI zWEgOtD@f$^egZ5Jsxb5`GM4Nfz?zAh`V>BcASpN*CIxsKUzkj9{a3WM(XGjv)8T*D zh0=pfoUL3dUHgFAKUo_5?AEJU6(P-QS!>6<`n3dt<(uml5GVPunAdBJ*ROdh(X~$- z^GOie=MgBT#QMDnY%mXn+lo4d@55(@9Q63Tjic#-n^u*$CqT#N-|$&~n2p$Jz|pk< z3fI@|4gwf6sC+@s+_knfqYy7}VdL@pLAV8jiTx29h3*CEckUt#Jf+oVcHR$<3|B@YmpB=}`Ypk@rAh(y6`E&Iz`|NWu z9iRwnS|f~4RO3NTXxi2dyV68%cHWu{o_*5nF(jc3+TrU!Y)&t@F>n6q7(5SeY; zFcI)?@0c>ntLB6tEKcoP(J+5Fut=eJ5sy{d0#}ODfD}#^|AJxul|%+H zwj$f2l+9U7L&mIPHGBr*u7g%&+f0$?BgWUS43;vWLFypA8hjwE)PAi4#l zoo?33tmS$Gm2_Z<9ew(D=XpNe+67d&YS#=TDVRvt>OyY?6>{ehTFL=u`E>(DOwRBQ zYozZ3*CM_}9=7}i%1E9e0r-^6CctBCB;WkRVpXHAHWxIT8Sx$S<<3UYR7O)<3Ys8f z?+_khIvF)D1t$}tVpFnLvG>rprLN%<$kzhG6gqsIA9@p&3z$*^VPTeg2JOZ7g_Z$e z26EaPi}N4gj3k6Tdwv|jpid&a1k!oh?Z?e6bM67=Z!VWIOs3CoG=z6pL25);0fP$d zw+Q`SbK`*&8erS64r(!rC*L{Fj!b}TJ}@Sd`hRImcLW~*8A=VlYE#Rvn@IHE;6Oj( zf0(=(2xP^6PPmCcRKkQOe_6vc`phIDf!&Wl?4tAT_7TIZg@Kc$#FjYv%K+)+P_6hA zcBQJ{aq+j#sG5oy9K<~Dv!+AJ;W7<8XOledgN(!ZNNp{~sABF~l-i1fWTEQ{6y5U6 z*GYD=gnx<2ke=S!$pY;Y*gRLhr~SYF;dehzM}UF~kWBYqI-<1VO~^4-1lvZYv0eS7 z12zwgr-D|n0eU-T@1Uog#rU5g$jb>M609RBfV4W`jI#_{$+3)=%6ccSM`91l)x(I( ziMuP{JO+#qze_^~Veab%6oqZj8cWQ!6F3`tbDUaw0DR64G1j1oSp4%8jwixOAz@>P}Wa zUzcL}i9@&;$@aOnWT}%x7_cls62gHkE%Yo{aE-38qibX?Ap06eM+FoKi ziU|)TYOvMo+LT(VFd~OxSOv()(v&*6wli>t4^O`Obc_@-LyQdBxjJ zA0v2jCUj3TH)4*5Y{fD@{a|J}T3@6%Ej%*lccsUQ^!T8#Em3v{bE_ql>3DJm2!P&a z$S?wo*4b`f%W{;#iM6A(KzFbkUWdGisL>=#Y;fO^*8k>$uglY5l z3|NhR_T|}He3Q5uglzoB$r=i9=7Ol4*NpjzDlN59A-&N2d3?bC?jqMFaG|Da zdnm=L)T8*`2ghGf+$#6vrPb7UE9DI<@Ywze9o`)v6KF;dXt<4RPFHqnH22-$nYD0ki_`cSGTpCqH9Iig|iFs)@*dZ~6yEM~85w-}q5L0SOdd3>KNG!N8cc^TM=YS9ryB8^$8vpa}r53T+;_0)0u2rZJjAYPAWQo8x z3`c+|JOIN@Xf!TGi1YeYVaSOrO0wh5tv5H=gq8bAN~`|{$Cz7$K9t_d3YqCk3QDAl zH51S7_Yrd)_UIntHB45E+GF_3l5`6=3^_oT7S$@9VV zQ;9HeDmpD(&>@_Ftu4*Y&HA{%t9Ky#>v;KT&3BZ>z$J^DehbAZ1IssHZS6^1!||V= zc{1vroR4)5C5~>ldLVx{kE!1wg6_rMi>tWrt(7bu!sArs-0ppGdL65;` zbGKlYYclq*xnQV&^j;~TciiN%eW%z~PDqcMhAHD5w1MLgPf&JXt9S>A4)c>&hRgiU z=3)23A?pG-kT)hH)nt{jj0?2uuOrpV;@i4xbH>Uv%AzN5XTi^M4Tn+DVk;fw0O_Iu z`N5<>MgSMKodEe|I~`y2z4}F7*#5^hBI&{D>omVvHnGYtd+%G#Ld)|eS2%%C15XyO zLQ)EYPW!Eq80zi!tr@&rs(VzKkeNUe zREZWwzoY5o)H-MEAe;_04~+7u8~8b%W%>>i7dWsS)a8oAA10GHk)3u2_cCb53CX$D zd}MeW>QDg>B7dyFb?e5@^Yqg2?Yu*_{iQ?C1V;Rh0Z+1G1HzeMEs!}GsMPygbGe#Q ze#*|xeON5|PEEZiZ4IX}!*VrdRrgf3we6Sfoq)#Q1^QU_-L*4^1UCn9O*%?($&wij zV%(U!qD(07=k9VKm-g?OYOa`xjI>DDzbb@1WP6X3%PY(>MJ% z)+pS%ay~>()VdX@M_OtdY9wqUON=J@A5^+;N;ZQaA7!|FA?lgdbjaa{m7s z;{#TAjxa`HewYp;@R1_M)!(wl74?Jxd48j5K$FIDcA^6l-ifEZwU0d0K9qE_i~@{J zd$l(}00b{t@#7DT?<_&!G~}ksJ<)*l_2`#>V7RMkj`K##^2}h2DXE{dTv_A$y*ud5pDwxY@Q=94WNx_bx<1I4hwldw)~gU2Uw@THAB$Wy->!K8R=~?N@aIa5 zupa`uZW;kXEdl-eWTydsYdO3-7el!yj%&DsKDn{o*WYyLu(^jk`gxpS9A5-zQ-3eC z>9@N59rG<3IYJf+XPedMrxTbq3|!lwI|JW|3M+wl|m>T26DmJ0jO4!&rDB-%19D>GCpX3(}wsE(3U2a4Rl zXEAP8>5TVir=&VWZL(ldWNTz%o?$6u)bKkvOBghugW`-~wgtH22kggfW$P(D&#hsm z$G;M1R*x-~Q&}0SP#E*)%A2e}g+4k@m0UZ?jrvTFYALDLsLW}bydQXUU#jVIA1F`z zV*K0+ALnN;EN+(i99{B&{wCt;V);ug+UZciOXJu#1os-?;LBFh?aq2Y$1bCZx6nC$ zlXA-NXuMyiF4*K}1FI*`?XmN(-d^iiI&Kdor!ylhRNK=!Jlt4(3MSS%a+PLR@kQPn zQG*~v6g^>-=WU7Y$ij+BwSleMpZ^9K*FhMpu$_~qn8>eYyWg?}waRzdADbm+OmpW~ zsuM_nKHs>l6itWId_2{6$lxcC_N5tZ4yWX+Y4Jx~mW@X@j_Rtn3_Iw)t{{zmt>?#* zy+`bxt=pP+(Vjyr0kDy~7NmwLD{I)pSdfV1yE&pJaPr->{WLx*Uvvw|@DGyTa9zS@ z!6Orn-(%2^#v^Em{K0uXy_4Y)BZEI z!1LE}qCXBhU+&D}d$?EbXDsZmJpQz{-i@7*k7t2Isw~SmD!CL5{HPZ3 zotbeCmg&|_3~^_&FYvp@3(=nOY<)9%)%ewBbt1bKWWZ95#m!&~d8f0$G$?U6;*v0u znK=yS0c$id(iA)M@hjg{Cl`@@2zXM3B;dF6Lh!G(&~dA6aUQD=R!JIqpX=B>a~G@_ z<>v~?ZyraJOQSc0P%dC~s*gKO3B#D$YyK2c+$+i>)O!5)FTiot35o&n38%LUQi8wO z>&W|ve8k)&rCFF7F}IsZgb?Bu5tOv_KL2C6J1E24mA-fDUH82GqooIk z6TndK`>(2N8(!*Q>ZmK)<3;6LS0n+_{Uz*?_;0bq_aX8C7YHw2Kp#hg0@X++F?uZj zi??d8=Plh|YPgpYfyJVhZo3XCLY|0$W9-38+E?x3PJJ!!bwuEhF=@}^(s!T;%2DmP`Rg;jwCm;zQ^LRdlGWLv{T`RO1J$L= zH%hJBpC~HGXOyIpMTx?6TFcoPnqtI&&xijc;fZS4`?39&=DV=`I(-^h28DGJQ`r9W zkWY_DgSR^e*Z~Lfe7Y?;`OTPSPt1Gy;8N^o>1!(R$l+%0-Ot&2b-x|dBwObqP-ng12~JJ*ZGAU4?Sf2igU$$T-Mb>~ILXI? zB`GvKmFI6AN$`R{x=%kB%=_y6r&%_EfJ1i>D!umcR|`ihedd<2)HI{|TlA{Al$#I* z3VrtMX;f9h&s5Q?Ncrge#i67N-Cn_+Q%oWIqMh0o~V=`~H-RTr^MUQI9 zDnE1v=>#zWPHk@Pb!=DpvAv?OLfZT6k*d4WrIERVXJz^FGyLedI$m^KfD$8^=ncm_ zsGRLcxq&2rw0dDmq(JFiAYdq#KvL#*DtcR%a(gPer|*)wjsuLuiUxo|?f<`u&;9>D ztokB5UE-~NN9{h?d7l?ImE!gn*LB3HRahF!AbceaZnp7^K}KQFwJy&H&hNx<9+!&pSgGKCqd7@;-bl>9m`E zxw}bGHijf)21g%K#$^{z;_&rtb3_io1Vj!s0WjJm%kNj z^P8HkDlT-+@nn1CWh-hODx9xa0AP;zIaC1nr&9DPshJ1s!{rN|BIM06a3irIBBTtp z>QLE)fO=HWQ4QM+C{v%d^o09xs~2G)+zIeS*Ie`#jPL+AZZ(-j2L}@XyzK%v)JYRd zlQm7!s1>B3s8^&!cUnQM!I*6cpPx?2P?$M(pcIe8nl3xxuS*)YL|fg1Y1+ZN3m9pS z&*R@-U&qCK7S472DXB3d^p|>}pd%6sKZ$O)g4%-<+CiyOSEpneLZ=e8owZU_DCm9} zBp}bu%RhZ;iGAuL^_Tnb7l6Aonn!@2KlH_Ab-XAhy+(xo0u>Cqj5_&NzU57vXP?uR zD`Ej{o`60}@h^*WBO^$l4lx4U13VnScN7bfmWqJ*a3$rPs57j0oeDR;C;xMc?pgzkzM+jqNV@?Cz=4XD+2s<@BY!edF{8QhqyAiZby3}+tD zzh&%9HYDan2QkZiq@J2jW{rTRHCoPMLR3)SJKe@pl>LwV)^35VoZtJ!m%CfH{x7`4 z7`C;Y=ND)IX8}K>2H|ghD1cfCB3@XKmaDShsfm2hw*YBfV!Ud&5ooC=_B0#b4*}{{ zx5`!%;=Qm$p=AVa`cg)*ZBZyzs>;>?sH6|fJs(77l=Q;aHgDfT`(Fm39X6Rj`>1K) zy-Tf??^{-K5V|r#xwoj@Q0_}N;nMtv3TI;nW0kbk>tA*W7hKQCz{?T1U zsf7x178FKqVGok>bHsT4?yB6hn*_!`nZ9@$WQe;BMw#hRfy_F6351YC7~p7;IEG^Owyg7CPeQ?0Uhr)Hj9N0h z$Hp`%Amz5^l#%hwKoBg<=kn~BV86FFn2lufakb^*V13iZ2n51W60AQKhO{;RY*%dQ z_FkW;tEOUM_qQDj@}A<|46LiKt}8>7!XX}mhMo}*Ofu#(Js9#$>@*g<7gi)hySRp~ z9pFr-aSHMv9%kJ-6ZoLVYRd4;!s@nnc0hsdn000C@OIzUa-MRRieAI^3q$oYAqM?P z<%Rm+5gRW@FKzpH<9={>v_ z1BlO#dtxzU;4XOES8OZg0r5I;*eF%W0+d765Y$4sTemMqO=?}K2dx+5){^Bt;k{LU zpm)DTyi2%l*V!iPpChJ~4PPt*M$%}V{9ga*jYO%rD(=^%i!nUnMbp7atR0)(&q85( z)7<*N;Iz+q0hXW7#|VEy0uF{)8YbE>9*t9j+7%anTKLQB`eQOI*o5__3qNq2?!FRavAGoWH+OaCq!yflbSmT*?6!XgUR5sB(tjM{)NQNdcLhx?flF8PNzfB6dBOV(=hS_q9U1q0SWK4X-T7qPtX%8fOC4SC%@ILbEg`qOOPr0`!Hlb2t zKa+7L5;Aog4lp6)4Gpkb275RSV4Jn_J!GJpRQ-kdHFFWB-u2aI9#~VpKK~ggtxm&& zPd0v0czVmila;AL`*|cx13T&%{a zrf%`cSMS*;JvR8)bCq&9xbnpZDwcNSvd`*!n=1$xV?5uDc9?O90{o5pFU80}$b2f} z8&IwppF}R>AF9rhBMCM?Z3ut&>8`ndp^aByngehkq*kF9YRFhPjq9bJbP0@cM`Qe`6UI(-<#*%qQ*F`i2 z!MOeML@C41hLWbZcOJ0RBn|)m1c4oUt8N{p7d2yl+2!e}wi!qof~B@BNH)uFQ(4m{ z@xaVODZ%$jW@|ZQ)1Q;rUV&rXK@T zb6?{d0styr%x3_a6hQ-XDbAi0QTtUP?nTLSUZ_5*3F;Gfic~3nN%`5AaAK(anew7x z?gY%Zcm1u53NUFo8BeyyhctAA-TVJ?-Tu>Vv$0ufJMnraKemVy`34Q-rQkv2DPOcg z3Ns%-lg&pZmI{oTjkG#vUxmSRzB6j`s?hvyET0KOdq@Q>4U4C|Ec%172ws*JO1WGH zN>qlHhMz`n{)Vrb>T?xduM#H@Ox_Q5L`^C~-iz&%DC=sZ ziJquV3N2SZu2y@!gPMofldoLY%*}oK4WVi1QQ8IhZOm{8vFSxTelx6L@R@xwQ4%CV z;Diu^Wab}unRL#);BQsjh=B_3OGHveY{ds6O8Ua5QJj@$x?{#Q|pYQxw2w9O7=NbV8;QE;VrjTvb3m2xIHFdJ=g+h$HDaz}^eAi)Pc@ zKfNM&(au{s9kTK8&D3xi$a83b)lF2hlAa@=2U>7CY|U>wc)$=8++8V+y9qDGI2R5L zLTh)>5Zcbrx#5?Jbn0BYW-p1)^SUn-*bOargWe(hKdji4aKo@QyB&n3H8{dWN1V7*pl z*Gp@7S(K|L7prOLMILE*`*nvL)j@onC~T{<-Fm;~3~8+^;^dT1jFsBE2uY}?OAN_=O3WS6`G()NIR_0{6o<;*_8Ar-P-Auo2+m) z4!;|YG;<2Ts608LX8yNtuC9%CmqQ<8MZ<{6QWou^$&Z$&F|&Up+4#$Z`s~EP>zg?McPacR!qy*aQ zd4iOS!eiaKc>N?<(>YLLD{?kz2aAsrI@J)91D)V+@fNpXo+G9_AVe z5VuTo*vbt%ub7w*34g9a9$WM0^)T#sflu=s0_LCRr`beqGec!ubkg?4YmPi-zG1h&Ejr+t9OWxL6z5D1*{j-g z@s^t^`MlJ}JA|Um#_94`-QW|+U!Ios=$-9-(bCh~Ey0U-T^Bh~%FD$y z&!9p5Q5(5^4CXI24IL!08XD5@mKbCuE9tUkr2mj|;HszBFC&W))KVR1UfKcQ9)j;1 zXO}PHZ{hWkZA)b;KVHmW1iHBJj^SkPHj73vt}a*To9?T+Y`pHU=N1;pShF7A{<_FI zg8wp7_?X&7KYTG`MJ_~lS5rC_{8(g`xGV%=7-H;0|5wo*2*pe>t^^2- zhSX6xOO-ERn$SrleTLb~H`DjZzG)VRm7P!*2H<_F09dF#?@fB?L?eiRAP1#jlJkYV?A8xc!nuZlv0P!wl)a@84Wy(}Y+1kR$f{f9%T}IdD2gW=90@ z{z9e*65+|+c{e(Q5dVl9M@x~xcTKsDRvR@7A_hxDPRFo+1~E*_+*NJCA93AchBPMK znS0~ZUAU5fB{C`!+TU7{dfr=Pzh{&Y@cb}h0Rt$av6LH3@R86jKJJ*YXHnn>Rh_l!i%l=q zT{IFN2jOI=2LeU^x7kR!@!oU9qtiGSG{7`_n0ET5m_0A$(j~Jwl7p1Yw9NH}cx>0C zj|8b$Oc!#~%(q9C7P=N<^2N;%HD_z-MWKg%2)4ET_Wr+KQ6Qh;90H=0q zu5Tj!hyxgd1=qJZF#8UV8_r^ALcNy+OtxL)?OHeq!h>(h>Tn|^yk?ZS|RNnLiW1`OCifvappx3b8~vOJE+Xgg0DAYai^2Vsy*y6>h7RSVwUz*7OkV&PL{6#r(p>c{qSymIbAFkAjDeO)K zwU7xRf{B)w3_D?D#(GS*YNLGHO7OG0JHQs@hk7x&qrM14GD2UT+4t^)3?PRuzz01D^Bj>mZgVPjR{ena0;Bb{=m@_r{!d+2<8R{iIGOd)`NXROyBkum9}G zP`Oim&qhVW?Emk!lzYbex_!K{Y_drMFA>v?Gf7B(I^~P77G1m7kkged;x-iwTJen> zws^Z^^Rl;`h6WmCUEMlePb8)=g3AD0dIm?kPA=t@Gj62*l%2@I8$4@O#!jVvm+P@J zog9H8NFx!@b-Nh-BdVtlJ9_{ym399fsaYSw$Vu$U3Dyb1CHJg{V?hI?8ij5TVpnmz zL;u&lTz@p3jxp%}>7uIcRbl@Gx;}w8aR^20`9#b1;K@iZ7kUFMH?B|Fe&KOMAzL9e zHBwYj@z*LkMk|HFpfajf>xkyCLMo)7FlvtQ5rhu9vV2QNbRhs<64%$$`=k3{_)&(3 ztIO@)rH(^UV@a@t4kiE-e*iTE{tD**Tk)^CD<$i)XJFZum4t-OB`F^zBM62bGv#)7 z`du$VVTMJPc9~wl@2IgPvnj^cS2-69K|Rp?GE`e2B32qpvsI)pS}6t($RU&~7-Mqi z>;NoR(PHEF>?efX_CuotcR=lT_UNu*!eacqIbc-LSCU^AIbe%+V3xVgHyH_1 z&f@3J{mIT%ri2n4Lsefc|F6Sv;EXI$@^AZj zF`Mb!AQp;CVEEnp<@2Bn+&zS~DqBMH#Yt^uPyRK3(>kKVY_rvIBvZ*& z;!J2?5dyc9vkZXllYVUg2k@HbpT1y&^5XfZ;^ai)fs@onj{($RBe0TNmE7{C`4V|& z``NEoQ;hf;75eF0L+2PQzA7jR5+lqQZDm9+7V!v=x#7JoyL)njuGhPXq?~&ULMQNJ zD!C=x`#_9Sa_GDMG62Nxh~|Lnk6*g_TOgv|-o9%oG%PzHmM2Jx##8ryZ@P69)NSY2 z?cnj}Z}XA^pTSyg)GiwpkdSuQjCDp2NBAPL)Pq0AcRilqy>qp=rD%U665oT)4z^X# z=PN(rArii-i-$mTgkBJy_-lnN=Ed2eF#CBMcg(#SieXA`KIz2~_26n6|9kein>*=0 z3xlPH{CO{pkAru(>>53kqz#w^#Nb!epRm5A|>p*QfWw;)-@k~rw`8f2& zX3VReQp+S+{C|0{azr>od&QaGDS!YMYzw}ER_egc?6%@(T>+o(-f*D(yrTbW?sH?1 zODXmQxpBN9Ls$Vdg`^?3ZaD5=`4suLqGurzA$PmNz2i8U%x0NB4r^uR%5xE%leSv+ z7yFZC27lg361b}@AGNo@MxJb=#Xs>e#J)-6L#x((q5J4RrpBc)O}zcyb9Qf8w@mp| zE!Spq=scyJ$Moi#Xf(sah+g^toSqeIxj~9{**Ny>k}~=S%cGZaY(B4_3kBLCsV5 z9}{mljFh<3Q`4iGo$1it1*SfrW+K2MC(k0!kbaTJ> z`~Tnjo^#%_&bsT~v({br;Pra3iw**L`vC$u2dCbyLm+M(5Xh!6 z1S0qm0wH!xtyd8SZ=jjVOT!>HxBoJm3Sz+-95WL|cko6n1ac2t4e0{^r9QiQ;efk9 zWMSg!Z>F|qJYCf_nx9?H2^6gUh>!N941N26mevICl{mSba%LW(t@MZ{uC;Z;#cadw zg?>i!iSMrW-tgD^JDLR6ZT9Ut>IA9c;vKZlNx12wbGei>Wc$`qPof@&a?wg!q&H_& zYco$;ooei;EnnK~`5v!UR8~F!t(fZ;nv`DkPPbo4F?A0d$Zlw zHlgT<#lu|HXgTU8F~D!&C-cL*9{nLABgPZEeDI_8KlzBh+5cS6DC0 zH%%KG_=69c4Z))Nv~-8Z$FvqFXYKHMD8ibDCY1ftDw&|lI~rOJ>ZbxuX;LNh(1PBf zS;MJcy5^PDx^^Xedd#@iJXyLgKS|*WvbwsF zz^wPjCqBV&QSH2@a-;9lFZ1u|4*W0|_JnrSXhuVgAPLFm<|J5Tk z(So=XGn*PCo4RK{o7%b-PcjcDaqju>9gBwHYo}&)-gy)ZM7cq+HLfa6opBn);~!dI z>krU;p5MPgA*|vq5W}6%Sa;P?Ouu$<>D_pj{yC?zs$@q3_NG*k9G8Npsk)>q?b&?& z?E^5fA2MK2)@?tTjZ^gUFKoBxdN_{I`*Hm2ku0m_&_&p@yd2Ho{^GiEG2o6G61lHk)`r84*0EBNDtu*C(2GZzKui)HK!ye( zVW7ooV@+3tl?H^0pUCOU+jBPb>qDW8&v1E#`K=kn=(9g>Hof1CuT7{cT6OO8gUZ46 z0&hR~i7|sGS2DUqic3ddGBN0+t@IM3+x$sWODb99z~u8lrIaF-t&*{^-s-uBdr3uX zzBbi0=NqQ^fh$?*C=fLB9(pWpGkBK<2bBBf%dp&r3VxAX$NTlJr!aM}ykhtTgzU^u zp(EUoZ*LVgy3@@4d5OuWr_*fF=+hKW*l+gPVYITUuU~I9`(7|HF~J$0JTYkxC4BPa zNg|uURHaqaq;0x@%j)^jR!EmkH4!oK-el#PR?E4Dv2o_b537N6-@T@jHq#s*Gr@wB z#H&&5j8+eu>e)H=v5ktuLEGrEf-#87V zi)1s{PgOBOp{rG2MH2vcY37Pd?GU@lOZu>#@e`^DUUVhDNo^nxdFk zi}zlWM}Mk-|0$9RzFyj}`}y-{CWhMjiFexL`7)97*#U*cxEXv@?B@3Z5_Y&*R7MujaSxNI*r???UdwR9O~%{X`n0MTETa5X{7;S$ z2-VAt-3N@CN-$M7ssnz5TE}GSJ`GTuIHKVavbr=PniLx;_5&ssgk9Pqhe~hSUDidjNZC2T%eRLJZbbH zJ%mdAj;KwuTA>8IYxUsOd#bB-=`dn;cfqukl@;lzW5X^v0?Bx}(W0L#6?ie!uau`D zkmi&{+4n(k^Vs+$eve82%TE6{yU@^V-4geko`c5T6=?S6=4P6Z$E^FbU3#ZsSl`vR zK(wyY;EX7u^ z0EsMgboBN0bw>vgx6P4aok~;`tOq&YH(Z(G<&G<<(G?4nhCLKh_)40Z9#`LoaJZ@o zS+7^%;u5cym^D;Y@dyfft^P<7OtYV?u!xV3=S%5psxB`tudL)2X_~7pto;IkBJ>)5 zs~n`w%qqfk?e+$9N=iy}OZXTWWpO@$g{$A}GkM|3L)KSe(fh;FMNMt5ycFfy2{tln z5Ilu;yWDrv*DGRMf-rv`Kh)X|>$CK}*!iketo>&=&!bGz&TWO~yGR2W7GG`DfeU3jYs;#FmVF#qRLSK z8=|=;0)E21k!HW z=lPckfy6e}PW4>u)h#Ai+oH70_e{L1qA9)y-@}O+F(qOqZ^xrqBWOz1OG=c3`IM`) z-M4!ijx|TB>X)AS#@ioBR=RvY`BT@~f{D(yHM)z|OSRsO^B^;X`GNEPa@%ysr>qT} zO;YeE)PcHlUs_o_-10pa8mqYMs*jAK;h4uX(C*Xs1!opImL7DW7@BkGIUKNqce;vC z95LQuk6=6){xBj_-rlB*JJFvW%)GDqAs5|dYc)zk;WHU|Ji}@!nXgQK2Af1eA@H{Y zTX+N?lSN*;sJH2t@G0QL1!RucAX_E4p{*``t7Hv1O#@qqI7e?_wd}*nH;3-mvi%cH z-VF`tPJ=6|DR5$mxZd7tLfMMR>oFqMDE zQA3+EF$jhEH4;T>vri{1iV3sE-5y{l^z~g=E0RmWDp-2Cx}B90KPZwXq+D$QEBU%i z{;j{h&o&pdUj2a6h6G}q8O?(;>Y?mOQ=s`-Ywbv($Z>`Ib1{K>FPHX%&X|j9ByOF9 z)MpFQ3e|c3{+STJBlVRC{TKAWD+|6{>0>>U%d_v_Hew_Y9N20-NKV?o#=|XgP9S%r zC?|MF*stIpy~dk9E}8YSFX@UoPj&nkVxU9!4)BN6*3?kE$T+nZ^x(moYZZ;}X8gbk zAM5x@H8%ULL#5(HX?kv!8h^m|vlpr=SCQTNS?Zh46<+&jn%#pjnA+qoGG42Fkx1iX z5p;fcffFc^7<&XB0M@CxddvIzdk_*-S}c(d4q=5QDcG3mb6+QBl%CK^;^2Df@P-^r zM8GjImFK>G#Kz36v0s=r9ohUDAJ;Nw$BA~@Im5qqQ+vVKT3`_~zD6@aS3{0lhrL%r zBHv^5qT~+b;Uh#4GX>j1uS;>0c#~ihYC3$P5^ubh)XSab-QGt0t962A;o!oY;6Mgl z_PEBjDe~1H*MtMiAzgD~V>#y+OorF!U4mm!DxT`<SbR+NSA4e3qQG&!9V#=5Tymj4F0(2wJ2T(9|ki)SOlVb zv1BckrrX@4Qr63}S}m(X>Y$#4JW{u$grf6EfB-=Ve(MOz`S(^pl1Oq6ZCNWSV+2Yh zSPU`>9%l>}C&|OOaJxmK4!XGpr<5stWx^{&#Pfwynr(S3wWH0w5X8vDhM?Nc&mZVqf}1(3IUnw3{{9_o}|xg<329shc8n~9*p0E7*9A&PELNh$4)Ej%ukU$ zaUv1l_(YDhL~B_qCtFI__Hcho~GJwPt6b%^P-Rs=*GDY z7&^(prlCY?^u~-JJ>mE277SfH7$C8`|2V6r7I`fpswz$~N zr4Lexj&uptuOubpY6Mp$ar@_~Z0#H$BPv?l+>9jBz_m|Y&mTn~+lkfjV|bV&)lbKS zQb8Eq$03}h{HlSqgPZtz#IEqg?Uk%mJP!%St>b9|7-Z;Q$N9V@XEN7rlVVp2*Xujz zSxvZHtZ3=x8rui^!26XoNu->xsuV1a?1?m57GDsXfYW1d>f^vWSoQQl52Rp^B1HMkf)*Y`=th}Dfzw3b-dNzYu6f&HT<#IcG1yD} zS$QVfuZKmTs(Zmxzg3(U>)UEaVd`opPlH76K*Fs+lNGh3VQ4mIp>*n9ZlXSvNXjC% zJ^NRJ9|Tb#Bm+N(IDQd&m8aL+5|Gjs1m*BG{vK|xT?=m3-sjR&0pL>yH!T*jPXx;K z>;Vn*0-q$B3;Fv)23!8Lsj%DX4f2aL8 zV&_B#-P_LM-_a$L%GZsG!;KNf;`V?speJgSw{we!Bt^S<-?@cfTXQVOw^Q9E9tZ1Nh`-RuEfne_l{INgzBK^=5 z0{I9B-7%$LYt9VifbIt)DF+Nsxw+6l3o-6Kk;WMxi@=T9HHos@S(9TnbP+7)xDWXT z3rq;YEu9NsN^Yfr;+txfn?xN&1cUeg=^7R*7EM^Cplo5LHHw;Dq>T8_{HJr|qIPV! z8tN@(wi8jM z$Wh#w>^9zHx<5i`L|LeSvnSA0-s_r~qA^y0lik?r!j zr#HZK|DEt|V+AC`!c=`7rj(~;RTW2sDD&;U3u$Rxah652IZ+H8RItb++T5cplHmN2 z7vCQUDB_@|wqRs=y@Tbfu5W1(d zSUJHF@HkhwV5A~q+d@evVTMs6gY?C~15d-EQ7?fgT3OAa>hYw>Nnvh;A-xAbg-!KT znudNN^{bgM{ltV8OD?T>-MbJ4ITeAa240Yg~o1;GCW5oi=dU=ADWo&f9NBS zvbI$|X$wA`NOxb%;KxHGK1N{8v}tj%-+d${XbLB2N+`3#;$pz$z|FD4jU`tSe0{M! z%*gNTDel#2r&zj(x4VbO$?i-8IXQVEiw>9nwNJy$?Ck9IZo{7F;m;Rj5p>kl-^{r{ zI9!opfk7cq%?|0bttb>)A3kkPW=!@OI0hTuFb)N+MR zwfOssi+=~v{#t*U_u=}Ws2-zmyA*p=grOn~L_UP0d-FYaAPQb@yi7;jCWZZDEzZEj zSy@>i7c5XrL(mqMmMRvie^zHY5p{EO18MzudUxWx=-IlQ26@F){+Q(C9zXY}%tpFW zK47+bN!UiW#c%hXB-ndq6rE3LX{%~#&d<(tSco)VRqMJ5rg;aCjEt*$}Mv2MJQ++?s_^2w_w_CVL>`HdvS4bYHF&n zvC&XT0cQ~LRGx_4&=w@br;A~R!Pw;ySz3o6F*b^H#`dn7o|gaDhGV=Zi~Lxw&BEUJ zJ7BGBckEu8VyEuoN0h>E{w%g%?6u6f7zT?QFFlo1aTT+jWUf!i$S~5<(#oJ8yl+KI zUuuReXM8(BjOa7?W>MA5>YAFC78Xtv#JIQsU8Q(*f7*sGWqNAL$M(UxlAfNPt1Ay~ zdq+o2Rn?nGm)S;7kg#rB4HVErX^6;GsZ<%Nz{p#%Up^oOyPV)dLQr|_S1zxjv~;&M5Yuy3LsUHeaCMKEwRx!ArJ)}kdg7(nD7WtJSrI8(1EffJ)vZx zJKGFb8t)%^!%9VOv`M%-#eG67pEHOaFfTA|W-%&c_jt|m9ttF%rHUta zlvfq~XT7M{gne^v zqrjI;>9fo*sZIPlIZ7__qNR@@klKZf5Kdse`YdBDlClFddbv)Y8|*z+AnLq!QJ?$n zlq!`&s_*??NKV;!^T*+Rx2Z3NLfXZw#GyB{)=cBCB-VahYk01RaRB!K@xsl{&Q``W z>$3kUkASIsPv&(Is8&q~;Wr)N>w?kZm#Hufnd!TgnAdby2xmTtZpuczm%nOxqgyzl zG7zpR;sl~cCbvNq%;_ol`i8Ad@|MJ9dwsIov7f=up$DK4Jw3gkpl;D<1!8DuXf4Cv zP!nU*g0#5Jr2{px^w(Gj$ho%nC<)URbD~6TI7rY45+xTr`#`%xK=QZLwNxnIZ@|xe z^?m8y&4%+NpWW1Yq$vo0rOZrBOvJ@e*r1Sa>iO#qXJ#Z)0JT8|VeLLGnCa>1fy>B5 zt=@Ipu9>0Np%Yc6&y|+9dJWE_CG&h?xXq=?U>PdfS&HODkLxnW-hAT@)hv1mY?!QU z61P=LQR!Rc0+tk@Lhyc_#tLvNTlyIRD$Xu0Ivro^ruj67wrcv)<9~C# z=2u7afbT#ts~ms-*fSzLt;gQ?Q%T9w?2jKw^wl753m?cL;Vxp#gH+|8{|FXD`%d>2<*yFUdKh2f z8oHak;4HlWw4QMV*gy#r45;N33`s1r9b}HQNi3%2gT7tV+5eFXdENnrzJ`oE@(~*# z9u>S~$U5-!`VcOmkymTlAwDbDFJTov)$HHPZz$FXp2}`Iq%OJT$RKun{=9~@If)3o zV>xL|HcB$M%V$D}1OO7XT^KG8hDD7{tszj9D`=+$)ntmO=A6R?>bIEbKb+m)VpQc}|Q zLYhURZ2Gl0ARC6*%aGAknsr8MXlg#%)uzRQKz?G5rIXyXsrI@$KLSAG=;$a2A!-;x z2ShKnL-6SV80i9>A-33MG#pApGhU*%wzlT6JyCvjapFzc>~ppcFvpJy`QU;t&CP~+ zsxxlm27mtivFcBiRZ_ZHqPkh1J;+b72cWp1=l*i_+Kti8mVcUvfT}{pL)yZ5` zSePET5p!8%>%rxo-${em%7eM2S2+%2zd?@^K?qxkXI=Z=s|QJW)hW_)aH_35j!g9Bmz^TQ3Xo3nxI>+5H~9AA{BHPqMFILytCjs}K&GocH3!!9rVPW^cKonuRsBb+0+Ux2B7#QI2S>KbHiVCjE$zP+RE3?6HRW&uG z3{ktvNx%-|3~vOyf1i_+bBokh>w@^N33bQK5Bj;RERnVl0KZ&Zc*KBbFU170#B)S0 zz+wwPxb^PcJJ8+qlwb1dudAo9$oW2vZf0gu4?JZ65mURViI|6n$Hm1((Wp(s%oVjqgOkXeplxP z4ensl?ItVQD}UKk+f?fwS85jR?C#b~?|@Lb>4ky8jQ{nT|M|5k4_O58Mzjx#%SwQvjEr*8D6quEWn~Ty4%k>&Sm@{P(~6Lh$T2>p!#TGkhxQ!A#YR0V-m_@ykm<9YutNO;=dR zYiW&x7)}XRpp*f4h>Jc4KQ&!l!OX;%q$JO^G!IR6b^TgLae{WW0>!KS#1y?5x#igQ_w}@hyDhQSrOEn8P3Jh#;4)zw!qh z%gHa70i)}EVk39I<4G%j@b0v24NBldy&E&G$iWZp+Vg*aP&E#WdU`tH5=|kHIf&!f z*DeGZBALMQ3c|fTAGw5xjlJc^hKBZMz4x*tfW`PgZT;~#3sG;1L$fSEJ@I3r(x`9# zP~E)y3?>0Z`~($PivNXZ0mHj+qXf2En7h-yy-m!{Kt_c!Qbaq$x>}_EqUdz`ufiB-MO+Q=7&DNEkeIzhr|48s|Kg>CM)k?X0nhYMBHS=JZGOT(vS{zQ z_uX5N13)KcyW!%MmTXj?VlAApO`=20lTM$fS@!9NV(d=hgLZ_2G(f(1<+&yXz+a0$ zEOn(3JHmEp#j9CfXkys<+}#A0sRI=eRNkih=s%!S>RjpA0eN}Q-iJcKkM&ztdd`W< zgi=HI5f2?H8zLU3DX#TSqd?wvV*syJR8&L*egFOE9xpm(=GNLnk%ovYur8sWOG?^# z??FB$gB@Ml+A0Cnt#{pk`O`3K7E@-fFG0 z*(UFko#{@ijzXfo=!?CqXp2RDXCHqRLA^?_C*zs5BD<~f0AUC6F`}@0T2z1478W*A zq(7DwbGYC7b4h~KRqv~PU+?WtSVY9=E1qIuR@Ml3F2c)NGhnSsalBCmhy@CBXMMX~ zRZQAeS682%ofSu*{QG7-QVX}5myXCjOR&&i?!t=cC3ch2#S=nG6{d|Z)=@`2K%B40 z55`w235Sp{P?zL|@IY9$jAcquX?)b9g;6<=u`W6<@Q@3uf=|uwm-s=5<_W?;9Zx$%4Rc!-jRj{Fkl9JJ7|=6*L%AJu|0Ci+bU3@ zrdN-)t_5p+Ba!_PoNFql?43`e?W_6#=_3NH>T%cA;zv>`+GIT zfi62WHML>4K8&!VvvUsE_-(7(>E;Lm4>1@$5XJ?0*i(A?NMT_P3d|bg)F$Pn&9rPDvPSWNd6-n2Ll%TSJ48m^c`425l$bWfxIW;}~J|F<_d}AegA+I)u@(K$J?dWp1ba(B%8)@;0Z`TL$&*TS!VDNH!BE9qP6CWF8>kTBO?g^P&e zc=1xgP2RzBm6>LCfaL?$YX%q|$UOe-v;RMG2<%;vU=4pp0q}+)5J=W?eM~^R1-!^M zw1WOELLvG{*A`J83{O7whBi+SX~gGfZYG*582NN z6&_c#Btrvo`9%r|a`9yLl)w&*Tf5ca%3C2-pJkw6 zl;#Do$NO9pgeqfO$`B(LP=FcSBP`997p0^pB5ya%fwD_-GQX3Lz`5dW{o20lm?Z^9 zPf1BZiYc)65-ovqLahHp#LUrUMGO3vxT6^Q5DzGxm}nD0XrF7sh36ng-_$Z^ga0VR#3zUeDN~g zf1xM>v?mkjX`y3S0e(zTrs>Znyj$T@DR&}VrspLL3*e*{AP0!4Lf;>kq3flV67^c^ zDT`Jh8oKB$T=--OZjC96q~+ocg6rQSq;ax$*JTvJ7<~xguy|tqk@nv*pC(I33{1?6 znLR&XL*NV?9KStUF4A;MEK@A|Q_n`!l+NDxfn;zxE%#Qu^U3a?Owt^e6b3Uj&?{R6 zdJcJnIR^>6%bbgskB{!@)AHN2JTEV=S=yL>EjvJE5;#}B*&?3@ZIb^d>Fwr+_$YG}9l5zFv~>%zjqeQZhvMMWai zcW_|Ib>v?>fBv?mG#HN3`-^PXH0)y-0oE>S}YLnwzzH}+D)yktwBehWKT`$0xJyUL(9v{z-!1N zOifLJ)$Fr$dGP`XFk%7>Nn2Z6VCES@fzL5;ajCqp6~Pz#gsRR5`8EPJONDWmQHmEm z7VthWb#Pt!EH|O6j*bq<{+*q<$bV*z+U&RsO{*&_&pX#u>6RcDsIxmdq}=(DtA6tm zca{GRaB?y|t2hoAD==+!rtKI|t|W!x#^PcYMn*Vzuz(Dp`d2``^;~o*y2p4OC`W=rlVnv>t8@Z*6Yc^69Cmsp;sDPLB)? zIfMK(g8Z2r0-&W--4&OkT1F)x%^A#=BqSsRLD4RHs;(>y?AVHbAd%QWq$JEIQf53vslw7qTjH^B*2b;p79^vmt&g69 z-HeZR=6Q4bt{=t|#sD~c>xQG>>=~4e<+<;isVGbIRDGaBm`c$42O*yVd$+1Zs1ER(6)!={|+!J21&$9IeY6vl?U6n01CYIPMJmBT#@m6LuCz zdLZ4i(qkz)p=5t6N_Zm0elj=l?Z43{&_Ez>RBQF`UQ>1ljbSf7hy8K#cQ>M1FWMB6 zvt!9u?1@f)>=MRpjATS5GfO~`foQeO*r)Wx6 zT2B^jjZp?7a)E*_r&M73nGJ!*JPgP+`3!J?oI!qyM}v%VRc)41O#t;9A$X6lYhvLC>0CBj+3Dhl+Mx?LlroldQ_q)??5ir`zC5}xnA3pDDUV&Es zet-b?_uO|Fgl$8p#kCmNaH+6 z$y6|x-XRwp1=D=(Rd2&_8|`fVG{s=#;2Ka^@Q`7#f!-h9pTS>}^e4TGTc=;D0v{T_ z1fTwiO^da(D)(C$H!vs&CY0W00uVyWr}w9V~<}k@$rG@ z_aSe$z``~}4|om(xfwf@f*S9O18(L)!2B*tw1wvzrGCU+6#{uVIk1+tP;MDT$ar9`NnV^X=O!u*7QFelc}mCh)*uu=S&JKx=>?;@h`x>+7$`#%_~d2pSf* zL?kf)SLL65$jF$3caY5=IJX# z;G)dgxY}QO9?Sm-e+s=;z)JWGhS&(?iXJePI8m{euttUm7&*k7;st@^#*e4aMFRv& zFHKA`2=Zy)U$oUy%Oa2qwe{w4FQCv6IIr-R0{Woqx5#zazrc@MR?7ZsZw1SLAverf zC$Qs7(Ji5rL;mvt*@sF>;heGvTfP*QUIM~m-GuM=H@)_ZEBKEyfMtkW0%Fp6-8)kB zAWB!T*ZyJ?KDpyAi(p{V1_)1qW)Byxw5=0U65M=|S5DF^9AE`M_;eEPKifBU&Hjsy zdn4Do`}+F2yF(%)$84&LbE~Qj&(<;$;{yPS#QaD92V(0?8kVb@aBEoB32p_b@4s_o z*1ib;A330Jw(oPE7meCae0g$auK#x}Dx3CvshqpDA>WyKpL%Cj`_#(=b zgG94b-DOD{rwP>5(9GFP9uvGzEE`Jgv>&+{w|7t3bJ$YOj*E{6WRHtpjV&k1!-Lhn-hlzCK%k0h zm3hYTri>Ftdc_bxU0bQ~&+UU%IAr|VR+g7>2CuI!=+DU~zdBIi0-iZSfi14?$z1;@QoryD|Yw7S`dH3JO1ObA(tyw*!U8>vs58u>VprOMJ zi{SaRXOe?&0ec|aa+P;8Xv4cb?tiwUcCde*7FS$Yw^GL5d_GQW1kmp$K9Pe%GhfR6 zo6Fwe-Pn^g^})K9=F`oFy*<+D&s{%c{4a@58vL(zxXDGnUT-EwF~%d0UuL#!-uav2 zXfN_BCRp^}3h>OHa>ZQuvG!_t|BZ+gRS>!2KG@`G3^XOxB_dY+EKm&0(Jj}h1(7qV z4DU&s>X+~Vg|Y4MZxH_zm!}$|iA#&wlLLY!W0qfq(%!(yAW{J3?a&@@JpAidz3ARF zJGWRqvp+!{cyV?tCa5B%F4>;9Va+&4CCceAn|c{AT>Sf;xBqc>bJ^6iP{?{mpr?CE z)BJLhDE2@SH}mUbtn%`~DBId#c=Pq@&%EAh*x>}tNuhdA-0}yj>y5b?AqSt!?^C*F zwzjU0%JX8gZ_4^7e$Ex0ug%$>BQuQL%TSJg3`aFJUb%(k?G>_&*c{zGnIWVgkb(J6 zpXIlkrX?mm#+ko4x_)6Be7I3a`b@#!|HP2}2nUbCb@Q-pBPb4&SUzN3eeg_&l-tH8 z9OjBtKu)?4Pui=*EO?YO0q-SOaX5QF;|tS}4Ud@7jar1%OPG>*vD3ly0nTd>sRGO1G2!8*lTdg5=%PV7@bJ}>ZZpQh&r;|Y-L^t`s zP}O9==^wH?Iv8$mhpiA3F{1GYzF6qy4x}Ft2GidpMc7!egcZ3|W9v6k$-(6_b)RbY z%6v}?1?5`la?y|dE{$TkU`krNin2BgHry)la<%lD3k`rEVb>=&CrX+rtOAS+rPUsn zS4SS0is@%Z37s>t$Oy~>(V2_*M30z{BwA{(g@NC5zX+Q%x9SyD(Yz( zT2xQMKUHiFZ3@{xg{lxRGqLC8(Z$DWS@YP4rInT!w)c{*{^;j-*)>&DlUH!fy-0TV zaNDYyvJY!lD%jcFq|2_ISpU39me5>P?cw83o3TTIho`S$fL!#eUE_{dwceq(ULS5f z6Ufl-wr&=3bv=m1rm=>6wBg7%(Kr5T!}r*b-S)%xFTZ-F>3d`}a0e0-G%N?27fwTB zFBzKqYmOr`zrDS#0XEu2OAGdf1otUjo2T{fz4oW|+M5SE-)ZED2I#Zv>LxoCQxE;r zb#YMLds*YK4550nS*5#R>XwAf~`Jd0E%+dL=m?l%inm=9hiaX(yRk303#4a_utDO6IjLsmUCp!AH{Mao3%F4sqElPuf? zlN3JDD$il$g9lDJl@7)$YyF7|&vJkCqSq&DAyN18SWZ2SrpaigAzl5ClKuPp}yt`}kO1-qXsAO3N9?8DxnjGkNg3 zfw3{9VetIoOj25s$8(44Q)y{PM1&!~*h$ymR`H!=5~>2#LO25>XK5eJ(HU458Kw0l z<%N=mQ##RU@qbpQsmcpv{ck#n3&_1JCxHqVBM^sFpwB>nx4I*@?agtx?Aw;PWR0)o z`;n3TA5OKQi~PII-eZrd>Lb(m&tmlw%QJ{sQ@wZfIYpx(YFHgS-%#Bz+X{oJ^b?af zksGcFTI!XpU_d->wjY6dw5aLBw!bW*|B^_}#sPba@A5*1hld++sxT4_3PP8Obl71> z3YBXzs8=}&@D#{8kG39`@Mx+|d7Q#~5kyYByx}@EKc6}A@e^VQ;{?*t8f!H)tkzK9 z(9|*|Xofs*&;lGNBkF>K(41>xhJg1U(Aw)ib#}AZN*U?rL(KkGVnS)9$H$T2CXtbf z(0bQ8HYoH*QvplwUgOChv#43C$|(!P+|9h2<~6WlvljmL}9| zHOWfqygqzqUtW(-?EII}&FY1xy-rPS{+PC^E@$lt@Z#*0*Jr)cMj5rdK{pqGBUGaW zt^*PT%Tw)3HCbmj``wOcKfr8^v;@F5{ZA1TjyGUK4D=>leGk4s^QhI#@jP6}_*(6@ z-C7w2;lKqYx$Au=%^~lDBRw-xz6%xg9gmlkWw)XjXFvZpQ;2NKAK&snNSO<7>sQk$ z)5((_*F z?D}*`TwGkOQNqV)%=75+*L+&~@X@VH*EubJ-#?>!QK=+7dL*H^y8F|;;IkpOkm5oT zj}Iuqv#ca_1Hmp(b3f_KvC8m0{*lBDau9x(RRwA3&TPrB9^Px z0!p^}eXsq`3;d_5Uuyvx8&EeMpr8rxy%9Hp4}PC`n4f&qcG{=yDSZZDS5tr@T4cbP04ewI`}cRT zDFxkyTMGP2BSs4%qC|d28SHs@=uMQhoQ>l9pC0tW;^IhJyhcmd3V__R<*Yy0a15zm zx0uicx8D8w`@9qzNCk0cs>~ODB%#R?l<-}UH_Q@04S^@HB!4ybv$rZJ%-&a3R)*;5 zc-q*`bb3%F_$-y}G&avaiDZ zbh%_+ERc^3!0@R7u<+t!Z?4K3KxLB|H&`lHdojO^&7e)BAb0 zO6hCQglp}mkH>{xt^$MN=20^BXG-tx=bbOgSNnPimn-d$vl-Z~23sXD*C;QqwKMi! zua`rN?*N50zlN@^4ObFapg_d2<;ZXI`t|$w@9%rz#eymeZJLpg+~~Q2WVij!%WWOmRIZtksf0p=-D2KM}iNz`zz3 z{*XSqxR|_I2RdgzWk)g_rH5a~$ok3H-lF(1GkI$Z6^p;^)RC7F{6zrJo zPpTxgwCHziDMLzQ20bN$C{P3C{PU8rg|@l!V46?0tPDS4ZLxO$lxH8r$l}7HH@b zSkjHuUjJa{?~?<{;TJDnd@8oO-z1uwgIvC%ZJL#^>HK>jLiZq^vaJDS(f~N25PtL1oNMDqYtIF+Bq1Robg|aijek7m<|-GyA1M}8 z<_wSg8tTD_dd%KvclMH;%0C)j-%vkyHIILCJzg3xld(jvc(oYgU0KPsNuDfvy&QJ! zet=h`Bx%Lg29vIz{!q*}P4C_EtIFv;$U*p19U9M2n2pY2Q}FQ@q0oGbzJ89BhDSag zAFv9jvysvVz=L98^ciFT}SN)wQvn~Y+x#|p$sJc(~1uyjX8|w0o*8j9dM2W3C*MZW9R|9KTO=Z`n zo}NY!4kr`qZP^AMcU#+SfV}+~l4n1vbJ5k+1>6;&rnoY3mdvfU-?15p)H3887zT05 zoga?m=AI6;@N*2#VP3a_?=T3TW>`=E7|KKT5|j^7qGyBV zjM~`i4sjQb13yH}o{*&oF<#E}Hf7Rna4(?+Od5V+-KnYUWYbA;yg4Wh{yKMsP8?IN zYiCov8DjK{9lf=EvEn+v{0@YK2oO~zU=v)Q(*e4ScVQODrKWqQZ{GEKm4I|RL8@p8 z0?FrhRRW;b|4Nh?PUCE}^|TAw48QY@KOg&n)Kf^f9*}z8`xn>2Y9BI!l7Gin#!+9N zXA{NvSF14A(w$yx^E_&WC?W*S>1~0t?hjLo9BtF()Wx{6Cm%1PIU(Wx;2s}YdRfde zKN%lYJQP)4n*}6GAW0LC(5+%rYwk%e*EDH7S}Zmf+TR)>vmgJd$kY%0zb!IFp?hrp z5Q2a2AAym1UM9f2C;Ys@?l8nzC<-+1!fTqGc~d;bMe@7Mpca+)MGBI0TGlrBs2Lu6(PA6n5U-x1SYgR*4kp2+1DRHHg{_>Lm?fkY~0)~nVny*SO0HHmn?Y7 zFjH{wkz({%V2*u!6v`x22ud_l%9{smcUz4}VB&FqC@eT)g(CWmes>eJTUOf5)bq0c z{o&)&%o+T$55$mAgxqGH&V%$}L4yORESC<@IGsGn>9(vK1$xc3wMxDqm1eeA4j;{v z^>o2L{X>kVf@2ZzzeV2^t7fm8Jao%EEDiOY8Z(GgIuyr~Y}P!8>p+nc z399(>TdG7G#0mevv+EAJcb@~X}kZcAF3fu?TEa-Oz z4lwSq0c}dS$ghYFi2S380o(9^wc>8MJk_J$QRWS??vG6x!1c0-H8uEp0oa3s!MP?? z0EA8KUAeB_leV1`VDXsbmu`vueQ-v&fwTiKgqd%J;w8a)Z%``0Y5KN;7Wj;=eA6Rginsi(O{b*LwkN@pkmMk^fa*qG3;0moava zDXs|^@t0u4C%{*3NW6G4(*hKwrKN0uD+io^jqqxrS^=Q^f88oTH%Az2!ta5U3G@h5 zlb8W&y`)5|U=jP#qvL~vN^KS(=e4zFIIdiK0)(nfa=?N~p>zOoSc-kUHRw8D$_@Z} zpFlw}0b*R>jvG&AyfZx+CxR%!xn9v)k+f?@61 z!y6#z6UKfBzVSf=PH=HcbVRe{0UzQ4aeUTOejp_f5HL12vE{vWKpWn7i*+U|>mg(4v!ArcbOf^;Yh zKtM!7x{;FZ4n?{I1XM~uN*bk8QgVQFcgLVR);WCUoa>$QopbGX@3qI5=O+)0xW{#0 zah%8TKg}x7PLBquqM<~Cc;`d`SC<3aR$YCgqXJ(}^i|eucueEx3ssqxVC0D17%CQ5 z%k51&G-0xoxj3lR_(d^O_S2u&5MUbuBkjE_D+gDK-lot6tQmiHj0bmJJQ=d#-FiYo zB(?uMWXkfiZ^H=W0e_k7Vm}Axw&eNx3VcdjetVH9xMu%-j<_F2yE8b9BFUaHAbwsc6 z&kYk|AP^*(LR`&oH&g!OdsCroE$CkSK<%G$$#mmcT6eSR z6=jn*up6es7tBdn)VpHOSyVmWLE2Ory|z8Z+PVCgz>lm$jv!`SJhrq#11UPFe;di8@q~J26 z^kyAlF8au25wDnOW@Kc^P1@Yt47MPCNHBO|3zk60K+U`q0-IpwoSB~|=dnga>BD54 zLUS3vR-5%0qM~z7rw}%ncRB?}%fZq3S(Ve)T)(DEyD8^%9TrB!?YpIykOwR*p+P~%i!vU>w{E>qQE6_0$c3zmN=E-Oy0Emr?^vk1 zD%fIPT)kd<9pF8n#UN}~yDxg(#33Nqh3U3>`?nNSiy#9BX-)7&>AZSH-AYu!m6ERT zO^}ZTHhVCeU8>adfGbvgvT6aBVP`~DL*oRts_mcHeNUEnRBikyYHMrl*G3M&KLgpq zOo)6&&58yRXq4Id>thjhLsj^8xX;F~EjA%kF)z!&$=IUp+Ccs^Bt=1K(Na|<#`)B4 zAQ8^X%e%C^JeV8L)tZ`0qnO_NI+w)lF~#fGuOasYvtH|31}rAZdD=h2sKf^{a)#r_ z4Hdfv2PF`U?*~nH+uR3Sthh<5`oE$mAW)!`tLZi!%vBKW2KImb)+jQ5$M>#8Jy&7Z z4J!c4fEN}5|GyN1ci5dgSq20i($GLO_e);hI(#h&To#%MF1uX6w3UTR#BVaI{zxw< z2;XtOh2z3%t?Nebpwt6*-YHy1mtAs+@OPMCYC%Vh2-hUeL$K5pfK{d-je-5)L)bR5Xq0i7^f6NEvNJsU5NNkK(+v59 z=&M(+zP(3%|Nh|WE~sFlVq!k;-gRD-@PuOaxxW>&TQ$0oNQ*DD_@ZF~JrjYa@$c|2 z{%qa8D(F+PMtvhlEO|qaw4l6vxK*Me_LFReLO+?=gupu#rd1_4_Jtr8N~pOO?M0$Y zd*v<21gDL3jtSYnT!bn^DSj0{@#~KZtUbE9#&hQ=aJE&Quz$2^Yv$xqZQFAURu!Fv zKF374jDfH35eT7A(ui#poEv7Uy53-3r5ku58AY(|l%V&WrQGm|ee{tv)gIeB6697^ zaf5(EAqoXkVBX@_^s`1Vz$!l~xcXIKJdi~uN0aL!gJJKiI}1OuJeQ21Qi1U((dhy zj$I?0m83`tGQ-F4^gj>TPdyXSmj7I1AAU@jE%xCm4lpm!>Jd={HEdv;3!cgTgv^8M zmz=$uG=X|&Jl{|g+|QG{u-06dl7f(QfG@ZXzJ*3b%hYu3_RpmV>Q)44ewPCPLh5~{ z1_gPa?2wI-du|H^DEH4jNPn-^hN$rLmKx%iv$0d%GD2qPIA*aDK2Qc3s+0N!11j)=EtrHQg%67*2k~`y zT)VcOf7!Dc!S;bZ;HUUs0Zj0MSGKga{5^rW87by%()@7a4KMg;dDY|<6*)WAz8K=? z=d2DLk>iwZGL)p>q7VzE6A4Y~eJu|QfSeo{0>1-7Ewh*RGdX9U?86VAGPLOiw#x8~ zoaH^wP5vp!2Oa(Vj^n2P|6GvwKRjYba{AkubqHK4V8pf^l|s_(hHmNWxr~>K`lc(* zQ?%qEpoY$%l*2)U1toC^eb+9yh7W%KvY*WP{AqYS&CO379!&sx8AzVH;O_bM(et2f zk);S4Npo}NR-z)a;YLYkx9hL;HY;7(X87%sPpc8m3BzGz9nP~yf)x!xbal5=va(i6 z=i?!L6!=pc)(=g0_ftC8@JmmK7BMkVk9_FjFFvuH58F5Kr;DJu=HnV#5*tg3PU8!G z)BX0(wfdWh5m#u)j}z}$nWnUW`{dOAy=q&1eB^@fO8)Q{2_>=9z2XZF`ncy2cXH?; z>w&<>!}B`3B;Wn`r~z(7bUx-J3*k}!t#LV4c-M@JJPF3g;qV(X;SV}NwV1i;dly(4 z8+WBvquN75RI`SajvcpBeb11nQ{yrU{n)c{aj6T>1YsABdqhb|Kyp8#VfZ6v2z7)g zBj@igRppLiIJ(y8%U>*P3H_0_v5AA!_pB zc#TWhZe^%UbbWqL{JDDh;-@t7I<4EDIAGpk%)9!wEEkxG-Nr8?s zNZh<106y!|2hoAoC?ek~Tw{KKfPah<;^=cE2mR;AAf z&k)8Mc%Mh+Y85vkWzrNgnKc=YoX;pIKSOC8hmDESRTYf1v!BaAyXqe2NlvCx8YyBF zWTv5~A2VI!b*P$wlBQ|*Ki34#@EOpumd_7-Z((ltsh-K?gOfP>X+7*?z5XNE$cIv% z%_+$oPa;|HWaV^^mtGc^#WKgVpU&}-t1_N+IObb7FoofC>*^(w4_ad5R8}ot@U44- z;9^qYwn=@0E1KDU+L*H^DnXfaKX8ueW5V#D@wfB}e0==%)3r(j2NR?1$!Mm&3c>xw z9j-Cd(psYyt)~h4n6yIj?Vl5`ta5)PUZ-x6V~c#)xTF6{NR{7k5eN;7Q@Tl;*8}mv zFeY@^RU7_0;B74>rSqo0Z%1t9K+lLU0?Ku(xoeb3FN;}_?VsB1OQO04){B+K)xR$l z*~|w*&AGHyMEETqU;D7uXv5Yq)Fd=tC{s)RuBb4Db5}H>!>ukT!6|8~j1CNp%o~T2 z3GsNW#ai5Sl|gjhpl`T8i}>1=j#A%>s5T#6wB(-BO-7Z^cPQDfETP)hM)w{;#BN)U z&%SDwImkaGDA<4GaMJ`~+gi|Yop6SX*OmVvrRyA4-PuW9U;*QJkt_Xh#Qebx?404E zlbz=gJe)MIM>R6-D|QJ^dC#dsrK+UU24xlSdyp8?yz?|`Em_1O)$9~4`#}$dFUAWw zEv>|vD5~eMm688yLki8FR%xos-Nj)GzJH@3Wj1Sl`NVha=wRqH+~?HR_9L@8<9$kr z@SvSwio=Phs3K7Ri_DKM59|D;{wH`?eL>bCV=MEZ{KjakTyoE0PdovqYo+azc(Zk;o)yOv9|$Z+2C-(eOjq;foDdW0l$I(6POQvyDqfR<)>*j+_y~L=BFnQ%6PMFYI{avs{vC%BItjbR zMyRBu&M5|~j&^lPAe`Nvis~1-BtX1(;{BJ@RDyA>$hyg2aqKR0&n^I(>+>$uV6Uz3 zp;kC{hS)h2ES^dkXpkVj_8R>l4(>ImOQ1n#J)lZI_Ri;|;~m{Jd&{~j}B z)!`v9XvAfDSfA=H5^A|gA*4KhtPdss7}6AoYl|h?dVBl#J2?|G6;T2l6_lG3HWlYQ-E)J))!Lc#$i`0ubVt5idI-l2m$WBbc z?{VXL_jilqxA)+0Crab1F?@c+H%Ug1+DI>o~*Q6DlMy;g+M!rhWRLkfzY zJ2#{+(N=G`hyNS-oX@^uy=a!p%=P#Q<q0Go3w*#?AS9h_qe&;|Ed)ZPIrNU;m39j@I=)5$lvOM39b5YR*xWar@K`*c!D8R*=+GRB6yqpb^Q(j(PIjU+HiOj92h@CEhWBt*=!O4oDP@um*_#THV zU5Z`i$k#)rOMJ;y$?=J9-I^f3a|g75jmf42oUocL6I6u&CI7R;7o@zdBdxUxV2nbY z4w9kg*|Yr-PDLVuR4wu@4X`TBLl{b&^e z{IT;+Z3bIv7L~I=Ay|bJq%0Jikgct1aCn4^=CRez6&)Q-&hKamKqOP+9E4>a~-VC9Kfm(W0zxhY!nt3hn-?+}R1X6N)t) z%7z+GL$nrE5>pKM4r4+j&-9+h(9qb}9a8-LEtfU)IumWO)OTu|QnQsrjnfso(q@)h z@f@KU)mY`Um_(>GG-#zinU3L6O=9reV=>YLh_=Eb;H;_K=)0_(L##~-18o~!L@O;V zO-gzT5=;PiVBp+mX_+@_j@C>ej;^5*m!O5TJpqBJfDt|&%u*1-L2kjR6OE#EQUC=8 zs8n$J1Hu4IEWC$38S(&*9aRi_|Ne!70yqO8boA^Q7IVujaDSC5y&Kv)IE9tyva`zg_jZOC?s)VeQ>hv-sVn%bi zjbT0aOFxur&nb4mi^{|#ithZ4(f{+Vp~K$wb$&2mgFv%Zb!46*=d^liUoHSqA^;=* z;S!XzR+8RteTdwG!DeJCq^{eAM54mP?@~~POoNK!*UHwDNw1-Cr68qHIv4wH{pG2l zg5;*_sOmk#w7`z>l6$BlDq7{l=#>2Oa`(=z3EMKwqo#5$77ct-QU$H?{e$T7GIeG~ zr5mg_DU3bOUB|}O0;4y;CBSV1Qtx7^|1@{7nEcC^I|*k83035?kVyit!Jw&q^uX#a zDAARLg|~YJ8Tr#5UhDPESuiE!XDGhaE+5EKvq9(RDtfMp)?woS>-8QIx!0xlry zJ(rf&zYn2Ys8s_Hi-xALu`y}$ay_ggOCtPI4>FlS&TDY5GCTOKM|;hep)Vhgmb?O$ z0~RO;f0UG-4A)n9@fHT93TD=Oo_XqzYD(TkVG`vnExnFt-d@%^gJ}Z%I^TK$w5)#s zJR6AmlDqFGqQrML+quSpGc8CgpAq9 zge5oZjQ|MZB6KvD!)KwzEu{3~ig+kNPY=-%U*E|#LfCaAmG&-R84N;sw&#z%!;d_w z`fSL@qZ^s&v!6cmb6M#+qL!6=aNAVo&)1@3Y|0ocfF%nvAO5Xd>j3Y*q4c5DW?oE8 zYz+d#N&N%wl!-}XX}15G(ti)IK7y;0`t>U$65``EwX{O7!BndRZm4O$*4e|2P!E2y zp&tbW1rX*}xB@X)h_U+oguI^+<2+pK(JD7Sok3kt^shn!m~{*&*1@({g2l3Xjb8L( zj8TAF@t9L!guePyVB zywWl3Hn;^x7?R=WmMvG!juoifPB3>F7Z#6}ZJ!-Pr?DG6M{T`tx?AdSYtKEix9F^9 zQZ#UGa{AoFYBlvY@V?UX+UOu7ok*HWSF(bVz7z6GfgwTZrQJcMMb)y+*_RrO@1-$J zagSbry|`O0VtoT+{rm-rb2Mo%nfQ{IiHCpfE3!}dW>^`THOMtmau11=aeyTaR_;=V zUG-0g?ZtvCOKTnfa1WdA_~usg*e+T#;oSKh9zDKEmDZghmtkL786%B2nZd)3<8jex z-2U<9OO4k!IbWDZK%9N=YAck{)ssMfocFg85r+$$cEgZ;to->YsyBR=$F$4|| z^k*FpcX0XB!A>hXTkj~d+%f*FJvW|?jxn6tcx;5nzTAr`*bQ0sXv2yPCiPn3omLB# zO*owRC6#Q8Uq>4r*N^lx$Go4X*?|~Yz5L;8eQuTDFZY|*ds#jv9L-l(2qSC?*rS;$ zH!^dvAK(XQSfJt~dDtJ_-$+q9wSs4!?5_R%S#5ygW$&Ym=Bss)919|EM-4GQl0w;t zIgb|0DSkfZXOzc>BURN~HP^wPTa*(Ib_k~4-bb3dD}@htVo;7TIWFK`8pIkewA+D= zNLF5Qo$aJ9J&r`U!gwb>+R+WP8#kLT^C~0AYJRwR{f)*(R#>V9e|1={cjmVR*`iRo zkCX8zscM%=h)1hCnmhQ{S9Nx`7L&G2KeeOXkp&RtvLVbQEu34DT#KWTfBJMiucum& znwy!KI6>s&D=1qr=N$vOqZSO?Ja4hD-=oZEU{vG`xG&a0pA?||7`=;sy<;`6$sq5s z(d%H^GGNkNK>7_^#jPouA8CUC2ZH25FEeIzYeRg`iwF2?TP4xmSl6!yhlbiYFmIO@ zspOs!!xe@lDuk55@{E|2)OOAkX}uIq?Zlias)W0tIao5f*7@3Z@~6}*ELIitkv41Z z%{2GlB96I&qBQ?%4k&w2Bd!=D&Hi5Ha*oEQ!N=OyMZw)EvS zrV=2}oDtOB*kd}L)d|f#kLp{*8!;k?AO!G{Pp>oUQ|slWSE1E955pMo$kWldU)i4m zF6Z|FYx>9JlP!ivvb=h?&qRL-1AO;1nY}HC#2+UnYNDbzqu9Vf?6~HXT`O-GJ@(`M ziRh}O=k-&*XoCBJ|NHrzd2*bv*D5~1!HSjt zKz%ji!v56g-ma;mWhJ%5Dp_3PVSJd|S{m*73&+#bx{{I%Rbw9M{VhGH)zcogaJc_> z!+br)Mte0ZH=jMxLA%fB0;)&0{kj(!bJNW?oIM2WD=fh*dTQNGb<;PwBB?BC6Bp-E z@sGO#nk5?>mo=CPo21b~q+Z*JHzYnHs+H22+;IOYT zN)Xs^*vCh%u}7Uj@9!dbV%=#M5_FD609KYpDLos~zmZn-mssv-$B>R|edy?Oyo2Mf zAK0XW55H4SXJysJ)yA6F#8`RD@pRI6ZSZs{C$WO?$*sH26XwV?QOvK%pv3i=JGEL; zh))PvxJ9QRAhkyZfb^uy;A?IZ{Pte{B5BVo@--j~BRB212Z7qo@ZmJV1a{eEe)ZoAy5J-=|sBZ4$%eN*4qh%0Mm#`H~> z4q^wra2gfom3;d2R+G(Gg7m74M=Z!;*~l0|Eb z_2HP0tTx|iuPu!o)&0Ci1+KJi0frt=$2(1(6B~4wYi7W{TYnoL|3h@Np}xKV_;+DX znAJQK(W6U~n_RCSI;t)F6l_0#luI~t62*OeLt{6_YVOoZMEn^hp>)cRuS(k5+Q99c zXn7%}%jmBA{v;4PHD|#JI$CU@g?#+$)P;`!vT%-azAm80_9vcS0htvYxl(3KK9Dew z_nX3rk^O>wH6%22@g-dV=)mlKTm^S%H~Mj9X;eP^3@Rp#s}_%-4`??SF0(Vy{PQq1 z&2s6B`%j(_*7!lwA~@j#x2La>wI$)z53Zokb5VVBQHtcbtqbaI;5P{idH7MBS%+xQ zloQUkGtcXtDRcN;=vxu$GFx7MlCBh2YCTgA;H*a^Caj=<|5^uYgP$dU@{?IknW7-? zJ0*ru6{^3ua=XaqvTm1~tX>xqw|Agj9k5)n^<5o};KJ{3Cg8hzK27mGokVb44tsA0 zirG3&F^cWVTTkLYyqPtBt0&>q5bGRQV10WpUEx7|Q!;?IS)=lH>;IE8gi1gNDgvG? zmR!VoNpuC6n0u5_P%00^3fLx^B=-gP4+g6{nx(`X-D+OEmp@tKlwY4N0*KBUM+o9F z=G)adhv|Qs=FZ4z&r#UqM_Q4p-Hfq&`2~0(+F27c98t<17m-^~QG!A*;)nCj5=f!> z((r7PmIJHy0C%wDb~dnuQ!o(~S_>wbq?7m!RXPGj?wRZ6x&2iBlg9%}Xa}Ega z)$i>5%{JjpC(w=!Z&dG^gcr75{T2eBn7B;873>gxMo@kRmjWy@0a(bB?VVZ}`i-s}T>6)~yG}*)7C%xIAMGRn-cwwhhO+Wg1UNEK?C7ws z7m#4Ip?Kp!@T-8og4VG44P5|)N*_c9?0BLPvYu8@5ZnPK_FXf-&`^g`b;Zm_JUpLZ zEEC4$>6Ac3zi&`hNy(6dc+|TD^4zRI|-sRI3}ne#?J{|&4r zt4d;4R^TweWg2;(6MFv!4i1iUWfgcCl9DJ{Sy_2`Kl|9l!)@bf71G+#A;#ng#)?W? zk^O^%V56)_0hkzSz9gnh9#%YyU|q=+-VX4-1D`|t7zj$sdfn6|gc+1cII91WLH@&` z!thJ_bvM}(nZa5yFin(1CuzuxgM$i(l&gOaymReamRx0Uz$LvYo_jx;T0%GY#>%39 zqR>PqUjW3B7bPPaEzx%a5kS$#{F01{hxJvWBHywKs6sQOy7PWdU$X^92J8CE+6HjO zNJDNsWl{$n6vn{9iH~0ZXA=B0N*{J|OlVj|r30%9U@HDhy2QZ-mQ3f8@c^KWc&>h9;rztok!PWa_^>ZSjJwJiy|T$%I>omIZd_$RB} zk|>UTm%KkXZsE)VcY0<9AubMRMnySQ)x+a0WUJ&8x4rXVG<}e6IjgkID;XA@^h-Jn z;AiFHJZbxY)FQ$1IoGgyyP-86_`a&JW6TF(?#mYpLO||{ebx;?8pF)MWjgTw^XH*V zfT{%ffpHWdwS9#eFYz%h zERl<9U!lh=Z5SE9gYGc0b5qGEsgHaaM%$;m1C*7Z<} zAdv;?^PXL7DHa(2rBsTj*Ek69U|MT=cTL3U&Wa@q8A(Btxf_sX{=jWrzoezU*$spy zfgK;76OSMzx5cwwQ&WnXOM39-Nt+fwDL@arXDOzhe-hq1WmsUE4TjjCE3wwCVbk6PF8HlYj2#4 zXd&TqxPqpvC}P-QrC@M{iqO1_;{K!iRw%>q{emra8KK>@d99!Gz;RK&XS_fHJVr*F z=Uw?{vA|9g)x1VXHU+RIwRR}^W99|D@%yV&2*i~~T3tjF8Sr@X*`1zmb9|tqT1Dkn zOChS=45qcTTyH0k0!AJS8hSWmR`xp#2=XSXMp4u+s6z zr(+PZrlzmmQC>2G-vuBC*&4-MpqxeD?9Uswdv;XqL6P)tgy@~U^VV~1EuY;)Oij0` zNY*F-V*Zyxap~f|kmI<9`>8vB)5&TtS2iaJj`a2G8XkMERiZ>CoKJ%HApEy+a2cZn zywC3WsBO4RJ7l{Kq1P6>gu|QUPCJv zbN^jFck9y;o^jIsc)wH{_wQ0>CgobM}@lJD#P4@7E@BGs~+tHc_zJR}oh;!-=C2-wsIQQ?PM*GJX zFwkX2yX}$exFp*mF-&woqv=>LS^*>1fac1eWK@6DEi&2N)#FCi!U3Y#?ggCgiuw`8s5T%APi z(wd(kKrY}FT18~&V0g;vFJw zxTEG98mnC3=q{bjRz1PNU~GZfH#kciDmx6jGT+Mm9?sZrYm;*K$ZO|GF>3hQ)-ETv zD35cSsV+c+I(gA~mFBh1vg-6zm$p-!Kq?Ws; zy&-whIcsf2x(C_xO5aQiqj2iQj9?OAABOag*(U%(7AOQ%*k={xndOknhqo)ZhjV{% z)j_aoFP=}IGDUduZU8JNm6n5pgBJu0elyl?fa@>bkJEgF`znFh(BDb0RBjr1AA0tK z-d=JB*y}1>N$zJ_am-b?XcIXbUlEs9SD3}+ybzTnhh5T?DWW=?P#5eB4W5K z+@Uoi?7~3fw?~bU!H&;-lo!015N(KQ7ejy@QRrw82{kL2<>41r-M%Gl&;$Pg4%uPU z8HL#z8FB@+|6R4zEHE0o!JY=ZQPRCRHFA49hrME-LJB6Q112GB-na*mult9~(Zz~| zX4<>FHoLV!i^g!YfIHNl@(iDE_1kbXElqtX0vzSPFN~Avc)R74fX&(q;N0s_J&S^? z2Ok6oE|>2*)@Yc+E`vt?)hn=wg4qL1o=|(yjRA-H9H7#@E@S6tR(_6TR4dA=syYRx zTnUtq*xA_u=PWR}q%%62DYS2C0Rjiq#vIOeO%xr=7NBaoMc;gt-H>R+1#|ysl-1@? zD)-pS4;ODraolPdDkXcRK98ELGS^CWN~=u?McKf4u=+U?2n;khqVIeQ3++rj>}-4^1+kLu5HPW z6_&gjxhK=3G11J|Zr+4+|M65NYM|$9f4Dx60(k+*yC9AF^}Ozl+|1O#VvY_J$VgP6 z8=2RsB$}~nFoRtjDfJC6!{XtW4_+q3Fl&_kfPN^Ro}SZ9p)OHCV%GHiM`_3It>W8W zgKi^^D%AK;-znNB^WhVl-l~jJ#n#we#W9l`CLTi7FC7@icUzWkrbYOn!4j=#pZS#J z*q2@-d`a)Ykw-}k<^WQZ1_X8mh!0@Ljg-8Ni~D=I5spmI=mQ%4!mu)Qg38@b?R%7a zbiM%H2B==hG}MCi^z>+T1#HzAySl>Ao(FLERIczqb$K@ps#F_gXbCV?(?t35<;&11 zBtJ-}jH1B?X>vQBw|qO*du3iNdK_Pn=>ulf6epVMtxAlUTUvSm6g;>y%}q@!iu|kK zh``NVqBM!FW|@zcL2U(|DK94&n0BvMhYHUQbI*qQ`gSLM$w3Tp+^ZBIxvS11A?G5V zmR~jBEVtK<_vYLw=-~HLZfl{06y#LHKHl0JNZyl3`l|3?Z1^POh`O>bFDE;bP;?_Y z=B^d=-n`w*lx?P|S(88Qorx;hLI0GS6n=U;GTLYYeYI-r{;K<|ja>(u;~5KjWA_#! zZZP-#e`+PY?muE;{O6nQfYAN7a|mn`(kY2VegQcXA|wmZ|AUZOGP*@e&_i39?biQO$V?0eaA!nr zPl*p3Rd2rf&mpsPG{;I0+D(uDOUR7)pfL0t5hT@E6;o}0YkwcCK;8S(=T8EYJ9M-$ z?+oEj`W~xL3T{pdQWu>q8swO#_4}UUt6rcyVSX3;}bvH_`=kb5eL#!Qx^nE zclsN(3x`rQ^)YIQKK_;v(b1v6VFFWkQgzsW5frJfo|!eii`Mk_X*B4;#t3=~Eiu7b z_Rj)h*f?51q-1H|fX%fYCD=Ql^AM(2Vp5W>Z8)az7%M@AKGqHC(NO{g9QYRgmNL^^ z4ZFL?#VZS7DFFP(qK`+esIkhU-PLLKX@x+8UnhGnem%4z<*BNsi_2EY*KKHtWN4as z5EUJb8Y%78%@3Nh)4|i#-JhrH^u5^B)U^EoUla~Yca}-o=W--=t8vlz>_)Q>KcB5} z@b39{`RjfkEHWPjFCRPzNk}rgjFg?w{&b1^JHN9oB8}s6oWh`Ogq%d>(fh7f-v=Su zy|uNaLQ+SkMfeX%u`grm@6U`6O!$~DEU<{+i*lCY<;PzsHFU;Qp(%T4_IF9~E#D*z z?T;VcrKi*N2q!qk6N-klaVlvrkdxJBMy|PrNN>X{{ue><#tz5=r7#2u|3^u)8J{)( z<@eOhU;*HA3b}U$q=*|=;e7sa1d?WU{}H2o?IN&P&+k=`-xBTmF8fB{UX2Eru8rz& zn_q>E3p~G@EFmiU0S&DB3a40B|H+#Uk#qt58dY!34ucf>YTTjG?jOV;lD}@&IA5E&^;1o2zLia$n zv(tG70_8J7BhkHHkWjZaH=#o`Y+}*ge{_BgT1|s*8{EPWFM>`F*@}QTe=lI+p8_H? zkoKg!a-Sy%p48*Xd~BZss=cC|iVBa#SOvgqJs=N=?#bb|0N;jAHV!)d0WIbTvdUVZ z>w=nKT^TK=)!lz2(rE6uQdE6YN)XNsNk1m_^W4wD7)K1)u=^I=BM=|1LTJh*3j}mQ?>Q{_|06h!#Y4QM#EHvFF+NWH%|NoZKCiK3j@U zI>l$3Jpnb4K2lO0hCGqYQ{o)dWhny>*_l$1bt5GoG0MVcfHqM!5p)5>!I*^bTa5%| zv^l8Pjg~h+j=Uy2a@_)ch-SD8_TV7#WQ~j#potH62vrg!zO$zy{b`P+bw0 zlx%_Z{>n0X$=$z)5EV@%r~viXPUJ^%F*+0i<|^=xEw8NnQN`7RZ>-TVN1GgOLmSZF zv(}MOQMh4}DZ1HYa3%Gw6jPEf`Tf6UHez62mZ+e#I)P8y}QPev_JFQh2%RhhGT1PEFLQV{x|s<<#}iffI&15 z#2(Y0w+{b`ZN$JLRwd3s{xi0*5j)7ZM37TjSmr{Fi~$~wn<9b=bjMs}+nHQuJa zap7J-()NKd<&>x~^$^A%xwPQxn|UXdC~?Y1XnFDCNN|n_y6R(P*G%V&K;Yt(=YIb~ zYZO7zDP8mBf+wnZanE>N44pq@ZY{{de+L?d^+j?3Aj<`+WSQbi1trPvZWPhYO|YMufUJ-XK`>~FnHt`fz;ZH*z~dnxl!zj*k* zMADx?2>?maiIRqlSCrxY{dBh%*`Uhxa2Vv>kzZb#vi1K)M!hM3ewUqzDR2Df{zJ2` zazgc^)$xc|1q0&(Ej$fibsW-W#iBFMrOSDHP03v}*A3r^K49d7U^4VAOzu*K$BP%9 zfpGUyNwYP~b3jIwgwyn?wDjsrXm}@vfEL^6<{?WK2PXg8*bAZu%R@Qszz&bp`YGyt zh3(KJ*{E;`ss!+WZbU1vMR;8pV$ho(59TzJ76ve+raX7|5_W9z1AwS`j<( zST!gnkiun!(`dzVO;V(`u!NzTbGujs%F#Ft z_4N}MZcrJ1skFdgJ$SbG_2<8jlx*U9-)JaV8@@xJw`ph7IwyYF`RQ7$3Kuh}PbyT@ zkB@ElrJfkU{nvJ7kX$8-Cj>7r7`9z3q3YJ8KpTcuTREf;7wF)McSu{^-ro3?ax0l! z@3O%sA4B)0 z=8(`Le5&E72vsfKEvcMS*G_cl3cH|zL-h1r1RnvWc z#S|umh%ufqqPOc-v5c*;^0q5NX;50odA3l$)*p{2z_Xh$9h*cg;Z+j77m)NzYBEVg z{ouBB<|n_BPK+ovEVh=XuoLibI$B2HlaU=P)Crxn2J(%>{3Wu~M@N8j8d<$wY_(JM zm)WcId-seAHw#O7W#v{~s1Q{W7{-bVmaN6a)4*=S$FL=XtQJN{S(LG{a4~>#c8Yhd zX2$DlqLx5i*PoVW3!f$qT24NXmW<-@W2fXoiVN~B1s98T{2%fLHTwK62xtr1{yrb@ z-C*2u`YpeZ&?rDZWOm&f><9J-E}RYQxH~u?ZL+J!HuuRBhB=uSx7QLzpCE{X4?~e= zHVI7h^zJ7bnb2X2A(OfM`pXBshvkZwFfr46zwJ4oDs4;qT9^HUu6RrlV(%Xq2RAkr zkDd7Wor1^fbbUU0^t#uHbL%uqrM z1Y+3@`+lNA^J@bFmTng_EwdPd9;0kETmWppuU{R%moASSpv~;KvX4E_Dwk3C7d0~! zD)xS+*)?JwU%rS=>qEC{bol%K#FCV@G8Ub?v1o|AoxsfNQMTYJXrbo>uC|Bz*)e+S%nCIa#+lc_;5~U`t-NvXG!@q9XERh!Q_XI&3q;x7&3mS#@KhR z_ZzITJWVSq>}H%`vL?duUJ`+EaxV$87YhqeuN)ko1RFA>TI|gB>M!h_u2f~>bQwldI2Xae@~Zhv4Z+&UA4J8&8fa$gOZrmU^|6I;n_SCo^( zAw;dd2?L@~9ywrixLtN{Ahu7!@PL_9P%FySA>g<$;CWWJPKu*%sBdd$7pI<} zc9WbZ|JBAZM055M-;%|p0wzk++aRJ8?9gB;zp?!i;F{&59qxkbqhVl-!CAq1CBDlDIjEq2fQ zEx-&Z8-|l*xe;tLiqzR{LPuIO$<|=V9vv+Ti-`C=O_l}s5G=FP(-*-9p-QZsuA7v6 z*JVaCWPa7&xBN~G_<^-OJzUkFNfL)GOj}-4Ej(`GLKDKRH6)C^qY3-EjGcki2jc=-a%#Em zWS3Wf*K>QjCueQ#NyQ*l)3r7A@4C~|*spt*M8?UNjg5`Wggo+XAGUvB~_>L;*U;hYSTmdhDl6UOiZDBE6+j*AoM)T3#qB&|L>LHQd^HwH&&Hz#GQ z72|fXBl+2X_v_;_R-@BpK+6O#Hly+*{WBERwWND36KE|zl>iO{Hag>)6t=9M|7hV>x4yq>;gQ+D>^3gM#pM7(T{;&W zb05Fwz)Azz8cu+kYVl!VR&Wwab{Fe`Vj*Wy{`vFAXiqJsTL(aTBZW$xY&Fk}8qa$+ zU(_S^i5N6Jg=%mPQ*L^?kx@;Vcf{#ZXnAiX=(NxckfQWpE(YEI89?k$Zu!wsQ@?^9 zkN~500pAWd!A}GII4#DGp%EQ`V8H9JI#$WY!C^aEW(QCepa62l1p7gkDEHm(39wOs zoeKQIu)u8B#iU*%_o~x0;^5DIRfluh#wz!50O!2hF%0M`{A&$~bxnh{;atpZc#ahG z^qOhio1}Y7CKhUDMS}gUG)Vvs-OEy=YAv9X$gKvFCv$3h%w0k2AMhm{fOB+pPcSDZ zN98YkB8+BJm4JQ+H!!*$x)lDC-`IJNN)a5l!u{iwWlCAJ362Xe_pzs@!PEgH|a{?lrU-+hXb4sqT&wq~x6e zC*=r$z}EKm(IPW7$izUm!3k!rn0A^7`iBppA%HwEpg1_-?3ORhHSTKTL0;o*ITkcr)4-M~m9J#%;3%+*+ESFD3XK%{lTa=rryxf_E z#Ht7)RKVK8%}p;Z|Bask@^h)(@c7x;?ivSo$Y#g%es#GxJC#cDJ8y7mm`OyP^9l|- zN7yk%MXit9A$_G@;rzQg`U;-cCJdr4Hz`?)UTc|}J-MP%%S%l`t$pp8UuZoc=f!o3 z)+o09$I$}sO$sIgj$>D{&Yb3o!wB>Am!IPt zEQa1CaZn35t{922DEle6ci3=UDZ4`dD5SD1M`*k9h&ksat3Y*T=DhcKW!Cax_1TR7 zH<3qC`oStDZKIVM%>Avo6;`XYnUeF7$8*IV6=zlDsaj#5+*d zbo@z|hku^9duWWVPYFXtEGHv_O?nH0JkT67HemIAM8s&PqZr~@_sDi1r-NjG--pN! ze^ZIV9aOo+-NEX zZ&To3tKRojQp#12hc)^4@54|sm(@pFwCj|56FfL zEM3vXC2h;ChOfL#%f;<`s`2$)6-(5piKg3X_SMQzJm+c*Y9=3Anp_y0B_-h0oS&H) zaN!bvC!E;P(E+yHv9ar?^TQ(}>YAF&lwm42VHBzSFbYdGhKU@ebNPHSXJ=6c28hF@jATWG$Np^>tN1@ z)SzucHRE>=%@?xvb>Yh^s@DlVxUCgZu5@Z&4(2XAJUra8wn>uVSKsPdifmm?xPC3i zZ%o?d!@=y<8p!-%G72_g&d$ftwpQ?Iv@pU61a3t1kBzy{{0iGy?k_GX3i;f9j}q1x zsHP`F3lf`oVD}c=F8&S)x#?mAS}YmVV^Q)l0zjQCH11B#7`T~RS#?m3Ju+=oF8Zn| z$3ZwT&(CzQXjyH~Rc}z5i->vJ3;P>%fFL=O5L=BlQ|;5zblNK48&5{aspssC330Er zI-v}L4HY{4 zqOVF%pVL1!KnewQb(16%q329}-+*cGNy?E%`esUYtxv5&qGY&|jw8s0+`>kn;e^}* zWz&=D9r*nwuAm!=z>jNY?Roa{Ffm+1u0WZ)28Y0*)^M|ZxEe~0&Z6$-4l=o|vkyMT zSL+WmyCkFq7TalBpA-h>l=BwkZg*&);!l4_AaYb+oEGMez5Z-qqIP7GYf;1~g}9bF zpQ~;ah~(n1FqcqOUGg~XXP3-qYYRfT9zEBm4{g$T>1I3bPQZN8v(>kA!cT5#O5dij zg8eF)&_;8kUQ@zh=+4>6_EuSHuG_>|XlMeljoQ3OuQ>Kgai+pDzhC&LZue#2v)|-ksEka3;+aGD23`dbMF=bO0ocdyWY;Q=oU`wcD zmhudmt&;t?@V<>Gp2)YdGd^c|NYqv%l=OX@v$Kon*R))rTUTx#oa|O%Sryscoo!4B zEJnFDX+A!TbJ!CtY9iymJ z7j*beMm?CFlm%|{VK0(H86E$&7%vH!Wp7whoYL~*_La#EZPKFi@A6v$Ib`p18ot2D`I`*m0F zVQCzBs;uOc`7%ET$A`GcJEaFdt6-3tc_%JYPVG3)wa1aAwL}QH(zy+B;A|XS&=?iS z$j}r_kH&{5=Wr%&O#SfNP9udVKC;ehqbuVv$*DM^zH;+(O(XV?_r@v&T~EY*i@*gr zt8zn9VGFTxvns!I`?2&w+C_Z+@)35n%dyL(rE>QVuJJ>cSlaRZAvNp~k79ildS)fJ zx->Jhw$}1@Pq8q>bWB!0s_B`0PGyOmtiG;b-r$IAa;xR3Sv4ohhVvKGOmco>5K^$2I14C zPRoT(3LJC+QsGRrFH41r5-4C5ScNOI#9`@EZF=1OL(h*eB$zWqM8I+ZeWQV2e%Ir8 z1G<2hM+klH?P8&{Dw}=@Z^sYviR92M5MCLkwP;$7E2R`x4N_S1LztJ{IB?$2{D6wo z^X*u~XTiB0XUJ(z0`o<7&tkAZf4MKa4v#`F^aVoZo%(l!b~KvGyCM*30W4MfNyz!~ zSX5x;JsQFw>L3`xQ&XRk*EpnYjDC3(rSxiIdu1g5nN2>mxwf`$30OIO+dnylSa}Y- zA$X*x|5_%iTB`>1Fd{30sju*Ra$sn9ti2v|3zMG>9ktL|5J*;EA*u~L4z0oO) zjq%jA$O&0Vn{VQkG1#y=d5$iTKkW)*7w_k4Q{(Q@C@y#5NChwG9U+N+h5hWfNI*pNiZcNC2;5Thr3+(^)=Y zB^RUPV)wPar?M?hRed_|HxWb6BKl<&lU-L7U7mb{nB|Yl&*M3`4sO%I(TKiJliB=G z4N369wJw{@#-NjA?;(h)YSU1syg{(X^PJ4*jygSt7Od{l8XFEuPynZfC@*$%bQ3ou z*Q2AOvAqKW;U5>q>il1#(P*Lg7Q>P7g1R~q0mL!&&dm?QUT;uEQUq8Qb$;oUbHK2H zv!1G5+6riW+f9h2?)j>emYF4E@b$IUByuiYz6`Z%LqM8Al<%)_Y5wwojdcJk-dneV z)Dxl33)g}M?zP~4qs+aC1~Y4x9j#w{6GBfK6D|QYb6{E!2rqd+?g8yd*BT$XCGhIK zyb8KzL<9xkP`>76LNbM}2EK>Vtd=sEG!TU`nZ{An(9lqTxHSIOU+c?xmy=KM9&L)| z^ZD3Tf+b=$?h)>Zg5y`Hu@}-dX#EQ43?{P@XvbhYlpyUcb`@HJOab}?Z%u%$4T*dG zs)``OiQT$Fx4KrrL=v)qdw^fD(@@2NnHYf9m}D{lYf4H$-Vu)2QcDq zzr(9etue-nv3Ch#nc~QS*`GxX91@U zH{teEAn{Po4bN|GZU&RfrV;>s!4?Z2GWj&uI7$)xs4%bU{4==nE!jdFf2^&1>0(PB zKRu`>NnLFb-%wdnT-=+B#0s`4J()?7bCgM!Y0rLNnkGkS_K;CbO==fJR237|JM~d* zbG*aMW3&;M){%Q!l3U9%jRvJM=TlGMi26j%d`dUPxVlbC4L>F zF@sHx@uJgY)Q2Wp=_1e1Lv#2EU4Yo<5urx4o<9mtvV&7;K zIbHI2z6UqGeRfS2>q%L@$-6WCtj6c*@@KwcYKJZ=O9WvI$mG(VRqtvZy_PefH)7`eHk%!E;nZDL^xd=B%oq3CcvTYuN$q(e|$!kyw84AXI}Z-A&zlF0v)Jzw%p88TSu4E*q$pP z?p-T@Fzjx8W7PUyFX-W*Eh?^AvDP9U!coY2KK=5mZLgB(zFXEK?Y5YQkeLxf{o`tk zO^EnbmdA|<|Afin6W{XVOdBiSi79*TtGyDM)$m%kzenjK=b`iW&6CA9?>l#wBe4YY zGh$UUdrxK-39$0GB<1`xam>;a*NQIbAlrB~=UZL);C&&#uBkuJW1n=k9)c+?#5(AG zxIS$=>;S2rVi+PP&Efb{)Vzt$sMnrZ+?UWk^P?@?j*WzZxi7?RdaXoD$Iiv4=P`_> z*%`5bweuKZm;OVCcb>J@EJ~|g{y2(1y=q8s_P-|`S^eq!y5Tm zSWm8SD$i`y@8GUUMTHJyua;e$VWPVZLKLps-eTUvfpsK{VP%Z>kea$g>mS%R zT>$UX4R9@?@b2B;3sOx6o1!23W=ZVs8BhxqDcpa`#5ZUB&KAUy`i#qYO{LTN4JBt7 zr@o9!cbR@YZ)@9GPO4C|Kgj#6vLUG3d+jrO7gq&aenDg19$woUmA`jY9rZz@?oLi& zpy0U;g|fM25)BHSuxW(E1+*%FC@8x$JeHs|ETm+BJa)<$HWq#3jI7T8ttvZ>pzAGj}s&i*fOTL$*HL|{`ze9YsRz{1|yufRtoO24U=fmmV30>2_DXy zOupkSA$`K|f)G$_M zyBa0C0!;68ZqI=9iLuNYyYAd?lt(UX(3**EI{L0WyM$b5{W8yasC@>7Fc6rfw5M_3 zVS?Qb47odwg~GG>xiUuw8%f$Mib5<=KM7rBDwYNG<27>+XeVWmKA!C~B?VMauaL2u z5aEm6%2>}wr?h7x4US&=+$nG36}bPa>P%$Hs=x0E#H>{rhtglkW>g+DHs#b%*9to{ zYrmkn2B#upio-szk3e`!rCDr$>5)>p5m1<~2^r^KG*Rew_SLrR;1 z&bh3pesju^1WNtT?I03AMhaDS1?I&EecZWA%rOH98wo~j9OVWfUb&Eu$wm}qd7uWN z>m>~7J8ro~Ur32;Xt8`~amN9czny6?lP7~9^ptL~>&`*$+L`4zu5nI#XNnFhZLv|1IR3PQMcres=(jx@!ymd e{$CpT@D;tC7uxW6H#eV|t*lybZ diff --git a/docs/guide/analog-sensor-node/step3b.patch.png b/docs/guide/analog-sensor-node/step3b.patch.png index adb89772fc112fb32e8392b9bf5a442cc35179d8..2857e6573e56f931b943a70c7d1c113ad3337f05 100644 GIT binary patch literal 13624 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 I_2Bvc0F|*7Hvj+t literal 13208 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 diff --git a/docs/reference/README.md b/docs/reference/README.md index 41ab12cb..efb6a0d1 100644 --- a/docs/reference/README.md +++ b/docs/reference/README.md @@ -14,6 +14,7 @@ Reference * [`xod/core`](/libs/xod/core/) * [`xod/math`](/libs/xod/math/) +* [`xod/gpio`](/libs/xod/gpio/) * [`xod/common-hardware`](/libs/xod/common-hardware/) * [`xod/units`](/libs/xod/units/) * [`xod/bits`](/libs/xod/bits/) diff --git a/docs/reference/supported-hardware/index.yaml b/docs/reference/supported-hardware/index.yaml index a73cf7a2..e2a52c5d 100644 --- a/docs/reference/supported-hardware/index.yaml +++ b/docs/reference/supported-hardware/index.yaml @@ -146,7 +146,7 @@ url: https://www.seeedstudio.com/Mod-Red-LED-p-1142.html - part: Relay nodes: - - xod/core/digital-output + - xod/gpio/digital-write shopping: - shop: Adafruit sku: "#2935" diff --git a/docs/tutorial/17-ldr/README.md b/docs/tutorial/17-ldr/README.md index b2d63600..657b33e0 100644 --- a/docs/tutorial/17-ldr/README.md +++ b/docs/tutorial/17-ldr/README.md @@ -20,7 +20,7 @@ photoresistor node in XOD. Yet, we have basic nodes for working with the digital and analog ports of the Arduino. A photoresistor is a pretty primitive device, and all we need to do is read its value from the analog port on the Arduino. To do so, we will use an -`analog-input` node. +`analog-sensor` node. ![Patch](./patch.png) diff --git a/docs/tutorial/18-comparisons/README.md b/docs/tutorial/18-comparisons/README.md index 093b90b0..4c083c98 100644 --- a/docs/tutorial/18-comparisons/README.md +++ b/docs/tutorial/18-comparisons/README.md @@ -48,7 +48,7 @@ The circuit is the same as for the previous lesson. ![Screencast](./screencast.gif) -In the example shown, if the `analog-input` node (our photoresistor) returns a +In the example shown, if the `analog-sensor` node (our photoresistor) returns a value greater than the threshold, the `greater` node will set the `OUT` pin to `true`, and the LED will turn on. diff --git a/docs/tutorial/21-pulses/README.md b/docs/tutorial/21-pulses/README.md index d4e1e5af..7663e32c 100644 --- a/docs/tutorial/21-pulses/README.md +++ b/docs/tutorial/21-pulses/README.md @@ -22,7 +22,7 @@ message to trigger something else. It does not transmit any data. However, it is useful when you need to convey that an event has occurred or tell something else to work. -For example, say you only want an `analog-input` node to receive information +For example, say you only want an `analog-sensor` node to receive information from a board port at certain intervals, and not all the time. This frequency can be set with the help of pulses. diff --git a/docs/tutorial/complex-projects/README.md b/docs/tutorial/complex-projects/README.md index 47cf9c30..c6e4b6db 100644 --- a/docs/tutorial/complex-projects/README.md +++ b/docs/tutorial/complex-projects/README.md @@ -23,7 +23,7 @@ Interfacing with hardware If you want to use a sensor or an electronic module that you haven’t found support for, it’s quite possible that all you need is a few standard nodes -like `analog-input` or `digital-output`. +like `analog-read` or `digital-write`. Refer to the item's documentation to understand how you can talk with the hardware. @@ -34,7 +34,7 @@ Write a native wrapper You can implement new nodes not only in XOD, but also with C++. You can even wrap an existing native library to make it available in XOD. -See the implementation of `analog-input`, `digital-output`, and `text-lcd-16x2` +See the implementation of `analog-read`, `digital-write`, and `text-lcd-16x2` for examples of how to do this. Tell us what you need diff --git a/docs/tutorial/data-types-and-conversions/README.md b/docs/tutorial/data-types-and-conversions/README.md index 412b322e..0265137e 100644 --- a/docs/tutorial/data-types-and-conversions/README.md +++ b/docs/tutorial/data-types-and-conversions/README.md @@ -41,20 +41,20 @@ program that looks like the one below: ![Pot and LED patch](./pot-led.patch.png) -We use `pwm-output` from `xod/core` to provide a PWM signal to our LED. The +We use `pwm-write` from `xod/gpio` to provide a PWM signal to our LED. The `DUTY` input defines the duty cycle. The value 0.0 denotes the always-low signal (LED is off), 0.33 is for a 33% cycle (one-third of full brightness), 0.5 is for 50% brightness, etc. up to 1.0 for the always-high signal when the LED is 100% on. -Be sure to set the `PORT` input value to 3 with Inspector. +Be sure to set the `PORT` input value to D3 with Inspector. -Next we use `analog-input` from `xod/core` to read values from the +Next we use `analog-read` from `xod/gpio` to read values from the potentiometer. Read values are available on its output `VAL` and take the value 0.0 for one of the potentiometer's limits, 1.0 for the other, and fractional values for anything between them. -For the `PORT` value on the `analog-input`, use value 14 which corresponds to +For the `PORT` value on the `analog-read`, use value 14 which corresponds to pin A0 on the board.
@@ -147,7 +147,7 @@ any popular text LCD to build a circuit like one below: ![LDR, LED, and LCD circuit](./ldr-led-lcd.fz.png) Add the `text-lcd-16x2` node from `xod/common-hardware` and give it the value -of `analog-input` as an input for the first line (`L1`). Link the output of the +of `analog-read` as an input for the first line (`L1`). Link the output of the `less` node to the `L2` input. ![LDR, LED, and LCD patch](./ldr-led-lcd.patch.png) diff --git a/docs/tutorial/nodes-and-links/README.md b/docs/tutorial/nodes-and-links/README.md index 848938db..5254c4a8 100644 --- a/docs/tutorial/nodes-and-links/README.md +++ b/docs/tutorial/nodes-and-links/README.md @@ -28,7 +28,7 @@ work and communicates with other nodes. Let’s talk about each node one by one from bottom to top. -### digital-output +### digital-write This node represents a single physical output pin on the board. It can be either in a high (enabled) or low (disabled) state. We use it to switch our LED @@ -38,7 +38,7 @@ The node has two *inputs*. They are `PORT` and `SIG`. The `PORT` defines what physical pin corresponds to the node. Select the node by clicking on it. You’ll see the *Inspector* sidebar with the properties of -the selected node, i.e. our `digital-output`. +the selected node, i.e. our `digital-write`. ![Inspector](./inspector.png) @@ -83,7 +83,7 @@ What happens in our blink program? Take a look: 1. The `clock` node ticks at regular intervals 3. Each tick pulse goes to the `flip-flop` and toggles its state -4. The `flip-flop` provides its state value to the `digital-output` +4. The `flip-flop` provides its state value to the `digital-write` As a result, we see the LED blinking. @@ -99,8 +99,8 @@ That’s not too interesting. Let’s add another LED. Improve your circuit: ![LED on pin 13 and 12](./led-on-pin-13-and-12.fz.png) -Place a new `digital-output` node. To do this, use the Project Browser sidebar. -The `digital-output` node is available in the `xod/core` library. Hover the +Place a new `digital-write` node. To do this, use the Project Browser sidebar. +The `digital-write` node is available in the `xod/core` library. Hover the cursor over the item and click the (+). ![Project Browser](./project-browser.png) @@ -111,7 +111,7 @@ as the search query and you will quickly find the node you’re looking for. Press Enter or double click on an item found to place it. You’ll see a new node appear in the main workspace. Drag it to the slot you -want. The one next to the existing `digital-output` would be fine. In +want. The one next to the existing `digital-write` would be fine. In Inspector, set the `PORT` for the new node to 12, since it will control our new LED. @@ -124,11 +124,11 @@ Upload the updated program to the board. Whoa! Both LED’s are blinking. Now let’s improve our program some more and make the lights blink alternately. To do this, we need to add a signal inversion into either of -links connecting the `flip-flop` and `digital-output`s. +links connecting the `flip-flop` and `digital-write`s. The `not` node under `xod/core` does exactly that. Delete the existing link, place a `not` node, and add new links so that the signal from our `flip-flop` -to the `digital-output` goes through it: +to the `digital-write` goes through it: ![Blink two LEDs with inversion](./blink-two-leds-inv.patch.png) @@ -145,7 +145,7 @@ state: ![Blink with disjoint clusters](./blink-disjoint.patch.png) -Now we have three `digital-output` nodes. It can be hard to understand which +Now we have three `digital-write` nodes. It can be hard to understand which node corresponds to each LED, so it would be better to give them clear labels. To set a custom label for a node, select it and provide the label via Inspector: From dce320a907aacad4d850f452f79997b9fb758898 Mon Sep 17 00:00:00 2001 From: Victor Nakoryakov Date: Tue, 5 Jun 2018 13:25:22 +0300 Subject: [PATCH 4/4] test(xod-arduino): update test fixtures AVR size increased due to implicit inclusion of `continuously` and storing `ERR` outputs --- packages/xod-arduino/tools/test-avr-size.sh | 4 +- workspace/blink/__fixtures__/arduino.cpp | 10 +- workspace/blink/__fixtures__/firmware.bin | Bin 25748 -> 25732 bytes workspace/blink/__fixtures__/firmware.hex | 173 ++++++++++---------- 4 files changed, 89 insertions(+), 98 deletions(-) diff --git a/packages/xod-arduino/tools/test-avr-size.sh b/packages/xod-arduino/tools/test-avr-size.sh index c05ee373..1640c3a3 100755 --- a/packages/xod-arduino/tools/test-avr-size.sh +++ b/packages/xod-arduino/tools/test-avr-size.sh @@ -25,10 +25,10 @@ AVR Memory Usage ---------------- Device: atmega328p -Program: 1446 bytes (4.4% Full) +Program: 1664 bytes (5.1% Full) (.text + .data + .bootloader) -Data: 30 bytes (1.5% Full) +Data: 38 bytes (1.9% Full) (.data + .bss + .noinit)" if [[ $AVR_SIZE_OUTPUT =~ "$EXPECTED_OUTPUT" ]]; then diff --git a/workspace/blink/__fixtures__/arduino.cpp b/workspace/blink/__fixtures__/arduino.cpp index 59093543..28286438 100644 --- a/workspace/blink/__fixtures__/arduino.cpp +++ b/workspace/blink/__fixtures__/arduino.cpp @@ -1009,7 +1009,6 @@ void evaluate(Context ctx) { namespace xod__gpio__digital_write { struct State { - int configuredPort = -1; }; struct Node { @@ -1117,14 +1116,7 @@ void evaluate(Context ctx) { return; } - State* state = getState(ctx); - if (port != state->configuredPort) { - ::pinMode(port, OUTPUT); - // Store configured port so to avoid repeating `pinMode` call if just - // SIG is updated - state->configuredPort = port; - } - + ::pinMode(port, OUTPUT); const bool val = getValue(ctx); ::digitalWrite(port, val); emitValue(ctx, 1); diff --git a/workspace/blink/__fixtures__/firmware.bin b/workspace/blink/__fixtures__/firmware.bin index 5f9e57403c1fe1e3cac1e1e0305d3c4d52f88e02..93e5d957abe29654cd286d1960920becffffd128 100644 GIT binary patch delta 1126 zcmb7@T}V_x6vyYx-RsUK*DOEEbnU807WuIzWu%mbyIZSm(u3rRY?>j6wrL-`eXW#{ z5rHv9X;}DRA8*CrgSes~5x%t#Q7cGF^k5{dS?CtEoohz+_0Yg?&Y5%m=fItN=GrK< zje?i7GIcPPkuz)mg#5O=iyAF_9{r1dsrkLnhwVLi^MxG%G)|DW*yxK+rD0;mp zoLRI>8)=%Q=l}7Q_&+}^x=$`mb8qU`*{*(#hYlVGX@(95BlAqJcJLy|mdnBryv2`! zw;;c7#G^BhJd!;{nGpf09#XqpWA5T0rOHHx8B$1aM<~O5z(az=p)|}^E@Xj@x$*~j z0j-R#4$r!4P8Pr6v}X34H0$DbX%3X~=d>`k4pW`;RQ;Kpb@L1VtH{2HtBJ>=a{Eh(D%D5A5G)JmuQ!^!3@C*8fq>9UX^YovCursX2D6&2KG z4~BEUXSB1toAt%i?@!V_g>5m;$bM?OX<>t8s8y_p9*_)kD;Y7yFtSrTi?IRzu9Ub$ z=;wuT9P)%8edQx&ClL=0@)aJ6--p*wwyIXUhDWO%6xxN7c!R=y-fL`tcD^E+>t0kc z!Y7hVB9MFnFjlUn!*PB>H7W;j5H#GH6+LQ&Ubdpk#Fur?sUZp7e8eioH*A;W1(&B} zwa7UO!OpCG0F7cg`!c{K?lHYuS!creD`BJu2_T^o-jthVXz`JuHY{luy}3K}vZe}% z>8+m?(1|IF(64P&7%7TkBoplgqzoBFN)W%oIPBdj=Iz7F%BPYTxr49CgZ3VB8Sx_u zzO+IkBgfERy8fj<{6o(Tj)ru9HckjI@|a<#<&2~!;`8VuL-Ri7yKQz^J`zR>c&Ee8 e-#V;3rz%e(4#sDyj_}h?CMK#L>UAMABi{h5y(}vL delta 1118 zcmb7@T}V`06vx*(XU?2G#i->+O@7={lcZ68RyQA_oN6>IPUb__2-yfBSTLgno?B#H zCQ$5hk(Ja4h4TeHByoiHLX)d_VsW#{PtRVt^Znw zefHjwVLUgC9dJq*!x;j)e)%5wW^~VK?C_uL(+_IC?KA56)Yq>0Cr`jQywAdZ%0#cLKOkU6=te(PVzE}2 z#Kd283_GgtSfN3O|M^wTayD14bv{CGTUc6K6N)Osp_}E+7k!SA0zWQ?gl~3zV}bvm z1&Q0U-ez2}EZk@L5~%dC4uDFO{b}_{X$61t{YOgh)$iPZ`jis%(|u)A#sN-6XB6X0 zQd*Rw7NpcBgU#S=YHew~5#owH>IST)F11O~a_EKHs(>kjjxxju^=fTAyPPI=(mv;L z?3829dx&v)Q7lvoH<>RVuLF+&bOD8oDTmW*FxNf^VEt=844akdx&gqkNqBOXN;3(!$-9}^ z=tjP_lU#R(ZImXn>UhJIOPcHr|GhMz;8}^;=M}t0(cBh1OIjY`Ga1brKwfM&^0A#- zj9m9o{+vyxZDp^qSJ&#>0os`k;P%%V1J%g5j!MRkal953!h z?4={6PZx(v`MPZvaG9B4G(QE)id@HHFm#SfF34!vR$a4I6LP%bEpI}`tEBF=uejwF zuq#DC1=}8GA2Y_(GI6({DYHU8GjA=Zoz4+3zz^sQTgjYf;*5tM*N$8Pr`exBex^VE zSx>Y3Tk_+@+yMoQ3bv^NO0)Sz48qV%OvEnvLsip!2pg#@U^