From addefb39b7cf1aceb90c702a9121d68402f90c05 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Thu, 19 Oct 2017 09:03:13 +0100 Subject: [PATCH 001/127] Bump to 0.17.5 --- package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index ca463bf..42f47fc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "electron-node-red", - "version": "0.17.4", + "version": "0.17.5", "description": "Electron Node-RED application starter", "main": "main.js", "scripts": { @@ -39,7 +39,7 @@ "node-red-node-smooth": "*", "node-red-contrib-play-audio": "*", "node-red-node-base64": "*", - "express": "^4.14.0" + "express": "^4.15.4" }, "keywords": [ "electron", @@ -56,7 +56,7 @@ }, "homepage": "https://github.com/dceejay/electron-node-red#readme", "devDependencies": { - "electron": "^1.6.11", + "electron": "1.6.11", "electron-rebuild": "*", "electron-squirrel-startup": "*", "electron-winstaller": "2.5.2" From 37f0f45ebe6bec3782407d99693b371a4acd7844 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Fri, 17 Nov 2017 11:20:11 +0000 Subject: [PATCH 002/127] update electron project flow slightly --- flows.json => electronflow.json | 2 +- flows_cred.json => electronflow_cred.json | 0 main.js | 6 +++--- package.json | 23 ++++++++++++----------- 4 files changed, 16 insertions(+), 15 deletions(-) rename flows.json => electronflow.json (78%) rename flows_cred.json => electronflow_cred.json (100%) diff --git a/flows.json b/electronflow.json similarity index 78% rename from flows.json rename to electronflow.json index 9e6c07a..c1cd0fa 100644 --- a/flows.json +++ b/electronflow.json @@ -1 +1 @@ -[{"id":"41f61d2.fbe09e4","type":"tab","label":"Flow 1"},{"id":"52a903f3.ad56fc","type":"ui_tab","z":"41f61d2.fbe09e4","name":"Home","icon":"dashboard"},{"id":"30e652f.d9de3ae","type":"ui_group","z":"41f61d2.fbe09e4","name":"Panel 2","tab":"52a903f3.ad56fc","order":3,"disp":true,"width":"6"},{"id":"a8ecb9.c60f4348","type":"ui_group","z":"41f61d2.fbe09e4","name":"Introduction","tab":"52a903f3.ad56fc","order":1,"disp":false,"width":"3"},{"id":"bbdf3e02.e8fee","type":"ui_group","z":"41f61d2.fbe09e4","name":"Panel 1","tab":"52a903f3.ad56fc","order":2,"disp":true,"width":"6"},{"id":"d9ba26fa.6d2b18","type":"ui_base","theme":{"name":"theme-light","lightTheme":{"default":"#0094CE","baseColor":"#8e0d17","baseFont":"Copperplate,Copperplate Gothic Light,fantasy","edited":true,"reset":false},"darkTheme":{"default":"#097479","baseColor":"#097479","baseFont":"Helvetica Neue","edited":false},"customTheme":{"name":"Untitled Theme 1","default":"#4B7930","baseColor":"#4B7930","baseFont":"Helvetica Neue"},"themeState":{"base-color":{"default":"#0094CE","value":"#d80005","edited":true},"page-titlebar-backgroundColor":{"value":"#8e0d17","edited":false},"page-backgroundColor":{"value":"#fafafa","edited":false},"page-sidebar-backgroundColor":{"value":"#000000","edited":false},"group-textColor":{"value":"#d41322","edited":false},"group-borderColor":{"value":"#ffffff","edited":false},"group-backgroundColor":{"value":"#ffffff","edited":false},"widget-textColor":{"value":"#111111","edited":false},"widget-backgroundColor":{"value":"#8e0d17","edited":false},"widget-borderColor":{"value":"#ffffff","edited":false},"base-font":{"value":"Copperplate,Copperplate Gothic Light,fantasy"}}},"site":{"name":"Node-RED Dashboard","hideToolbar":"false","allowSwipe":"false","dateFormat":"DD/MM/YYYY","sizes":{"sx":48,"sy":48,"gx":6,"gy":6,"cx":6,"cy":6,"px":0,"py":0}}},{"id":"87356b62.92e3d8","type":"ui_group","z":"","name":"Text to Speech","tab":"52a903f3.ad56fc","order":5,"disp":true,"width":"6"},{"id":"c75ad4f0.0cede8","type":"ui_group","z":"","name":"Map","tab":"52a903f3.ad56fc","order":4,"disp":true,"width":"6"},{"id":"189cf871.681118","type":"ui_template","z":"41f61d2.fbe09e4","group":"a8ecb9.c60f4348","name":"Welcome","order":1,"width":"3","height":"9","format":"

Welcome to the Node-RED Dashboard

\n

On the right you will see a graph and a chart logging data from the sliders underneath.

","storeOutMessages":false,"fwdInMessages":false,"x":93,"y":45,"wires":[[]]},{"id":"9f19ee5c.beaef","type":"ui_chart","z":"41f61d2.fbe09e4","name":"","group":"bbdf3e02.e8fee","order":1,"width":"0","height":"0","label":"","chartType":"line","xformat":"HH:mm:ss","interpolate":"basis","nodata":"No Data","dot":false,"ymin":"0","ymax":"100","removeOlder":1,"removeOlderPoints":"","removeOlderUnit":"60","cutout":"","colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"x":270,"y":200,"wires":[[],[]]},{"id":"799d9318.fd385c","type":"ui_gauge","z":"41f61d2.fbe09e4","name":"","group":"30e652f.d9de3ae","order":2,"width":"","height":"","gtype":"gage","title":"Title","label":"gauge","format":"{{value}}","min":0,"max":"100","colors":["#00b500","#e6e600","#ca3838"],"x":270,"y":140,"wires":[]},{"id":"6f18b200.666a4","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"87356b62.92e3d8","order":2,"width":0,"height":0,"label":"press to talk","color":"","bgcolor":"","icon":"fa-volume-up","payload":"Hello to Jason Isaacs","payloadType":"str","topic":"","x":110,"y":300,"wires":[["f897d7c2.467a58"]]},{"id":"f897d7c2.467a58","type":"ui_audio","z":"41f61d2.fbe09e4","name":"","group":"30e652f.d9de3ae","voice":"0","x":300,"y":300,"wires":[]},{"id":"da0f7e67.0d38a","type":"ui_slider","z":"41f61d2.fbe09e4","name":"","label":"slider","group":"30e652f.d9de3ae","order":4,"width":0,"height":0,"passthru":true,"topic":"","min":0,"max":"100","step":1,"x":90,"y":140,"wires":[["799d9318.fd385c"]]},{"id":"eabf2bd7.f4e0c8","type":"ui_slider","z":"41f61d2.fbe09e4","name":"","label":"slider","group":"bbdf3e02.e8fee","order":4,"width":0,"height":0,"passthru":true,"topic":"","min":0,"max":"100","step":1,"x":90,"y":200,"wires":[["9f19ee5c.beaef"]]},{"id":"7d549f6e.58ab6","type":"worldmap","z":"41f61d2.fbe09e4","name":"","lat":"","lon":"","zoom":"","layer":"OSM","cluster":"","maxage":"","usermenu":"hide","panit":"true","x":445,"y":411,"wires":[]},{"id":"45508d88.744a54","type":"function","z":"41f61d2.fbe09e4","name":"","func":"// create random position\nvar lat = 51 + Math.random() * 0.2;\nvar lon = -1.45 + Math.random() * 0.2;\nmsg.payload={lat:lat, lon:lon, name:\"Mike\", icon:\"male\", url:\"IBM link\"};\nreturn msg;","outputs":1,"noerr":0,"x":265,"y":411,"wires":[["7d549f6e.58ab6"]]},{"id":"6ca8cfc2.e0bce","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"c75ad4f0.0cede8","order":1,"width":0,"height":0,"label":"Move Mike","color":"","bgcolor":"#910000","icon":"fa-male","payload":"","payloadType":"str","topic":"","x":103,"y":412,"wires":[["45508d88.744a54"]]},{"id":"c87aa53d.223ba8","type":"inject","z":"41f61d2.fbe09e4","name":"","topic":"","payload":"/worldmap","payloadType":"str","repeat":"","crontab":"","once":true,"x":106,"y":461,"wires":[["42a56979.e10b68"]]},{"id":"582c9a7e.d9d014","type":"ui_template","z":"41f61d2.fbe09e4","group":"c75ad4f0.0cede8","name":"","order":2,"width":"6","height":"6","format":"
","storeOutMessages":true,"fwdInMessages":true,"x":436,"y":461,"wires":[[]]},{"id":"42a56979.e10b68","type":"template","z":"41f61d2.fbe09e4","name":"","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"","x":266,"y":461,"wires":[["582c9a7e.d9d014"]]}] \ No newline at end of file +[{"id":"41f61d2.fbe09e4","type":"tab","label":"Flow 1"},{"id":"52a903f3.ad56fc","type":"ui_tab","z":"41f61d2.fbe09e4","name":"Home","icon":"dashboard"},{"id":"30e652f.d9de3ae","type":"ui_group","z":"41f61d2.fbe09e4","name":"Panel 2","tab":"52a903f3.ad56fc","order":3,"disp":true,"width":"6"},{"id":"a8ecb9.c60f4348","type":"ui_group","z":"41f61d2.fbe09e4","name":"Introduction","tab":"52a903f3.ad56fc","order":1,"disp":false,"width":"3"},{"id":"bbdf3e02.e8fee","type":"ui_group","z":"41f61d2.fbe09e4","name":"Panel 1","tab":"52a903f3.ad56fc","order":2,"disp":true,"width":"6"},{"id":"d9ba26fa.6d2b18","type":"ui_base","theme":{"name":"theme-light","lightTheme":{"default":"#0094CE","baseColor":"#8e0d17","baseFont":"Copperplate,Copperplate Gothic Light,fantasy","edited":true,"reset":false},"darkTheme":{"default":"#097479","baseColor":"#097479","baseFont":"Helvetica Neue","edited":false},"customTheme":{"name":"Untitled Theme 1","default":"#4B7930","baseColor":"#4B7930","baseFont":"Helvetica Neue"},"themeState":{"base-color":{"default":"#0094CE","value":"#d80005","edited":true},"page-titlebar-backgroundColor":{"value":"#8e0d17","edited":false},"page-backgroundColor":{"value":"#fafafa","edited":false},"page-sidebar-backgroundColor":{"value":"#000000","edited":false},"group-textColor":{"value":"#d41322","edited":false},"group-borderColor":{"value":"#ffffff","edited":false},"group-backgroundColor":{"value":"#ffffff","edited":false},"widget-textColor":{"value":"#111111","edited":false},"widget-backgroundColor":{"value":"#8e0d17","edited":false},"widget-borderColor":{"value":"#ffffff","edited":false},"base-font":{"value":"Copperplate,Copperplate Gothic Light,fantasy"}}},"site":{"name":"Node-RED Dashboard","hideToolbar":"false","allowSwipe":"false","dateFormat":"DD/MM/YYYY","sizes":{"sx":48,"sy":48,"gx":6,"gy":6,"cx":6,"cy":6,"px":0,"py":0}}},{"id":"87356b62.92e3d8","type":"ui_group","z":"","name":"Text to Speech","tab":"52a903f3.ad56fc","order":5,"disp":true,"width":"6"},{"id":"c75ad4f0.0cede8","type":"ui_group","z":"","name":"Map","tab":"52a903f3.ad56fc","order":4,"disp":true,"width":"6"},{"id":"189cf871.681118","type":"ui_template","z":"41f61d2.fbe09e4","group":"a8ecb9.c60f4348","name":"Welcome","order":1,"width":"3","height":"9","format":"

Welcome to the Node-RED Dashboard

\n

On the right you will see a graph and a chart logging data from the sliders underneath.

","storeOutMessages":false,"fwdInMessages":false,"x":93,"y":45,"wires":[[]]},{"id":"9f19ee5c.beaef","type":"ui_chart","z":"41f61d2.fbe09e4","name":"","group":"bbdf3e02.e8fee","order":1,"width":"0","height":"0","label":"","chartType":"line","xformat":"HH:mm:ss","interpolate":"basis","nodata":"No Data","dot":false,"ymin":"0","ymax":"100","removeOlder":1,"removeOlderPoints":"","removeOlderUnit":"60","cutout":"","colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"x":270,"y":200,"wires":[[],[]]},{"id":"799d9318.fd385c","type":"ui_gauge","z":"41f61d2.fbe09e4","name":"","group":"30e652f.d9de3ae","order":2,"width":"","height":"","gtype":"gage","title":"Title","label":"gauge","format":"{{value}}","min":0,"max":"100","colors":["#00b500","#e6e600","#ca3838"],"x":270,"y":140,"wires":[]},{"id":"6f18b200.666a4","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"87356b62.92e3d8","order":2,"width":0,"height":0,"label":"press to talk","color":"","bgcolor":"","icon":"fa-volume-up","payload":"Hello to Jason Isaacs","payloadType":"str","topic":"","x":110,"y":300,"wires":[["f897d7c2.467a58"]]},{"id":"f897d7c2.467a58","type":"ui_audio","z":"41f61d2.fbe09e4","name":"","group":"30e652f.d9de3ae","voice":"0","x":300,"y":300,"wires":[]},{"id":"da0f7e67.0d38a","type":"ui_slider","z":"41f61d2.fbe09e4","name":"","label":"slider","group":"30e652f.d9de3ae","order":4,"width":0,"height":0,"passthru":true,"topic":"","min":0,"max":"100","step":1,"x":90,"y":140,"wires":[["799d9318.fd385c"]]},{"id":"eabf2bd7.f4e0c8","type":"ui_slider","z":"41f61d2.fbe09e4","name":"","label":"slider","group":"bbdf3e02.e8fee","order":4,"width":0,"height":0,"passthru":true,"topic":"","min":0,"max":"100","step":1,"x":90,"y":200,"wires":[["9f19ee5c.beaef"]]},{"id":"7d549f6e.58ab6","type":"worldmap","z":"41f61d2.fbe09e4","name":"","lat":"","lon":"","zoom":"","layer":"OSM","cluster":"","maxage":"","usermenu":"hide","panit":"true","x":445,"y":411,"wires":[]},{"id":"45508d88.744a54","type":"function","z":"41f61d2.fbe09e4","name":"","func":"// create random position\nvar lat = 51 + Math.random() * 0.2;\nvar lon = -1.45 + Math.random() * 0.2;\nmsg.payload={lat:lat, lon:lon, name:\"Jason\", icon:\"male\", url:\"IBM link\"};\nreturn msg;","outputs":1,"noerr":0,"x":265,"y":411,"wires":[["7d549f6e.58ab6"]]},{"id":"6ca8cfc2.e0bce","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"c75ad4f0.0cede8","order":1,"width":0,"height":0,"passthru":false,"label":"Where's Jason","color":"","bgcolor":"#910000","icon":"fa-male","payload":"","payloadType":"str","topic":"","x":113,"y":412,"wires":[["45508d88.744a54"]]},{"id":"c87aa53d.223ba8","type":"inject","z":"41f61d2.fbe09e4","name":"","topic":"","payload":"/worldmap","payloadType":"str","repeat":"","crontab":"","once":true,"x":106,"y":461,"wires":[["42a56979.e10b68"]]},{"id":"582c9a7e.d9d014","type":"ui_template","z":"41f61d2.fbe09e4","group":"c75ad4f0.0cede8","name":"","order":2,"width":"6","height":"6","format":"
","storeOutMessages":true,"fwdInMessages":true,"x":436,"y":461,"wires":[[]]},{"id":"42a56979.e10b68","type":"template","z":"41f61d2.fbe09e4","name":"","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"","x":266,"y":461,"wires":[["582c9a7e.d9d014"]]}] \ No newline at end of file diff --git a/flows_cred.json b/electronflow_cred.json similarity index 100% rename from flows_cred.json rename to electronflow_cred.json diff --git a/main.js b/main.js index d941b71..91f4690 100755 --- a/main.js +++ b/main.js @@ -3,9 +3,9 @@ // Some settings you can edit easily // Flows file name -const flowfile = 'flows.json'; +const flowfile = 'electronflow.json'; // Start on the dashboard page -const url = "/ui"; +const url = "/ui/#/0"; // url for the editor page const urledit = "/admin"; // tcp port to use @@ -150,7 +150,7 @@ function createWindow() { var webContents = mainWindow.webContents; webContents.on('did-get-response-details', function(event, status, newURL, originalURL, httpResponseCode) { if ((httpResponseCode == 404) && (newURL == ("http://localhost:"+listenPort+url))) { - setTimeout(webContents.reload, 200); + setTimeout(webContents.reload, 250); } Menu.setApplicationMenu(Menu.buildFromTemplate(template)); }); diff --git a/package.json b/package.json index 42f47fc..7d662df 100644 --- a/package.json +++ b/package.json @@ -7,9 +7,7 @@ "start": "electron main.js", "test": "echo \" Warning: no test specified \"", "watch": "nodemon --exec \"npm run start\" --ext js,css,json --ignore build/", - "clean": "rm -rf ./build ../electron-bin && mkdir -p ./build ../electron-bin", - "pack": "npm run clean && electron-packager . Node-RED --icon=nodered.icns --all --out=build --overwrite", "pack:osx": "electron-packager . Node-RED --icon=nodered.icns --platform=darwin --arch=x64 --out=build --overwrite", "pack:linux32": "electron-packager . Node-RED --icon=nodered.icns --platform=linux --arch=ia32 --out=build --overwrite && cp afterinst.sh build/Node-RED-linux-ia32/", @@ -17,7 +15,6 @@ "pack:win32": "electron-packager . Node-RED --icon=nodered.icns --platform=win32 --arch=ia32 --out=build --asar=true --overwrite --win32metadata.CompanyName='IBM Corp.' --win32metadata.ProductName='Node-RED Electron'", "pack:win64": "electron-packager . Node-RED --icon=nodered.icns --platform=win32 --arch=x64 --out=build --asar=true --overwrite --win32metadata.CompanyName='IBM Corp.' --win32metadata.ProductName='Node-RED Electron'", "pack:armv7l": "electron-packager . Node-RED --icon=nodered.icns --platform=linux --arch=armv7l --out=build --overwrite && cp afterinst.sh build/Node-RED-linux-armv7l", - "build": "npm run clean && npm run build:osx && npm run build:linux64 && npm run build:linux32", "build:osx": "npm run pack:osx && appdmg appdmg.json ../electron-bin/Node-RED-Electron_$npm_package_version.dmg", "build:linux32": "npm run pack:linux32 && fpm -s dir -t deb -f -n node-red-electron -v $npm_package_version -m conway@uk.ibm.com -a i386 -p ../electron-bin -C build/Node-RED-linux-ia32 --prefix=/opt/node-red --after-install=afterinst.sh ./", @@ -31,15 +28,15 @@ "url": "git+https://github.com/dceejay/electron-node-red.git" }, "dependencies": { + "express": "^4.15.3", "node-red": "*", - "node-red-dashboard": "*", + "node-red-contrib-play-audio": "*", "node-red-contrib-web-worldmap": "*", + "node-red-dashboard": "*", + "node-red-node-base64": "*", "node-red-node-geofence": "*", "node-red-node-random": "*", - "node-red-node-smooth": "*", - "node-red-contrib-play-audio": "*", - "node-red-node-base64": "*", - "express": "^4.15.4" + "node-red-node-smooth": "*" }, "keywords": [ "electron", @@ -47,8 +44,12 @@ "node-red" ], "contributors": [ - {"name":"Dave Conway-Jones"}, - {"name":"Nathanaël Lécaudé"} + { + "name": "Dave Conway-Jones" + }, + { + "name": "Nathanaël Lécaudé" + } ], "license": "Apache-2.0", "bugs": { @@ -56,7 +57,7 @@ }, "homepage": "https://github.com/dceejay/electron-node-red#readme", "devDependencies": { - "electron": "1.6.11", + "electron": "1.7.9", "electron-rebuild": "*", "electron-squirrel-startup": "*", "electron-winstaller": "2.5.2" From 17fc922a19522ca8baa1e7c3f47a21e016363694 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Thu, 15 Feb 2018 22:57:29 +0000 Subject: [PATCH 003/127] update electron package --- buildall | 2 ++ package.json | 22 +++++++++++----------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/buildall b/buildall index 5e0170e..114a5f0 100755 --- a/buildall +++ b/buildall @@ -10,6 +10,8 @@ rm -rf build/ npm run build:linux32 rm -rf build/ npm run build:linux64 +# rm -rf build/ +# npm run build:armv7l rm -rf build/ npm run build:win32 rm -rf build/ ../electron-bin/*.nupkg ../electron-bin/RELEASES diff --git a/package.json b/package.json index 7d662df..a5fe7ed 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "electron-node-red", - "version": "0.17.5", + "version": "0.18.3", "description": "Electron Node-RED application starter", "main": "main.js", "scripts": { @@ -12,8 +12,8 @@ "pack:osx": "electron-packager . Node-RED --icon=nodered.icns --platform=darwin --arch=x64 --out=build --overwrite", "pack:linux32": "electron-packager . Node-RED --icon=nodered.icns --platform=linux --arch=ia32 --out=build --overwrite && cp afterinst.sh build/Node-RED-linux-ia32/", "pack:linux64": "electron-packager . Node-RED --icon=nodered.icns --platform=linux --arch=x64 --out=build --overwrite && cp afterinst.sh build/Node-RED-linux-x64", - "pack:win32": "electron-packager . Node-RED --icon=nodered.icns --platform=win32 --arch=ia32 --out=build --asar=true --overwrite --win32metadata.CompanyName='IBM Corp.' --win32metadata.ProductName='Node-RED Electron'", - "pack:win64": "electron-packager . Node-RED --icon=nodered.icns --platform=win32 --arch=x64 --out=build --asar=true --overwrite --win32metadata.CompanyName='IBM Corp.' --win32metadata.ProductName='Node-RED Electron'", + "pack:win32": "electron-packager . Node-RED --icon=nodered.icns --platform=win32 --arch=ia32 --out=build --asar --overwrite --win32metadata.CompanyName='IBM Corp.' --win32metadata.ProductName='Node-RED Electron'", + "pack:win64": "electron-packager . Node-RED --icon=nodered.icns --platform=win32 --arch=x64 --out=build --asar --overwrite --win32metadata.CompanyName='IBM Corp.' --win32metadata.ProductName='Node-RED Electron'", "pack:armv7l": "electron-packager . Node-RED --icon=nodered.icns --platform=linux --arch=armv7l --out=build --overwrite && cp afterinst.sh build/Node-RED-linux-armv7l", "build": "npm run clean && npm run build:osx && npm run build:linux64 && npm run build:linux32", "build:osx": "npm run pack:osx && appdmg appdmg.json ../electron-bin/Node-RED-Electron_$npm_package_version.dmg", @@ -29,14 +29,14 @@ }, "dependencies": { "express": "^4.15.3", - "node-red": "*", - "node-red-contrib-play-audio": "*", - "node-red-contrib-web-worldmap": "*", - "node-red-dashboard": "*", - "node-red-node-base64": "*", + "node-red": "~0.18.3", + "node-red-contrib-play-audio": "~2.2.4", + "node-red-contrib-web-worldmap": "~1.1.9", + "node-red-dashboard": "~2.8.1", + "node-red-node-base64": "~0.1.1", "node-red-node-geofence": "*", - "node-red-node-random": "*", - "node-red-node-smooth": "*" + "node-red-node-random": "~0.1.0", + "node-red-node-smooth": "~0.1.0" }, "keywords": [ "electron", @@ -58,7 +58,7 @@ "homepage": "https://github.com/dceejay/electron-node-red#readme", "devDependencies": { "electron": "1.7.9", - "electron-rebuild": "*", + "electron-rebuild": "~1.7.3", "electron-squirrel-startup": "*", "electron-winstaller": "2.5.2" } From a385bdddb22360bfcf8639fdc9772ad5ddf462db Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Mon, 12 Mar 2018 17:24:10 +0000 Subject: [PATCH 004/127] Bump to 0.18.4 and latest dashboard --- package-lock.json | 4502 +++++++++++++++++++++++++++++++++++++++++++++ package.json | 12 +- 2 files changed, 4508 insertions(+), 6 deletions(-) create mode 100644 package-lock.json diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..865a4f3 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,4502 @@ +{ + "name": "electron_node_red", + "version": "0.18.4", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@types/node": { + "version": "7.0.48", + "resolved": "https://registry.npmjs.org/@types/node/-/node-7.0.48.tgz", + "integrity": "sha512-LLlXafM3BD52MH056tHxTXO8JFCnpJJQkdzIU3+m8ew+CXJY/5zIXgDNb4TK/QFvlI8QexLS5tL+sE0Qhegr1w==", + "dev": true + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "accepts": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz", + "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=", + "requires": { + "mime-types": "2.1.17", + "negotiator": "0.6.1" + } + }, + "addressparser": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/addressparser/-/addressparser-1.0.1.tgz", + "integrity": "sha1-R6++GiqSYhkdtoOOT9HTm0CCF0Y=" + }, + "after": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" + }, + "ajv": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.3.0.tgz", + "integrity": "sha1-RBT/dKUIecII7l/cgm4ywwNUnto=", + "requires": { + "co": "4.6.0", + "fast-deep-equal": "1.0.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "append-field": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/append-field/-/append-field-0.1.0.tgz", + "integrity": "sha1-bdxY+gg8e8VF08WZWygwzCNm1Eo=" + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + }, + "are-we-there-yet": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", + "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", + "requires": { + "delegates": "1.0.0", + "readable-stream": "2.3.3" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "1.0.3" + } + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "array-indexofobject": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/array-indexofobject/-/array-indexofobject-0.0.1.tgz", + "integrity": "sha1-qqEo5iybPDWAlFaMIZ/2T+SJ1Co=" + }, + "arraybuffer.slice": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz", + "integrity": "sha1-8zshWfBTKj8xB6JywMz70a0peco=" + }, + "asar": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/asar/-/asar-0.11.0.tgz", + "integrity": "sha1-uSbnksMV+MBIxDNx4yWwnJenZGQ=", + "dev": true, + "requires": { + "chromium-pickle-js": "0.1.0", + "commander": "2.11.0", + "cuint": "0.2.2", + "glob": "6.0.4", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "mksnapshot": "0.3.1" + }, + "dependencies": { + "glob": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", + "dev": true, + "requires": { + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + } + } + }, + "asn1": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + }, + "async": { + "version": "0.1.22", + "resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz", + "integrity": "sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE=" + }, + "async-limiter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", + "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + }, + "aws4": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=" + }, + "backo2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=" + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base64-arraybuffer": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=" + }, + "base64id": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", + "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=" + }, + "basic-auth": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.0.tgz", + "integrity": "sha1-AV2z81PgLlY3d1X5YnQuiYHnu7o=", + "requires": { + "safe-buffer": "5.1.1" + } + }, + "bcrypt": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-1.0.3.tgz", + "integrity": "sha512-pRyDdo73C8Nim3jwFJ7DWe3TZCgwDfWZ6nHS5LSdU77kWbj1frruvdndP02AOavtD4y8v6Fp2dolbHgp4SDrfg==", + "optional": true, + "requires": { + "nan": "2.6.2", + "node-pre-gyp": "0.6.36" + } + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } + }, + "bcryptjs": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", + "integrity": "sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms=" + }, + "better-assert": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", + "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", + "requires": { + "callsite": "1.0.0" + } + }, + "binary": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", + "integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=", + "dev": true, + "requires": { + "buffers": "0.1.1", + "chainsaw": "0.1.0" + } + }, + "bl": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.1.tgz", + "integrity": "sha1-ysMo977kVzDUBLaSID/LWQ4XLV4=", + "requires": { + "readable-stream": "2.3.3" + } + }, + "blob": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", + "integrity": "sha1-vPEwUspURj8w+fx+lbmkdjCpSSE=" + }, + "block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "requires": { + "inherits": "2.0.3" + } + }, + "bluebird": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", + "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==", + "dev": true + }, + "body-parser": { + "version": "1.18.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", + "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", + "requires": { + "bytes": "3.0.0", + "content-type": "1.0.4", + "debug": "2.6.9", + "depd": "1.1.1", + "http-errors": "1.6.2", + "iconv-lite": "0.4.19", + "on-finished": "2.3.0", + "qs": "6.5.1", + "raw-body": "2.3.2", + "type-is": "1.6.15" + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" + }, + "boom": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", + "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", + "requires": { + "hoek": "4.2.0" + } + }, + "brace-expansion": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "bufferjs": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/bufferjs/-/bufferjs-3.0.1.tgz", + "integrity": "sha1-BpLoKcsQoQVQ5kc5CwNesGw46O8=" + }, + "bufferlist": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/bufferlist/-/bufferlist-0.1.0.tgz", + "integrity": "sha1-Qr7y2JVztA+hCGuzng9TEBcNHd0=" + }, + "buffers": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", + "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=", + "dev": true + }, + "buildmail": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/buildmail/-/buildmail-2.0.0.tgz", + "integrity": "sha1-8LewpZ6aShtQZrv6BR0kjzgy7s4=", + "requires": { + "addressparser": "0.3.2", + "libbase64": "0.1.0", + "libmime": "1.2.0", + "libqp": "1.1.0", + "needle": "0.10.0" + }, + "dependencies": { + "addressparser": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/addressparser/-/addressparser-0.3.2.tgz", + "integrity": "sha1-WYc/Nej89sc2HBAjkmHXbhU0i7I=" + }, + "needle": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/needle/-/needle-0.10.0.tgz", + "integrity": "sha1-FqJNY/KmEVLrdMzh0Sr4XFB1d9Q=", + "requires": { + "debug": "2.6.9", + "iconv-lite": "0.4.19" + } + } + } + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "busboy": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz", + "integrity": "sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=", + "requires": { + "dicer": "0.2.5", + "readable-stream": "1.1.14" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" + }, + "callback-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/callback-stream/-/callback-stream-1.1.0.tgz", + "integrity": "sha1-RwGlEmbwbgbqpx/BcjOCLYdfSQg=", + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.3" + } + }, + "callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=" + }, + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, + "requires": { + "camelcase": "2.1.1", + "map-obj": "1.0.1" + } + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "cgi": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cgi/-/cgi-0.3.1.tgz", + "integrity": "sha1-h1HaZKHPGEnREFYxi3YNGs+6R9w=", + "requires": { + "debug": "2.6.9", + "extend": "2.0.1", + "header-stack": "0.0.2", + "stream-stack": "1.1.4" + }, + "dependencies": { + "extend": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-2.0.1.tgz", + "integrity": "sha1-HugBBonnOV/5RIJByYZSvHWagmA=" + } + } + }, + "chainsaw": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", + "integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=", + "dev": true, + "requires": { + "traverse": "0.3.9" + } + }, + "chalk": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", + "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "5.2.0" + } + }, + "cheerio": { + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz", + "integrity": "sha1-qbqoYKP5tZWmuBsahocxIe06Jp4=", + "requires": { + "css-select": "1.2.0", + "dom-serializer": "0.1.0", + "entities": "1.1.1", + "htmlparser2": "3.9.2", + "lodash.assignin": "4.2.0", + "lodash.bind": "4.2.1", + "lodash.defaults": "4.2.0", + "lodash.filter": "4.6.0", + "lodash.flatten": "4.4.0", + "lodash.foreach": "4.5.0", + "lodash.map": "4.6.0", + "lodash.merge": "4.6.1", + "lodash.pick": "4.4.0", + "lodash.reduce": "4.6.0", + "lodash.reject": "4.6.0", + "lodash.some": "4.6.0" + } + }, + "chromium-pickle-js": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.1.0.tgz", + "integrity": "sha1-HUixB9ghJqLz4hHC6iX4A7pVGyE=", + "dev": true + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "2.0.0" + } + }, + "cli-spinners": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.1.0.tgz", + "integrity": "sha1-8YR7FohE2RemceudFH499JfJDQY=", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" + } + }, + "clone": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=" + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + }, + "color-convert": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "colors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", + "dev": true + }, + "combined-stream": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "requires": { + "delayed-stream": "1.0.0" + } + }, + "commander": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", + "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==" + }, + "commist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/commist/-/commist-1.0.0.tgz", + "integrity": "sha1-wMNSUBz29S6RJOPvicmAbiAi6+8=", + "requires": { + "leven": "1.0.2", + "minimist": "1.2.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + } + } + }, + "component-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", + "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=" + }, + "component-emitter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz", + "integrity": "sha1-KWWU8nU9qmOZbSrwjRWpURbJrsM=" + }, + "component-inherit": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", + "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", + "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.3", + "typedarray": "0.0.6" + } + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + }, + "content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" + }, + "cookie-parser": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.3.tgz", + "integrity": "sha1-D+MfoZ0AC5X0qt8fU/3CuKIDuqU=", + "requires": { + "cookie": "0.3.1", + "cookie-signature": "1.0.6" + } + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "cookies": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.7.1.tgz", + "integrity": "sha1-fIphX1SBxhq58WyDNzG8uPZjuZs=", + "requires": { + "depd": "1.1.1", + "keygrip": "1.0.2" + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "cors": { + "version": "2.8.4", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.4.tgz", + "integrity": "sha1-K9OB8usgECAQXNUOpZ2mMJBpRoY=", + "requires": { + "object-assign": "4.1.1", + "vary": "1.1.2" + } + }, + "crc": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/crc/-/crc-3.4.4.tgz", + "integrity": "sha1-naHpgOO9RPxck79as9ozeNheRms=" + }, + "cron": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/cron/-/cron-1.3.0.tgz", + "integrity": "sha512-K/SF7JlgMmNjcThWxkKvsHhey2EDB4CeOEWJ9aXWj3fbQJppsvTPIeyLdHfNq5IbbsMUUjRW1nr5dSO95f2E4w==", + "requires": { + "moment-timezone": "0.5.14" + } + }, + "cryptiles": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", + "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", + "requires": { + "boom": "5.2.0" + }, + "dependencies": { + "boom": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", + "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", + "requires": { + "hoek": "4.2.0" + } + } + } + }, + "css-select": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", + "requires": { + "boolbase": "1.0.0", + "css-what": "2.1.0", + "domutils": "1.5.1", + "nth-check": "1.0.1" + } + }, + "css-what": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz", + "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=" + }, + "cuint": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz", + "integrity": "sha1-QICG1AlVDCYxFVYZ6fp7ytw7mRs=", + "dev": true + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, + "requires": { + "array-find-index": "1.0.2" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "1.0.0" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decompress-zip": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/decompress-zip/-/decompress-zip-0.3.0.tgz", + "integrity": "sha1-rjvLfjTGWHmt/nfhnDD4ZgK0vbA=", + "dev": true, + "requires": { + "binary": "0.3.0", + "graceful-fs": "4.1.11", + "mkpath": "0.1.0", + "nopt": "3.0.6", + "q": "1.5.1", + "readable-stream": "1.1.14", + "touch": "0.0.3" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "deep-extend": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", + "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=" + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + }, + "depd": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", + "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=" + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", + "dev": true + }, + "dicer": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz", + "integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=", + "requires": { + "readable-stream": "1.1.14", + "streamsearch": "0.1.2" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, + "dom-serializer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", + "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", + "requires": { + "domelementtype": "1.1.3", + "entities": "1.1.1" + }, + "dependencies": { + "domelementtype": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", + "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=" + } + } + }, + "domelementtype": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", + "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=" + }, + "domhandler": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.1.tgz", + "integrity": "sha1-iS5HAAqZvlW783dP/qBWHYh5wlk=", + "requires": { + "domelementtype": "1.3.0" + } + }, + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "requires": { + "dom-serializer": "0.1.0", + "domelementtype": "1.3.0" + } + }, + "duplexify": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.3.tgz", + "integrity": "sha512-g8ID9OroF9hKt2POf8YLayy+9594PzmM3scI00/uBXocX3TWNgoB67hjzkFe9ITAbQOne/lLdBxHXvYUM4ZgGA==", + "requires": { + "end-of-stream": "1.4.1", + "inherits": "2.0.3", + "readable-stream": "2.3.3", + "stream-shift": "1.0.0" + } + }, + "ecc-jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "electron": { + "version": "1.7.9", + "resolved": "https://registry.npmjs.org/electron/-/electron-1.7.9.tgz", + "integrity": "sha1-rdVOn4+D7QL2UZ7BATX2mLGTNs8=", + "dev": true, + "requires": { + "@types/node": "7.0.48", + "electron-download": "3.3.0", + "extract-zip": "1.6.6" + } + }, + "electron-download": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/electron-download/-/electron-download-3.3.0.tgz", + "integrity": "sha1-LP1U1pZsAZxNSa1l++Zcyc3vaMg=", + "dev": true, + "requires": { + "debug": "2.6.9", + "fs-extra": "0.30.0", + "home-path": "1.0.5", + "minimist": "1.2.0", + "nugget": "2.0.1", + "path-exists": "2.1.0", + "rc": "1.2.2", + "semver": "5.3.0", + "sumchecker": "1.3.1" + }, + "dependencies": { + "fs-extra": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", + "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "2.4.0", + "klaw": "1.3.1", + "path-is-absolute": "1.0.1", + "rimraf": "2.6.2" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "electron-rebuild": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-1.7.3.tgz", + "integrity": "sha1-JK4GrZ3WHLfk1oiWH0kRjEChEOs=", + "dev": true, + "requires": { + "colors": "1.1.2", + "debug": "2.6.9", + "detect-libc": "1.0.3", + "fs-extra": "3.0.1", + "node-abi": "2.2.0", + "node-gyp": "3.6.2", + "ora": "1.4.0", + "rimraf": "2.6.2", + "spawn-rx": "2.0.12", + "yargs": "7.1.0" + } + }, + "electron-squirrel-startup": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/electron-squirrel-startup/-/electron-squirrel-startup-1.0.0.tgz", + "integrity": "sha1-GbTlWTP6Dvj1VnhLnGYPdyVGoLg=", + "dev": true, + "requires": { + "debug": "2.6.9" + } + }, + "electron-winstaller": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/electron-winstaller/-/electron-winstaller-2.5.2.tgz", + "integrity": "sha1-B7ijoFVrhtDfQE6kCqz7cbJg03M=", + "dev": true, + "requires": { + "asar": "0.11.0", + "bluebird": "3.5.1", + "debug": "2.6.9", + "fs-extra": "0.26.7", + "lodash.template": "4.4.0", + "temp": "0.8.3" + }, + "dependencies": { + "fs-extra": { + "version": "0.26.7", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.26.7.tgz", + "integrity": "sha1-muH92UiXeY7at20JGM9C0MMYT6k=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "2.4.0", + "klaw": "1.3.1", + "path-is-absolute": "1.0.1", + "rimraf": "2.6.2" + } + } + } + }, + "encodeurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", + "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=" + }, + "encoding": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "requires": { + "iconv-lite": "0.4.19" + } + }, + "end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "requires": { + "once": "1.4.0" + } + }, + "engine.io": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-1.8.5.tgz", + "integrity": "sha512-j1DWIcktw4hRwrv6nWx++5nFH2X64x16MAG2P0Lmi5Dvdfi3I+Jhc7JKJIdAmDJa+5aZ/imHV7dWRPy2Cqjh3A==", + "requires": { + "accepts": "1.3.3", + "base64id": "1.0.0", + "cookie": "0.3.1", + "debug": "2.3.3", + "engine.io-parser": "1.3.2", + "ws": "1.1.5" + }, + "dependencies": { + "accepts": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", + "integrity": "sha1-w8p0NJOGSMPg2cHjKN1otiLChMo=", + "requires": { + "mime-types": "2.1.17", + "negotiator": "0.6.1" + } + }, + "debug": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", + "requires": { + "ms": "0.7.2" + } + }, + "ms": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=" + } + } + }, + "engine.io-client": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.8.5.tgz", + "integrity": "sha512-AYTgHyeVUPitsseqjoedjhYJapNVoSPShbZ+tEUX9/73jgZ/Z3sUlJf9oYgdEBBdVhupUpUqSxH0kBCXlQnmZg==", + "requires": { + "component-emitter": "1.2.1", + "component-inherit": "0.0.3", + "debug": "2.3.3", + "engine.io-parser": "1.3.2", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parsejson": "0.0.3", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "ws": "1.1.5", + "xmlhttprequest-ssl": "1.5.3", + "yeast": "0.1.2" + }, + "dependencies": { + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + }, + "debug": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", + "requires": { + "ms": "0.7.2" + } + }, + "ms": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=" + } + } + }, + "engine.io-parser": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.3.2.tgz", + "integrity": "sha1-k3sHnwAH0Ik+xW1GyyILjLQ1Igo=", + "requires": { + "after": "0.8.2", + "arraybuffer.slice": "0.0.6", + "base64-arraybuffer": "0.1.5", + "blob": "0.0.4", + "has-binary": "0.1.7", + "wtf-8": "1.0.0" + } + }, + "entities": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", + "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=" + }, + "error-ex": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "dev": true, + "requires": { + "is-arrayish": "0.2.1" + } + }, + "es6-promise": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.1.1.tgz", + "integrity": "sha512-OaU1hHjgJf+b0NzsxCg7NdIYERD6Hy/PEmFLTjw+b65scuisG3Kt4QoTvJ66BBkPZ581gr0kpoVzKnxniM8nng==", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "esprima": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "express": { + "version": "4.16.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.16.2.tgz", + "integrity": "sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w=", + "requires": { + "accepts": "1.3.4", + "array-flatten": "1.1.1", + "body-parser": "1.18.2", + "content-disposition": "0.5.2", + "content-type": "1.0.4", + "cookie": "0.3.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "1.1.1", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "etag": "1.8.1", + "finalhandler": "1.1.0", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "1.1.2", + "on-finished": "2.3.0", + "parseurl": "1.3.2", + "path-to-regexp": "0.1.7", + "proxy-addr": "2.0.2", + "qs": "6.5.1", + "range-parser": "1.2.0", + "safe-buffer": "5.1.1", + "send": "0.16.1", + "serve-static": "1.13.1", + "setprototypeof": "1.1.0", + "statuses": "1.3.1", + "type-is": "1.6.15", + "utils-merge": "1.0.1", + "vary": "1.1.2" + } + }, + "express-session": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.15.6.tgz", + "integrity": "sha512-r0nrHTCYtAMrFwZ0kBzZEXa1vtPVrw0dKvGSrKP4dahwBQ1BJpF2/y1Pp4sCD/0kvxV4zZeclyvfmw0B4RMJQA==", + "requires": { + "cookie": "0.3.1", + "cookie-signature": "1.0.6", + "crc": "3.4.4", + "debug": "2.6.9", + "depd": "1.1.1", + "on-headers": "1.0.1", + "parseurl": "1.3.2", + "uid-safe": "2.1.5", + "utils-merge": "1.0.1" + } + }, + "extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" + }, + "extract-zip": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.6.tgz", + "integrity": "sha1-EpDt6NINCHK0Kf0/NRyhKOxe+Fw=", + "dev": true, + "requires": { + "concat-stream": "1.6.0", + "debug": "2.6.9", + "mkdirp": "0.5.0", + "yauzl": "2.4.1" + }, + "dependencies": { + "mkdirp": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz", + "integrity": "sha1-HXMHam35hs2TROFecfzAWkyavxI=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "fast-deep-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", + "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=" + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" + }, + "faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "requires": { + "websocket-driver": "0.7.0" + } + }, + "fd-slicer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", + "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", + "dev": true, + "requires": { + "pend": "1.2.0" + } + }, + "feedparser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/feedparser/-/feedparser-1.1.3.tgz", + "integrity": "sha1-C3Jfa0y+SybVGLrsDQEK0CAVbIs=", + "requires": { + "addressparser": "0.1.3", + "array-indexofobject": "0.0.1", + "readable-stream": "1.0.34", + "sax": "0.6.1" + }, + "dependencies": { + "addressparser": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/addressparser/-/addressparser-0.1.3.tgz", + "integrity": "sha1-npq0PSV+GueE4d9fWAyfUkD1iHQ=" + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, + "finalhandler": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", + "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", + "requires": { + "debug": "2.6.9", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "on-finished": "2.3.0", + "parseurl": "1.3.2", + "statuses": "1.3.1", + "unpipe": "1.0.0" + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } + }, + "follow-redirects": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.3.0.tgz", + "integrity": "sha1-9oSHH8EW0uMp/aVe9naH9Pq8kFw=", + "requires": { + "debug": "3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + } + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "form-data": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz", + "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=", + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.17" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "fs-extra": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", + "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "3.0.1", + "universalify": "0.1.1" + }, + "dependencies": { + "jsonfile": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", + "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + } + } + }, + "fs.notify": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/fs.notify/-/fs.notify-0.0.4.tgz", + "integrity": "sha1-YyhNRaNLUs5gCIpt2+xbd208AT0=", + "requires": { + "async": "0.1.22", + "retry": "0.6.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fstream": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", + "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "requires": { + "graceful-fs": "4.1.11", + "inherits": "2.0.3", + "mkdirp": "0.5.1", + "rimraf": "2.6.2" + } + }, + "fstream-ignore": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", + "integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=", + "optional": true, + "requires": { + "fstream": "1.0.11", + "inherits": "2.0.3", + "minimatch": "3.0.4" + } + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "requires": { + "aproba": "1.2.0", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" + } + }, + "generate-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", + "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=" + }, + "generate-object-property": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", + "requires": { + "is-property": "1.0.2" + } + }, + "geolib": { + "version": "2.0.24", + "resolved": "https://registry.npmjs.org/geolib/-/geolib-2.0.24.tgz", + "integrity": "sha512-NR0AyYyEnGrFS9JvSFmmotQDxVCORJgDHdvBwSatxl5aHarOLMh3KuGI83bCvCfObjfoEiDe8Ung8GGLGAtthw==" + }, + "get-caller-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", + "dev": true + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "1.0.0" + } + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "requires": { + "is-glob": "3.1.0", + "path-dirname": "1.0.2" + } + }, + "glob-stream": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", + "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", + "requires": { + "extend": "3.0.1", + "glob": "7.1.2", + "glob-parent": "3.1.0", + "is-negated-glob": "1.0.0", + "ordered-read-streams": "1.0.1", + "pumpify": "1.4.0", + "readable-stream": "2.3.3", + "remove-trailing-separator": "1.1.0", + "to-absolute-glob": "2.0.2", + "unique-stream": "2.2.1" + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + }, + "har-validator": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", + "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", + "requires": { + "ajv": "5.3.0", + "har-schema": "2.0.0" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "requires": { + "ansi-regex": "2.1.1" + } + }, + "has-binary": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.7.tgz", + "integrity": "sha1-aOYesWIQyVRaClzOBqhzkS/h5ow=", + "requires": { + "isarray": "0.0.1" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + } + } + }, + "has-cors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", + "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + }, + "hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=" + }, + "hawk": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", + "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", + "requires": { + "boom": "4.3.1", + "cryptiles": "3.1.2", + "hoek": "4.2.0", + "sntp": "2.1.0" + } + }, + "header-stack": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/header-stack/-/header-stack-0.0.2.tgz", + "integrity": "sha1-Rg1ysW04ZSzkUeIyU2lxsx6E1g8=", + "requires": { + "bufferjs": "3.0.1", + "bufferlist": "0.1.0", + "stream-stack": "1.1.4" + } + }, + "help-me": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/help-me/-/help-me-1.1.0.tgz", + "integrity": "sha1-jy1QjQYAtKRW2i8IZVbn5cBWo8Y=", + "requires": { + "callback-stream": "1.1.0", + "glob-stream": "6.1.0", + "through2": "2.0.3", + "xtend": "4.0.1" + } + }, + "hoek": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz", + "integrity": "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ==" + }, + "home-path": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/home-path/-/home-path-1.0.5.tgz", + "integrity": "sha1-eIspgVsS1Tus9XVkhHbm+QQdEz8=", + "dev": true + }, + "hosted-git-info": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", + "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", + "dev": true + }, + "htmlparser2": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz", + "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", + "requires": { + "domelementtype": "1.3.0", + "domhandler": "2.4.1", + "domutils": "1.5.1", + "entities": "1.1.1", + "inherits": "2.0.3", + "readable-stream": "2.3.3" + } + }, + "http-errors": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", + "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", + "requires": { + "depd": "1.1.1", + "inherits": "2.0.3", + "setprototypeof": "1.0.3", + "statuses": "1.3.1" + }, + "dependencies": { + "setprototypeof": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", + "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=" + } + } + }, + "http-parser-js": { + "version": "0.4.10", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.10.tgz", + "integrity": "sha1-ksnBN0w1CF912zWexWzCV8u5P6Q=" + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "1.0.0", + "jsprim": "1.4.1", + "sshpk": "1.13.1" + } + }, + "i18next": { + "version": "1.10.6", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-1.10.6.tgz", + "integrity": "sha1-/d2LSRUCxIlnpiljvHIv+JfN3qA=", + "requires": { + "cookies": "0.7.1", + "i18next-client": "1.10.3", + "json5": "0.2.0" + } + }, + "i18next-client": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/i18next-client/-/i18next-client-1.10.3.tgz", + "integrity": "sha1-dtA1NVftkNHnqHdU1QBNP3gB/ek=" + }, + "iconv-lite": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" + }, + "imap": { + "version": "0.8.19", + "resolved": "https://registry.npmjs.org/imap/-/imap-0.8.19.tgz", + "integrity": "sha1-NniHOTSrCc6mukh0HyhNoq9Z2NU=", + "requires": { + "readable-stream": "1.1.14", + "utf7": "1.0.2" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "ini": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", + "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=" + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true + }, + "ipaddr.js": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.5.2.tgz", + "integrity": "sha1-1LUFvemUaYfM8PxY2QEP+WB+P6A=" + }, + "is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "requires": { + "is-relative": "1.0.0", + "is-windows": "1.0.2" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-builtin-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "dev": true, + "requires": { + "builtin-modules": "1.1.1" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "requires": { + "is-extglob": "2.1.1" + } + }, + "is-my-ip-valid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz", + "integrity": "sha512-gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ==" + }, + "is-my-json-valid": { + "version": "2.17.2", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.17.2.tgz", + "integrity": "sha512-IBhBslgngMQN8DDSppmgDv7RNrlFotuuDsKcrCP3+HbFaVivIBU7u9oiiErw8sH4ynx3+gOGQ3q2otkgiSi6kg==", + "requires": { + "generate-function": "2.0.0", + "generate-object-property": "1.2.0", + "is-my-ip-valid": "1.0.0", + "jsonpointer": "4.0.1", + "xtend": "4.0.1" + } + }, + "is-negated-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", + "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=" + }, + "is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=" + }, + "is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "requires": { + "is-unc-path": "1.0.0" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "requires": { + "unc-path-regex": "0.1.2" + } + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "js-yaml": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz", + "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", + "requires": { + "argparse": "1.0.10", + "esprima": "4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "optional": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" + }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "requires": { + "jsonify": "0.0.0" + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "json3": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", + "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=" + }, + "json5": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.2.0.tgz", + "integrity": "sha1-ttcDXHDEVw+IPH7cdZ3jrgPbM0M=" + }, + "jsonata": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/jsonata/-/jsonata-1.5.0.tgz", + "integrity": "sha512-Bc+T0WspLUArkLqp9Bgewja92LukPRlyS1hsjGITQj1OLxwEi+yxpVfcpn2NBJePHJb6CdqJsu/QjPGiWmez8A==" + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" + }, + "jsonpointer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", + "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=" + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "keygrip": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.0.2.tgz", + "integrity": "sha1-rTKXxVcGneqLz+ek+kkbdcXd65E=" + }, + "klaw": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", + "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true, + "requires": { + "invert-kv": "1.0.0" + } + }, + "leven": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/leven/-/leven-1.0.2.tgz", + "integrity": "sha1-kUS27ryl8dBoAWnxpncNzqYLdcM=" + }, + "libbase64": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/libbase64/-/libbase64-0.1.0.tgz", + "integrity": "sha1-YjUag5VjrF/1vSbxL2Dpgwu3UeY=" + }, + "libmime": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/libmime/-/libmime-1.2.0.tgz", + "integrity": "sha1-jYS087Ils3BEECNu9JSQZDa6dCs=", + "requires": { + "iconv-lite": "0.4.19", + "libbase64": "0.1.0", + "libqp": "1.1.0" + } + }, + "libqp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/libqp/-/libqp-1.1.0.tgz", + "integrity": "sha1-9ebgatdLeU+1tbZpiL9yjvHe2+g=" + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==" + }, + "lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", + "dev": true + }, + "lodash.assign": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", + "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", + "dev": true + }, + "lodash.assignin": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assignin/-/lodash.assignin-4.2.0.tgz", + "integrity": "sha1-uo31+4QesKPoBEIysOJjqNxqKKI=" + }, + "lodash.bind": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/lodash.bind/-/lodash.bind-4.2.1.tgz", + "integrity": "sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU=" + }, + "lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=" + }, + "lodash.filter": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.filter/-/lodash.filter-4.6.0.tgz", + "integrity": "sha1-ZosdSYFgOuHMWm+nYBQ+SAtMSs4=" + }, + "lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=" + }, + "lodash.foreach": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz", + "integrity": "sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM=" + }, + "lodash.map": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", + "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=" + }, + "lodash.merge": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.1.tgz", + "integrity": "sha512-AOYza4+Hf5z1/0Hztxpm2/xiPZgi/cjMqdnKTUWTBSKchJlxXXuUSxCCl8rJlf4g6yww/j6mA8nC8Hw/EZWxKQ==" + }, + "lodash.pick": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", + "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=" + }, + "lodash.reduce": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz", + "integrity": "sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs=" + }, + "lodash.reject": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.reject/-/lodash.reject-4.6.0.tgz", + "integrity": "sha1-gNZJLcFHCGS79YNTO2UfQqn1JBU=" + }, + "lodash.some": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz", + "integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=" + }, + "lodash.template": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz", + "integrity": "sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A=", + "dev": true, + "requires": { + "lodash._reinterpolate": "3.0.0", + "lodash.templatesettings": "4.1.0" + } + }, + "lodash.templatesettings": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz", + "integrity": "sha1-K01OlbpEDZFf8IvImeRVNmZxMxY=", + "dev": true, + "requires": { + "lodash._reinterpolate": "3.0.0" + } + }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "dev": true, + "requires": { + "chalk": "2.3.1" + } + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, + "requires": { + "currently-unhandled": "0.4.1", + "signal-exit": "3.0.2" + } + }, + "lru-cache": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", + "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", + "requires": { + "pseudomap": "1.0.2", + "yallist": "2.1.2" + } + }, + "mailcomposer": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mailcomposer/-/mailcomposer-2.1.0.tgz", + "integrity": "sha1-plMYIomWFP7omckiJtgeK5y7GD0=", + "requires": { + "buildmail": "2.0.0", + "libmime": "1.2.0" + } + }, + "mailparser": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/mailparser/-/mailparser-0.6.2.tgz", + "integrity": "sha1-A8SGA5vfTfbNO2rcqqxBB9/bwGg=", + "requires": { + "encoding": "0.1.12", + "mime": "1.4.1", + "mimelib": "0.3.1", + "uue": "3.1.1" + } + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "memorystore": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/memorystore/-/memorystore-1.6.0.tgz", + "integrity": "sha1-H7X7Xwsu3xrdGEkX6RjwlKn/NGU=", + "requires": { + "debug": "3.1.0", + "lru-cache": "4.1.1" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + } + } + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "requires": { + "camelcase-keys": "2.1.0", + "decamelize": "1.2.0", + "loud-rejection": "1.6.0", + "map-obj": "1.0.1", + "minimist": "1.2.0", + "normalize-package-data": "2.4.0", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "redent": "1.0.0", + "trim-newlines": "1.0.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" + }, + "mime-db": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", + "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=" + }, + "mime-types": { + "version": "2.1.17", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", + "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", + "requires": { + "mime-db": "1.30.0" + } + }, + "mimelib": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/mimelib/-/mimelib-0.3.1.tgz", + "integrity": "sha1-eHrdJBXYJ6yzr27EvKHqlZZBiFM=", + "requires": { + "addressparser": "1.0.1", + "encoding": "0.1.12" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "1.1.8" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + } + }, + "mkpath": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/mkpath/-/mkpath-0.1.0.tgz", + "integrity": "sha1-dVSm+Nhxg0zJe1RisSLEwSTW3pE=", + "dev": true + }, + "mksnapshot": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/mksnapshot/-/mksnapshot-0.3.1.tgz", + "integrity": "sha1-JQHAVldDbXQs6Vik/5LHfkDdN+Y=", + "dev": true, + "requires": { + "decompress-zip": "0.3.0", + "fs-extra": "0.26.7", + "request": "2.83.0" + }, + "dependencies": { + "fs-extra": { + "version": "0.26.7", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.26.7.tgz", + "integrity": "sha1-muH92UiXeY7at20JGM9C0MMYT6k=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "2.4.0", + "klaw": "1.3.1", + "path-is-absolute": "1.0.1", + "rimraf": "2.6.2" + } + } + } + }, + "moment": { + "version": "2.20.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.20.1.tgz", + "integrity": "sha512-Yh9y73JRljxW5QxN08Fner68eFLxM5ynNOAw2LbIB1YAGeQzZT8QFSUvkAz609Zf+IHhhaUxqZK8dG3W/+HEvg==" + }, + "moment-timezone": { + "version": "0.5.14", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.14.tgz", + "integrity": "sha1-TrOP+VOLgBCLpGekWPPtQmjM/LE=", + "requires": { + "moment": "2.20.1" + } + }, + "mqtt": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/mqtt/-/mqtt-2.15.1.tgz", + "integrity": "sha512-wcU1Ec/PqdgmWZ8InKd9298UlHbsL4ujnUdkkN1JIee0HI1Qe+JvZhO66qCYQKEH+U2XsJMcr9GncQPKUEfmRw==", + "requires": { + "commist": "1.0.0", + "concat-stream": "1.6.0", + "end-of-stream": "1.4.1", + "help-me": "1.1.0", + "inherits": "2.0.3", + "minimist": "1.2.0", + "mqtt-packet": "5.4.0", + "pump": "2.0.1", + "readable-stream": "2.3.3", + "reinterval": "1.1.0", + "split2": "2.2.0", + "websocket-stream": "5.1.1", + "xtend": "4.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + } + } + }, + "mqtt-packet": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/mqtt-packet/-/mqtt-packet-5.4.0.tgz", + "integrity": "sha512-ziN7uVysLdn7fYbOhEaKOhcZC3yIRTTakY4TFd2w+UvZIx9dPr8NCqbBYoC4WYDlzWHTn5EqR5x20pC+K24Ymg==", + "requires": { + "bl": "1.2.1", + "inherits": "2.0.3", + "process-nextick-args": "1.0.7", + "safe-buffer": "5.1.1" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "multer": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.3.0.tgz", + "integrity": "sha1-CSsmcPaEb6SRSWXvyM+Uwg/sbNI=", + "requires": { + "append-field": "0.1.0", + "busboy": "0.2.14", + "concat-stream": "1.6.0", + "mkdirp": "0.5.1", + "object-assign": "3.0.0", + "on-finished": "2.3.0", + "type-is": "1.6.15", + "xtend": "4.0.1" + }, + "dependencies": { + "object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=" + } + } + }, + "mustache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-2.3.0.tgz", + "integrity": "sha1-QCj3d4sXcIpImTCm5SrDvKDaQdA=" + }, + "nan": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz", + "integrity": "sha1-5P805slf37WuzAjeZZb0NgWn20U=", + "optional": true + }, + "needle": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/needle/-/needle-0.11.0.tgz", + "integrity": "sha1-AqcbAI6vfVWuifuf12hbe4jXvCk=", + "requires": { + "debug": "2.6.9", + "iconv-lite": "0.4.19" + } + }, + "negotiator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" + }, + "node-abi": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.2.0.tgz", + "integrity": "sha512-FqVC0WNNL8fQWQK3GYTESfwZXZKDbSIiEEIvufq7HV6Lj0IDDZRVa4CU/KTA0JVlqY9eTDSuPiC8FS9UfGVuzA==", + "dev": true, + "requires": { + "semver": "5.5.0" + }, + "dependencies": { + "semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "dev": true + } + } + }, + "node-gyp": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.6.2.tgz", + "integrity": "sha1-m/vlRWIoYoSDjnUOrAUpWFP6HGA=", + "dev": true, + "requires": { + "fstream": "1.0.11", + "glob": "7.1.2", + "graceful-fs": "4.1.11", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "nopt": "3.0.6", + "npmlog": "4.1.2", + "osenv": "0.1.4", + "request": "2.83.0", + "rimraf": "2.6.2", + "semver": "5.3.0", + "tar": "2.2.1", + "which": "1.3.0" + } + }, + "node-pre-gyp": { + "version": "0.6.36", + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.36.tgz", + "integrity": "sha1-22BBEst04NR3VU6bUFsXq936t4Y=", + "optional": true, + "requires": { + "mkdirp": "0.5.1", + "nopt": "4.0.1", + "npmlog": "4.1.2", + "rc": "1.2.2", + "request": "2.83.0", + "rimraf": "2.6.2", + "semver": "5.3.0", + "tar": "2.2.1", + "tar-pack": "3.4.1" + }, + "dependencies": { + "nopt": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "optional": true, + "requires": { + "abbrev": "1.1.1", + "osenv": "0.1.4" + } + } + } + }, + "node-red": { + "version": "0.18.4", + "resolved": "https://registry.npmjs.org/node-red/-/node-red-0.18.4.tgz", + "integrity": "sha512-X8JZTsZou2AyoCzNbeooRm+ZDq9lCk9b+v5V5FSPzSO/XkfVEVAXoAaLB5Tt338Mx2ky0/uGQy9bXdztUOAiGg==", + "requires": { + "basic-auth": "2.0.0", + "bcrypt": "1.0.3", + "bcryptjs": "2.4.3", + "body-parser": "1.18.2", + "cheerio": "0.22.0", + "clone": "2.1.1", + "cookie": "0.3.1", + "cookie-parser": "1.4.3", + "cors": "2.8.4", + "cron": "1.3.0", + "express": "4.16.2", + "express-session": "1.15.6", + "follow-redirects": "1.3.0", + "fs-extra": "5.0.0", + "fs.notify": "0.0.4", + "hash-sum": "1.0.2", + "i18next": "1.10.6", + "is-utf8": "0.2.1", + "js-yaml": "3.10.0", + "json-stringify-safe": "5.0.1", + "jsonata": "1.5.0", + "media-typer": "0.3.0", + "memorystore": "1.6.0", + "mqtt": "2.15.1", + "multer": "1.3.0", + "mustache": "2.3.0", + "node-red-node-email": "0.1.24", + "node-red-node-feedparser": "0.1.8", + "node-red-node-rbe": "0.2.1", + "node-red-node-twitter": "0.1.12", + "nopt": "4.0.1", + "oauth2orize": "1.11.0", + "on-headers": "1.0.1", + "passport": "0.4.0", + "passport-http-bearer": "1.0.1", + "passport-oauth2-client-password": "0.1.2", + "raw-body": "2.3.2", + "semver": "5.4.1", + "sentiment": "2.1.0", + "uglify-js": "3.3.6", + "when": "3.7.8", + "ws": "1.1.5", + "xml2js": "0.4.19" + }, + "dependencies": { + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "requires": { + "graceful-fs": "4.1.11" + } + }, + "nopt": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "requires": { + "abbrev": "1.1.1", + "osenv": "0.1.4" + } + }, + "semver": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==" + } + } + }, + "node-red-contrib-play-audio": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/node-red-contrib-play-audio/-/node-red-contrib-play-audio-2.2.4.tgz", + "integrity": "sha512-zyW7vnlut42tG6Tu5ee2mpwLOfVjdyQheDk/Mmrg3V8S+f4MjDCtIRnqlWmOfeV5V4zSyCtxG88pGghdI+/MCw==" + }, + "node-red-contrib-web-worldmap": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/node-red-contrib-web-worldmap/-/node-red-contrib-web-worldmap-1.1.9.tgz", + "integrity": "sha512-3zEbkhR8ASfYgxS5MNQuj4psUKnQdy6ylBtDscLrpuVCZXyQ0QhtMsKOoShy7vuI9obT7AZjs1UKl/68Vd/C/w==", + "requires": { + "cgi": "0.3.1", + "express": "4.16.2", + "sockjs": "0.3.19" + } + }, + "node-red-dashboard": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.8.2.tgz", + "integrity": "sha512-15bru01uz9bUMcSMrejqM/QEt8IslB9tGfpvQ7VWFcz5txVe3GVw0IVuPfbm/sQRlUdNHt3QlHwkPJewo8NTqg==", + "requires": { + "serve-static": "1.13.2", + "socket.io": "1.7.4" + }, + "dependencies": { + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "send": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "requires": { + "debug": "2.6.9", + "depd": "1.1.2", + "destroy": "1.0.4", + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "etag": "1.8.1", + "fresh": "0.5.2", + "http-errors": "1.6.2", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "2.3.0", + "range-parser": "1.2.0", + "statuses": "1.4.0" + } + }, + "serve-static": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", + "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", + "requires": { + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "parseurl": "1.3.2", + "send": "0.16.2" + } + }, + "statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" + } + } + }, + "node-red-node-base64": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/node-red-node-base64/-/node-red-node-base64-0.1.1.tgz", + "integrity": "sha512-QICCrW+ZrMqj4i0zKIxDsPVGYvi64Gbh3eg/iIoITQ8X/4FIqNc/QhrbUzbu8EShjB2NXFV94uq9ACt3avyOFQ==" + }, + "node-red-node-email": { + "version": "0.1.24", + "resolved": "https://registry.npmjs.org/node-red-node-email/-/node-red-node-email-0.1.24.tgz", + "integrity": "sha1-uhLHKwGznjPzdcy/QyGxY0Jej7I=", + "requires": { + "imap": "0.8.19", + "mailparser": "0.6.2", + "nodemailer": "1.11.0", + "poplib": "0.1.7" + } + }, + "node-red-node-feedparser": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/node-red-node-feedparser/-/node-red-node-feedparser-0.1.8.tgz", + "integrity": "sha1-Vs9vabxtI1V/hifuY7dMHKqFxls=", + "requires": { + "feedparser": "1.1.3", + "request": "2.74.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "assert-plus": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=" + }, + "async": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", + "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", + "requires": { + "lodash": "4.17.5" + } + }, + "aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=" + }, + "bl": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.1.2.tgz", + "integrity": "sha1-/cqHGplxOqANGeO7ukHER4emU5g=", + "requires": { + "readable-stream": "2.0.6" + } + }, + "boom": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "requires": { + "hoek": "2.16.3" + } + }, + "caseless": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", + "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=" + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + } + }, + "cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "requires": { + "boom": "2.10.1" + } + }, + "form-data": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.1.tgz", + "integrity": "sha1-rjFduaSQf6BlUCMEpm13M0de43w=", + "requires": { + "async": "2.6.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.17" + } + }, + "har-validator": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", + "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", + "requires": { + "chalk": "1.1.3", + "commander": "2.11.0", + "is-my-json-valid": "2.17.2", + "pinkie-promise": "2.0.1" + } + }, + "hawk": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "requires": { + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" + } + }, + "hoek": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" + }, + "http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.4.1", + "sshpk": "1.13.1" + } + }, + "node-uuid": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz", + "integrity": "sha1-sEDrCSOWivq/jTL7HxfxFn/auQc=" + }, + "qs": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.2.3.tgz", + "integrity": "sha1-HPyyXBCpsrSDBT/zn138kjOQjP4=" + }, + "readable-stream": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", + "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "string_decoder": "0.10.31", + "util-deprecate": "1.0.2" + } + }, + "request": { + "version": "2.74.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.74.0.tgz", + "integrity": "sha1-dpPKdou7DqXIzgjAhKRe+gW4kqs=", + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.6.0", + "bl": "1.1.2", + "caseless": "0.11.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "1.0.1", + "har-validator": "2.0.6", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.17", + "node-uuid": "1.4.8", + "oauth-sign": "0.8.2", + "qs": "6.2.3", + "stringstream": "0.0.5", + "tough-cookie": "2.3.3", + "tunnel-agent": "0.4.3" + } + }, + "sntp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "requires": { + "hoek": "2.16.3" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + }, + "tunnel-agent": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", + "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=" + } + } + }, + "node-red-node-geofence": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/node-red-node-geofence/-/node-red-node-geofence-0.1.0.tgz", + "integrity": "sha1-KhFgtxL8ARX55FPxG7cLvHmTH/A=", + "requires": { + "geolib": "2.0.24" + } + }, + "node-red-node-random": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/node-red-node-random/-/node-red-node-random-0.1.0.tgz", + "integrity": "sha512-jb2J1m3A49m3P8umwvmoTnq2RVrSJrXVPmCStJWcGFe7B0daAILwxx7lyZKitlTwG/taTDW6+3NTGJ2RnsE0HA==" + }, + "node-red-node-rbe": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/node-red-node-rbe/-/node-red-node-rbe-0.2.1.tgz", + "integrity": "sha512-iyMT6QnkY6977NYwLhzPPaawG7njs1TYpzlxhhmBMDCoHJiA2h4XwXlQYIiK9mLiPsutzLCDChO7b41CGSgR9A==" + }, + "node-red-node-smooth": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/node-red-node-smooth/-/node-red-node-smooth-0.1.0.tgz", + "integrity": "sha512-78i203e8j8HiaEwVHJk9ukW0HkGSW0lkcYr42IfBpgT8YjMfRCbzQcFrz8K1/vcmjZ1KpSbohElr/y39X/t3XQ==" + }, + "node-red-node-twitter": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/node-red-node-twitter/-/node-red-node-twitter-0.1.12.tgz", + "integrity": "sha512-RBpvAoJ/wXmBOaE53BWPL+0fqcJtTNK8HCRN5ZwOoKC9rh2+fJjpQ5vwlQ/DMs4/KtLoNqCJ/VKqMaiekemY4A==", + "requires": { + "oauth": "0.9.14", + "request": "2.83.0", + "twitter-ng": "0.6.2" + } + }, + "nodemailer": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-1.11.0.tgz", + "integrity": "sha1-TmnLObAwFbHR7wx4qBVBK56Xb3k=", + "requires": { + "libmime": "1.2.0", + "mailcomposer": "2.1.0", + "needle": "0.11.0", + "nodemailer-direct-transport": "1.1.0", + "nodemailer-smtp-transport": "1.1.0" + } + }, + "nodemailer-direct-transport": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/nodemailer-direct-transport/-/nodemailer-direct-transport-1.1.0.tgz", + "integrity": "sha1-oveHCO5vFuoFc/yClJ0Tj/Fy9iQ=", + "requires": { + "smtp-connection": "1.3.8" + } + }, + "nodemailer-smtp-transport": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/nodemailer-smtp-transport/-/nodemailer-smtp-transport-1.1.0.tgz", + "integrity": "sha1-5sN/MYhaswgOfe089SjErX5pE5g=", + "requires": { + "clone": "1.0.3", + "nodemailer-wellknown": "0.1.10", + "smtp-connection": "1.3.8" + }, + "dependencies": { + "clone": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.3.tgz", + "integrity": "sha1-KY1+IjFmD0DAA8LtMUDezz9TCF8=" + } + } + }, + "nodemailer-wellknown": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/nodemailer-wellknown/-/nodemailer-wellknown-0.1.10.tgz", + "integrity": "sha1-WG24EB2zDLRDjrVGc3pBqtDPE9U=" + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true, + "requires": { + "abbrev": "1.1.1" + } + }, + "normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "dev": true, + "requires": { + "hosted-git-info": "2.5.0", + "is-builtin-module": "1.0.0", + "semver": "5.3.0", + "validate-npm-package-license": "3.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "requires": { + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" + } + }, + "nth-check": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz", + "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=", + "requires": { + "boolbase": "1.0.0" + } + }, + "nugget": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/nugget/-/nugget-2.0.1.tgz", + "integrity": "sha1-IBCVpIfhrTYIGzQy+jytpPjQcbA=", + "dev": true, + "requires": { + "debug": "2.6.9", + "minimist": "1.2.0", + "pretty-bytes": "1.0.4", + "progress-stream": "1.2.0", + "request": "2.83.0", + "single-line-log": "1.1.2", + "throttleit": "0.0.2" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + }, + "oauth": { + "version": "0.9.14", + "resolved": "https://registry.npmjs.org/oauth/-/oauth-0.9.14.tgz", + "integrity": "sha1-xXSIg6QLU94wrenKvyEAQUuKCXE=" + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" + }, + "oauth2orize": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/oauth2orize/-/oauth2orize-1.11.0.tgz", + "integrity": "sha1-eTzvJR1F696sMq5AqLaBT6qx1IM=", + "requires": { + "debug": "2.6.9", + "uid2": "0.0.3", + "utils-merge": "1.0.1" + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-component": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", + "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=" + }, + "object-keys": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", + "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", + "dev": true + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz", + "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1.0.2" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "1.2.0" + } + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "requires": { + "minimist": "0.0.8", + "wordwrap": "0.0.3" + } + }, + "options": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", + "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=" + }, + "ora": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-1.4.0.tgz", + "integrity": "sha512-iMK1DOQxzzh2MBlVsU42G80mnrvUhqsMh74phHtDlrcTZPK0pH6o7l7DRshK+0YsxDyEuaOkziVdvM3T0QTzpw==", + "dev": true, + "requires": { + "chalk": "2.3.1", + "cli-cursor": "2.1.0", + "cli-spinners": "1.1.0", + "log-symbols": "2.2.0" + } + }, + "ordered-read-streams": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", + "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", + "requires": { + "readable-stream": "2.3.3" + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + }, + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "dev": true, + "requires": { + "lcid": "1.0.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + }, + "osenv": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", + "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "1.3.1" + } + }, + "parsejson": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/parsejson/-/parsejson-0.0.3.tgz", + "integrity": "sha1-q343WfIJ7OmUN5c/fQ8fZK4OZKs=", + "requires": { + "better-assert": "1.0.2" + } + }, + "parseqs": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", + "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", + "requires": { + "better-assert": "1.0.2" + } + }, + "parseuri": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", + "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", + "requires": { + "better-assert": "1.0.2" + } + }, + "parseurl": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", + "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" + }, + "passport": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/passport/-/passport-0.4.0.tgz", + "integrity": "sha1-xQlWkTR71a07XhgCOMORTRbwWBE=", + "requires": { + "passport-strategy": "1.0.0", + "pause": "0.0.1" + } + }, + "passport-http-bearer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/passport-http-bearer/-/passport-http-bearer-1.0.1.tgz", + "integrity": "sha1-FHRp6jZp4qhMYWfvmdu3fh8AmKg=", + "requires": { + "passport-strategy": "1.0.0" + } + }, + "passport-oauth2-client-password": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/passport-oauth2-client-password/-/passport-oauth2-client-password-0.1.2.tgz", + "integrity": "sha1-TzeLZ4uS0W270jOmxwZSAJPlYbo=", + "requires": { + "passport-strategy": "1.0.0" + } + }, + "passport-strategy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz", + "integrity": "sha1-tVOaqPwiWj0a0XlHbd8ja0QPUuQ=" + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "2.0.1" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + } + }, + "pause": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz", + "integrity": "sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10=" + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "requires": { + "pinkie": "2.0.4" + } + }, + "poplib": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/poplib/-/poplib-0.1.7.tgz", + "integrity": "sha1-L0tYtVkpcjUM2X9IKrpo+OBVdLw=", + "requires": { + "optimist": "0.6.1" + } + }, + "pretty-bytes": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz", + "integrity": "sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=", + "dev": true, + "requires": { + "get-stdin": "4.0.1", + "meow": "3.7.0" + } + }, + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" + }, + "progress-stream": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/progress-stream/-/progress-stream-1.2.0.tgz", + "integrity": "sha1-LNPP6jO6OonJwSHsM0er6asSX3c=", + "dev": true, + "requires": { + "speedometer": "0.1.4", + "through2": "0.2.3" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "through2": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.2.3.tgz", + "integrity": "sha1-6zKE2k6jEbbMis42U3SKUqvyWj8=", + "dev": true, + "requires": { + "readable-stream": "1.1.14", + "xtend": "2.1.2" + } + }, + "xtend": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", + "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", + "dev": true, + "requires": { + "object-keys": "0.4.0" + } + } + } + }, + "proxy-addr": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.2.tgz", + "integrity": "sha1-ZXFQT0e7mI7IGAJT+F3X4UlSvew=", + "requires": { + "forwarded": "0.1.2", + "ipaddr.js": "1.5.2" + } + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + }, + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "requires": { + "end-of-stream": "1.4.1", + "once": "1.4.0" + } + }, + "pumpify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.4.0.tgz", + "integrity": "sha512-2kmNR9ry+Pf45opRVirpNuIFotsxUGLaYqxIwuR77AYrYRMuFCz9eryHBS52L360O+NcR383CL4QYlMKPq4zYA==", + "requires": { + "duplexify": "3.5.3", + "inherits": "2.0.3", + "pump": "2.0.1" + } + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true + }, + "qs": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" + }, + "random-bytes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", + "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs=" + }, + "range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" + }, + "raw-body": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", + "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=", + "requires": { + "bytes": "3.0.0", + "http-errors": "1.6.2", + "iconv-lite": "0.4.19", + "unpipe": "1.0.0" + } + }, + "rc": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.2.tgz", + "integrity": "sha1-2M6ctX6NZNnHut2YdsfDTL48cHc=", + "requires": { + "deep-extend": "0.4.2", + "ini": "1.3.4", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + } + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "1.1.2", + "read-pkg": "1.1.0" + } + }, + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true, + "requires": { + "indent-string": "2.1.0", + "strip-indent": "1.0.1" + } + }, + "reinterval": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reinterval/-/reinterval-1.1.0.tgz", + "integrity": "sha1-M2Hs+jymwYKDOA3Qu5VG85D17Oc=" + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "request": { + "version": "2.83.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz", + "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==", + "requires": { + "aws-sign2": "0.7.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.3.1", + "har-validator": "5.0.3", + "hawk": "6.0.2", + "http-signature": "1.2.0", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.17", + "oauth-sign": "0.8.2", + "performance-now": "2.1.0", + "qs": "6.5.1", + "safe-buffer": "5.1.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.3", + "tunnel-agent": "0.6.0", + "uuid": "3.1.0" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "2.0.1", + "signal-exit": "3.0.2" + } + }, + "retry": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.6.1.tgz", + "integrity": "sha1-/ckO7ZQ/3hG4k1VLjMY9DombqRg=" + }, + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "requires": { + "glob": "7.1.2" + } + }, + "rxjs": { + "version": "5.5.6", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.6.tgz", + "integrity": "sha512-v4Q5HDC0FHAQ7zcBX7T2IL6O5ltl1a2GX4ENjPXg6SjDY69Cmx9v4113C99a4wGF16ClPv5Z8mghuYorVkg/kg==", + "dev": true, + "requires": { + "symbol-observable": "1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + }, + "sax": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-0.6.1.tgz", + "integrity": "sha1-VjsZx8HeiS4Jv8Ty/DDjwn8JUrk=" + }, + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=" + }, + "send": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.1.tgz", + "integrity": "sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==", + "requires": { + "debug": "2.6.9", + "depd": "1.1.1", + "destroy": "1.0.4", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "etag": "1.8.1", + "fresh": "0.5.2", + "http-errors": "1.6.2", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "2.3.0", + "range-parser": "1.2.0", + "statuses": "1.3.1" + } + }, + "sentiment": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/sentiment/-/sentiment-2.1.0.tgz", + "integrity": "sha1-MyeRAMNcOFGcpeQ1JFGGxRL+D9w=" + }, + "serve-static": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.1.tgz", + "integrity": "sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==", + "requires": { + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "parseurl": "1.3.2", + "send": "0.16.1" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + }, + "single-line-log": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/single-line-log/-/single-line-log-1.1.2.tgz", + "integrity": "sha1-wvg/Jzo+GhbtsJlWYdoO1e8DM2Q=", + "dev": true, + "requires": { + "string-width": "1.0.2" + } + }, + "smtp-connection": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/smtp-connection/-/smtp-connection-1.3.8.tgz", + "integrity": "sha1-VYMsIWDPswhuHc2H/RwZ+mG39TY=" + }, + "sntp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", + "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", + "requires": { + "hoek": "4.2.0" + } + }, + "socket.io": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-1.7.4.tgz", + "integrity": "sha1-L37O3DORvy1cc+KR/iM+bjTU3QA=", + "requires": { + "debug": "2.3.3", + "engine.io": "1.8.5", + "has-binary": "0.1.7", + "object-assign": "4.1.0", + "socket.io-adapter": "0.5.0", + "socket.io-client": "1.7.4", + "socket.io-parser": "2.3.1" + }, + "dependencies": { + "debug": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", + "requires": { + "ms": "0.7.2" + } + }, + "ms": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=" + }, + "object-assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz", + "integrity": "sha1-ejs9DpgGPUP0wD8uiubNUahog6A=" + } + } + }, + "socket.io-adapter": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz", + "integrity": "sha1-y21LuL7IHhB4uZZ3+c7QBGBmu4s=", + "requires": { + "debug": "2.3.3", + "socket.io-parser": "2.3.1" + }, + "dependencies": { + "debug": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", + "requires": { + "ms": "0.7.2" + } + }, + "ms": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=" + } + } + }, + "socket.io-client": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.7.4.tgz", + "integrity": "sha1-7J+CA1btme9tNX8HVtZIcXvdQoE=", + "requires": { + "backo2": "1.0.2", + "component-bind": "1.0.0", + "component-emitter": "1.2.1", + "debug": "2.3.3", + "engine.io-client": "1.8.5", + "has-binary": "0.1.7", + "indexof": "0.0.1", + "object-component": "0.0.3", + "parseuri": "0.0.5", + "socket.io-parser": "2.3.1", + "to-array": "0.1.4" + }, + "dependencies": { + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + }, + "debug": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", + "requires": { + "ms": "0.7.2" + } + }, + "ms": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=" + } + } + }, + "socket.io-parser": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.3.1.tgz", + "integrity": "sha1-3VMgJRA85Clpcya+/WQAX8/ltKA=", + "requires": { + "component-emitter": "1.1.2", + "debug": "2.2.0", + "isarray": "0.0.1", + "json3": "3.3.2" + }, + "dependencies": { + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "requires": { + "ms": "0.7.1" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=" + } + } + }, + "sockjs": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz", + "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", + "requires": { + "faye-websocket": "0.10.0", + "uuid": "3.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "spawn-rx": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/spawn-rx/-/spawn-rx-2.0.12.tgz", + "integrity": "sha512-gOPXiQQFQ9lTOLuys0iMn3jfxxv9c7zzwhbYLOEbQGvEShHVJ5sSR1oD3Daj88os7jKArDYT7rbOKdvNhe7iEg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "lodash.assign": "4.2.0", + "rxjs": "5.5.6" + } + }, + "spdx-correct": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", + "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", + "dev": true, + "requires": { + "spdx-license-ids": "1.2.2" + } + }, + "spdx-expression-parse": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", + "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", + "dev": true + }, + "spdx-license-ids": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", + "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", + "dev": true + }, + "speedometer": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/speedometer/-/speedometer-0.1.4.tgz", + "integrity": "sha1-mHbb0qFp0xFUAtSObqYynIgWpQ0=", + "dev": true + }, + "split2": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-2.2.0.tgz", + "integrity": "sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==", + "requires": { + "through2": "2.0.3" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "sshpk": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", + "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", + "requires": { + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + } + }, + "statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" + }, + "stream-shift": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" + }, + "stream-stack": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/stream-stack/-/stream-stack-1.1.4.tgz", + "integrity": "sha1-cIRgQrqwGFAI5Qnt/h93+TYcumk=" + }, + "streamsearch": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", + "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=" + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "requires": { + "safe-buffer": "5.1.1" + } + }, + "stringstream": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=" + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "2.1.1" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "0.2.1" + } + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true, + "requires": { + "get-stdin": "4.0.1" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + }, + "sumchecker": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-1.3.1.tgz", + "integrity": "sha1-ebs7RFbdBPGOvbwNcDodHa7FEF0=", + "dev": true, + "requires": { + "debug": "2.6.9", + "es6-promise": "4.1.1" + } + }, + "supports-color": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", + "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "dev": true, + "requires": { + "has-flag": "3.0.0" + } + }, + "symbol-observable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", + "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=", + "dev": true + }, + "tar": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "requires": { + "block-stream": "0.0.9", + "fstream": "1.0.11", + "inherits": "2.0.3" + } + }, + "tar-pack": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.4.1.tgz", + "integrity": "sha512-PPRybI9+jM5tjtCbN2cxmmRU7YmqT3Zv/UDy48tAh2XRkLa9bAORtSWLkVc13+GJF+cdTh1yEnHEk3cpTaL5Kg==", + "optional": true, + "requires": { + "debug": "2.6.9", + "fstream": "1.0.11", + "fstream-ignore": "1.0.5", + "once": "1.4.0", + "readable-stream": "2.3.3", + "rimraf": "2.6.2", + "tar": "2.2.1", + "uid-number": "0.0.6" + } + }, + "temp": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.3.tgz", + "integrity": "sha1-4Ma8TSa5AxJEEOT+2BEDAU38H1k=", + "dev": true, + "requires": { + "os-tmpdir": "1.0.2", + "rimraf": "2.2.8" + }, + "dependencies": { + "rimraf": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", + "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=", + "dev": true + } + } + }, + "throttleit": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz", + "integrity": "sha1-z+34jmDADdlpe2H90qg0OptoDq8=", + "dev": true + }, + "through2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "requires": { + "readable-stream": "2.3.3", + "xtend": "4.0.1" + } + }, + "through2-filter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-2.0.0.tgz", + "integrity": "sha1-YLxVoNrLdghdsfna6Zq0P4PWIuw=", + "requires": { + "through2": "2.0.3", + "xtend": "4.0.1" + } + }, + "to-absolute-glob": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", + "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", + "requires": { + "is-absolute": "1.0.0", + "is-negated-glob": "1.0.0" + } + }, + "to-array": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", + "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=" + }, + "touch": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/touch/-/touch-0.0.3.tgz", + "integrity": "sha1-Ua7z1ElXHU8oel2Hyci0kYGg2x0=", + "dev": true, + "requires": { + "nopt": "1.0.10" + }, + "dependencies": { + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "dev": true, + "requires": { + "abbrev": "1.1.1" + } + } + } + }, + "tough-cookie": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", + "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", + "requires": { + "punycode": "1.4.1" + } + }, + "traverse": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", + "integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=", + "dev": true + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "5.1.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "optional": true + }, + "twitter-ng": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/twitter-ng/-/twitter-ng-0.6.2.tgz", + "integrity": "sha1-E3BxFd0Eyb0fLGRtqXZYm+TWS8Q=", + "requires": { + "oauth": "0.9.14" + } + }, + "type-is": { + "version": "1.6.15", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", + "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=", + "requires": { + "media-typer": "0.3.0", + "mime-types": "2.1.17" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "uglify-js": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.3.6.tgz", + "integrity": "sha512-dHp7NHttxYRqz6v/YtR+Jgfo68I/yMbofhYymx9fhIRMxPgap9axbMq5a4NT9gWVzQW8Zh8DJsgZpxKpZbolMA==", + "requires": { + "commander": "2.13.0", + "source-map": "0.6.1" + }, + "dependencies": { + "commander": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", + "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==" + } + } + }, + "uid-number": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", + "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=", + "optional": true + }, + "uid-safe": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", + "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==", + "requires": { + "random-bytes": "1.0.0" + } + }, + "uid2": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/uid2/-/uid2-0.0.3.tgz", + "integrity": "sha1-SDEm4Rd03y9xuLY53NeZw3YWK4I=" + }, + "ultron": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" + }, + "unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=" + }, + "unique-stream": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.2.1.tgz", + "integrity": "sha1-WqADz76Uxf+GbE59ZouxxNuts2k=", + "requires": { + "json-stable-stringify": "1.0.1", + "through2-filter": "2.0.0" + } + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "utf7": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/utf7/-/utf7-1.0.2.tgz", + "integrity": "sha1-lV9JCq5lO6IguUVqCod2wZk2CZE=", + "requires": { + "semver": "5.3.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "uue": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/uue/-/uue-3.1.1.tgz", + "integrity": "sha512-MaT3l62tAqFCApEFBWyFF5e4e7CniWupCknKSf2hWyvxZXb7PMglHa5fy4xgeopvmDkIuUqUOtXFxWHWbL/pkw==", + "requires": { + "escape-string-regexp": "1.0.5", + "extend": "3.0.1" + } + }, + "uuid": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", + "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" + }, + "validate-npm-package-license": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", + "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", + "dev": true, + "requires": { + "spdx-correct": "1.0.2", + "spdx-expression-parse": "1.0.4" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "1.3.0" + } + }, + "websocket-driver": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz", + "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", + "requires": { + "http-parser-js": "0.4.10", + "websocket-extensions": "0.1.3" + } + }, + "websocket-extensions": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", + "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==" + }, + "websocket-stream": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/websocket-stream/-/websocket-stream-5.1.1.tgz", + "integrity": "sha512-ypQ50zVCnikSvJcRFWaZh7xeCufSje5+mbJRq3mdvdNx+06TD98C+bQsSKc7FkI6y1PVuNbzkenGywxlFiQeUQ==", + "requires": { + "duplexify": "3.5.3", + "inherits": "2.0.3", + "readable-stream": "2.3.3", + "safe-buffer": "5.1.1", + "ws": "3.3.3", + "xtend": "4.0.1" + }, + "dependencies": { + "ws": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", + "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "requires": { + "async-limiter": "1.0.0", + "safe-buffer": "5.1.1", + "ultron": "1.1.1" + } + } + } + }, + "when": { + "version": "3.7.8", + "resolved": "https://registry.npmjs.org/when/-/when-3.7.8.tgz", + "integrity": "sha1-xxMLan6gRpPoQs3J56Hyqjmjn4I=" + }, + "which": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "dev": true, + "requires": { + "isexe": "2.0.0" + } + }, + "which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", + "dev": true + }, + "wide-align": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", + "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", + "requires": { + "string-width": "1.0.2" + } + }, + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=" + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "ws": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.5.tgz", + "integrity": "sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==", + "requires": { + "options": "0.0.6", + "ultron": "1.0.2" + }, + "dependencies": { + "ultron": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz", + "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=" + } + } + }, + "wtf-8": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wtf-8/-/wtf-8-1.0.0.tgz", + "integrity": "sha1-OS2LotDxw00e4tYw8V0O+2jhBIo=" + }, + "xml2js": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", + "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", + "requires": { + "sax": "0.6.1", + "xmlbuilder": "9.0.7" + } + }, + "xmlbuilder": { + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", + "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=" + }, + "xmlhttprequest-ssl": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz", + "integrity": "sha1-GFqIjATspGw+QHDZn3tJ3jUomS0=" + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + }, + "yargs": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", + "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", + "dev": true, + "requires": { + "camelcase": "3.0.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.2", + "os-locale": "1.4.0", + "read-pkg-up": "1.0.1", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "1.0.2", + "which-module": "1.0.0", + "y18n": "3.2.1", + "yargs-parser": "5.0.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + } + } + }, + "yargs-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", + "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", + "dev": true, + "requires": { + "camelcase": "3.0.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + } + } + }, + "yauzl": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", + "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", + "dev": true, + "requires": { + "fd-slicer": "1.0.1" + } + }, + "yeast": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", + "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=" + } + } +} diff --git a/package.json b/package.json index a5fe7ed..1742a8d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { - "name": "electron-node-red", - "version": "0.18.3", + "name": "electron_node_red", + "version": "0.18.4", "description": "Electron Node-RED application starter", "main": "main.js", "scripts": { @@ -19,8 +19,8 @@ "build:osx": "npm run pack:osx && appdmg appdmg.json ../electron-bin/Node-RED-Electron_$npm_package_version.dmg", "build:linux32": "npm run pack:linux32 && fpm -s dir -t deb -f -n node-red-electron -v $npm_package_version -m conway@uk.ibm.com -a i386 -p ../electron-bin -C build/Node-RED-linux-ia32 --prefix=/opt/node-red --after-install=afterinst.sh ./", "build:linux64": "npm run pack:linux64 && fpm -s dir -t deb -f -n node-red-electron -v $npm_package_version -m conway@uk.ibm.com -a x86_64 -p ../electron-bin -C build/Node-RED-linux-x64 --prefix=/opt/node-red --after-install=afterinst.sh ./", - "build:win32": "npm run pack:win32 && ./makewin32.js", - "build:win64": "npm run pack:win64 && ./makewin64.js", + "build:win32": "npm run pack:win32 && node makewin32.js", + "build:win64": "npm run pack:win64 && node makewin64.js", "build:armv7l": "npm run pack:armv7l && fpm -s dir -t deb -f -n node-red-electron -v $npm_package_version -m conway@uk.ibm.com -a armv7l -p ../electron-bin -C build/Node-RED-linux-armv7l --prefix=/opt/node-red --after-install=afterinst.sh ./" }, "repository": { @@ -29,10 +29,10 @@ }, "dependencies": { "express": "^4.15.3", - "node-red": "~0.18.3", + "node-red": "~0.18.4", "node-red-contrib-play-audio": "~2.2.4", "node-red-contrib-web-worldmap": "~1.1.9", - "node-red-dashboard": "~2.8.1", + "node-red-dashboard": "~2.8.2", "node-red-node-base64": "~0.1.1", "node-red-node-geofence": "*", "node-red-node-random": "~0.1.0", From b62741f695a28be7232a67099bb2dd787be8bbda Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Mon, 7 May 2018 17:54:25 +0100 Subject: [PATCH 005/127] bump packages (to free and easy) --- package.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 1742a8d..2d5b11f 100644 --- a/package.json +++ b/package.json @@ -29,14 +29,14 @@ }, "dependencies": { "express": "^4.15.3", - "node-red": "~0.18.4", - "node-red-contrib-play-audio": "~2.2.4", - "node-red-contrib-web-worldmap": "~1.1.9", - "node-red-dashboard": "~2.8.2", - "node-red-node-base64": "~0.1.1", + "node-red": "*", + "node-red-contrib-play-audio": "*", + "node-red-contrib-web-worldmap": "*", + "node-red-dashboard": "*", + "node-red-node-base64": "*", "node-red-node-geofence": "*", - "node-red-node-random": "~0.1.0", - "node-red-node-smooth": "~0.1.0" + "node-red-node-random": "*", + "node-red-node-smooth": "*" }, "keywords": [ "electron", From de7022877894298f9b1a52f28bbc8bffce3d1526 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Mon, 20 Aug 2018 21:16:39 +0100 Subject: [PATCH 006/127] Add console and bump to 0.19.1 --- .gitignore | 2 + console.htm | 34 + electronflow.json | 2 +- main.js | 102 +- package-lock.json | 3499 +++++++++++++++++++++++++-------------------- package.json | 10 +- 6 files changed, 2065 insertions(+), 1584 deletions(-) create mode 100644 console.htm diff --git a/.gitignore b/.gitignore index df33556..14980cf 100644 --- a/.gitignore +++ b/.gitignore @@ -35,3 +35,5 @@ node_modules *linux-x64* *win32-x64* *.back +.config.json.backup +*.backup diff --git a/console.htm b/console.htm new file mode 100644 index 0000000..b5fc405 --- /dev/null +++ b/console.htm @@ -0,0 +1,34 @@ + + + + + + Node-RED Console + + + + + +
+
+ + + diff --git a/electronflow.json b/electronflow.json index c1cd0fa..80b3aab 100644 --- a/electronflow.json +++ b/electronflow.json @@ -1 +1 @@ -[{"id":"41f61d2.fbe09e4","type":"tab","label":"Flow 1"},{"id":"52a903f3.ad56fc","type":"ui_tab","z":"41f61d2.fbe09e4","name":"Home","icon":"dashboard"},{"id":"30e652f.d9de3ae","type":"ui_group","z":"41f61d2.fbe09e4","name":"Panel 2","tab":"52a903f3.ad56fc","order":3,"disp":true,"width":"6"},{"id":"a8ecb9.c60f4348","type":"ui_group","z":"41f61d2.fbe09e4","name":"Introduction","tab":"52a903f3.ad56fc","order":1,"disp":false,"width":"3"},{"id":"bbdf3e02.e8fee","type":"ui_group","z":"41f61d2.fbe09e4","name":"Panel 1","tab":"52a903f3.ad56fc","order":2,"disp":true,"width":"6"},{"id":"d9ba26fa.6d2b18","type":"ui_base","theme":{"name":"theme-light","lightTheme":{"default":"#0094CE","baseColor":"#8e0d17","baseFont":"Copperplate,Copperplate Gothic Light,fantasy","edited":true,"reset":false},"darkTheme":{"default":"#097479","baseColor":"#097479","baseFont":"Helvetica Neue","edited":false},"customTheme":{"name":"Untitled Theme 1","default":"#4B7930","baseColor":"#4B7930","baseFont":"Helvetica Neue"},"themeState":{"base-color":{"default":"#0094CE","value":"#d80005","edited":true},"page-titlebar-backgroundColor":{"value":"#8e0d17","edited":false},"page-backgroundColor":{"value":"#fafafa","edited":false},"page-sidebar-backgroundColor":{"value":"#000000","edited":false},"group-textColor":{"value":"#d41322","edited":false},"group-borderColor":{"value":"#ffffff","edited":false},"group-backgroundColor":{"value":"#ffffff","edited":false},"widget-textColor":{"value":"#111111","edited":false},"widget-backgroundColor":{"value":"#8e0d17","edited":false},"widget-borderColor":{"value":"#ffffff","edited":false},"base-font":{"value":"Copperplate,Copperplate Gothic Light,fantasy"}}},"site":{"name":"Node-RED Dashboard","hideToolbar":"false","allowSwipe":"false","dateFormat":"DD/MM/YYYY","sizes":{"sx":48,"sy":48,"gx":6,"gy":6,"cx":6,"cy":6,"px":0,"py":0}}},{"id":"87356b62.92e3d8","type":"ui_group","z":"","name":"Text to Speech","tab":"52a903f3.ad56fc","order":5,"disp":true,"width":"6"},{"id":"c75ad4f0.0cede8","type":"ui_group","z":"","name":"Map","tab":"52a903f3.ad56fc","order":4,"disp":true,"width":"6"},{"id":"189cf871.681118","type":"ui_template","z":"41f61d2.fbe09e4","group":"a8ecb9.c60f4348","name":"Welcome","order":1,"width":"3","height":"9","format":"

Welcome to the Node-RED Dashboard

\n

On the right you will see a graph and a chart logging data from the sliders underneath.

","storeOutMessages":false,"fwdInMessages":false,"x":93,"y":45,"wires":[[]]},{"id":"9f19ee5c.beaef","type":"ui_chart","z":"41f61d2.fbe09e4","name":"","group":"bbdf3e02.e8fee","order":1,"width":"0","height":"0","label":"","chartType":"line","xformat":"HH:mm:ss","interpolate":"basis","nodata":"No Data","dot":false,"ymin":"0","ymax":"100","removeOlder":1,"removeOlderPoints":"","removeOlderUnit":"60","cutout":"","colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"x":270,"y":200,"wires":[[],[]]},{"id":"799d9318.fd385c","type":"ui_gauge","z":"41f61d2.fbe09e4","name":"","group":"30e652f.d9de3ae","order":2,"width":"","height":"","gtype":"gage","title":"Title","label":"gauge","format":"{{value}}","min":0,"max":"100","colors":["#00b500","#e6e600","#ca3838"],"x":270,"y":140,"wires":[]},{"id":"6f18b200.666a4","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"87356b62.92e3d8","order":2,"width":0,"height":0,"label":"press to talk","color":"","bgcolor":"","icon":"fa-volume-up","payload":"Hello to Jason Isaacs","payloadType":"str","topic":"","x":110,"y":300,"wires":[["f897d7c2.467a58"]]},{"id":"f897d7c2.467a58","type":"ui_audio","z":"41f61d2.fbe09e4","name":"","group":"30e652f.d9de3ae","voice":"0","x":300,"y":300,"wires":[]},{"id":"da0f7e67.0d38a","type":"ui_slider","z":"41f61d2.fbe09e4","name":"","label":"slider","group":"30e652f.d9de3ae","order":4,"width":0,"height":0,"passthru":true,"topic":"","min":0,"max":"100","step":1,"x":90,"y":140,"wires":[["799d9318.fd385c"]]},{"id":"eabf2bd7.f4e0c8","type":"ui_slider","z":"41f61d2.fbe09e4","name":"","label":"slider","group":"bbdf3e02.e8fee","order":4,"width":0,"height":0,"passthru":true,"topic":"","min":0,"max":"100","step":1,"x":90,"y":200,"wires":[["9f19ee5c.beaef"]]},{"id":"7d549f6e.58ab6","type":"worldmap","z":"41f61d2.fbe09e4","name":"","lat":"","lon":"","zoom":"","layer":"OSM","cluster":"","maxage":"","usermenu":"hide","panit":"true","x":445,"y":411,"wires":[]},{"id":"45508d88.744a54","type":"function","z":"41f61d2.fbe09e4","name":"","func":"// create random position\nvar lat = 51 + Math.random() * 0.2;\nvar lon = -1.45 + Math.random() * 0.2;\nmsg.payload={lat:lat, lon:lon, name:\"Jason\", icon:\"male\", url:\"IBM link\"};\nreturn msg;","outputs":1,"noerr":0,"x":265,"y":411,"wires":[["7d549f6e.58ab6"]]},{"id":"6ca8cfc2.e0bce","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"c75ad4f0.0cede8","order":1,"width":0,"height":0,"passthru":false,"label":"Where's Jason","color":"","bgcolor":"#910000","icon":"fa-male","payload":"","payloadType":"str","topic":"","x":113,"y":412,"wires":[["45508d88.744a54"]]},{"id":"c87aa53d.223ba8","type":"inject","z":"41f61d2.fbe09e4","name":"","topic":"","payload":"/worldmap","payloadType":"str","repeat":"","crontab":"","once":true,"x":106,"y":461,"wires":[["42a56979.e10b68"]]},{"id":"582c9a7e.d9d014","type":"ui_template","z":"41f61d2.fbe09e4","group":"c75ad4f0.0cede8","name":"","order":2,"width":"6","height":"6","format":"
","storeOutMessages":true,"fwdInMessages":true,"x":436,"y":461,"wires":[[]]},{"id":"42a56979.e10b68","type":"template","z":"41f61d2.fbe09e4","name":"","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"","x":266,"y":461,"wires":[["582c9a7e.d9d014"]]}] \ No newline at end of file +[{"id":"41f61d2.fbe09e4","type":"tab","label":"Flow 1"},{"id":"52a903f3.ad56fc","type":"ui_tab","z":"41f61d2.fbe09e4","name":"Home","icon":"dashboard"},{"id":"30e652f.d9de3ae","type":"ui_group","z":"41f61d2.fbe09e4","name":"Panel 2","tab":"52a903f3.ad56fc","order":3,"disp":true,"width":"6"},{"id":"a8ecb9.c60f4348","type":"ui_group","z":"41f61d2.fbe09e4","name":"Introduction","tab":"52a903f3.ad56fc","order":1,"disp":false,"width":"3"},{"id":"bbdf3e02.e8fee","type":"ui_group","z":"41f61d2.fbe09e4","name":"Panel 1","tab":"52a903f3.ad56fc","order":2,"disp":true,"width":"6"},{"id":"d9ba26fa.6d2b18","type":"ui_base","theme":{"name":"theme-light","lightTheme":{"default":"#0094CE","baseColor":"#8e0d17","baseFont":"Copperplate,Copperplate Gothic Light,fantasy","edited":true,"reset":false},"darkTheme":{"default":"#097479","baseColor":"#097479","baseFont":"Helvetica Neue","edited":false},"customTheme":{"name":"Untitled Theme 1","default":"#4B7930","baseColor":"#4B7930","baseFont":"Helvetica Neue"},"themeState":{"base-color":{"default":"#0094CE","value":"#d80005","edited":true},"page-titlebar-backgroundColor":{"value":"#8e0d17","edited":false},"page-backgroundColor":{"value":"#fafafa","edited":false},"page-sidebar-backgroundColor":{"value":"#000000","edited":false},"group-textColor":{"value":"#d41322","edited":false},"group-borderColor":{"value":"#ffffff","edited":false},"group-backgroundColor":{"value":"#ffffff","edited":false},"widget-textColor":{"value":"#111111","edited":false},"widget-backgroundColor":{"value":"#8e0d17","edited":false},"widget-borderColor":{"value":"#ffffff","edited":false},"base-font":{"value":"Copperplate,Copperplate Gothic Light,fantasy"}}},"site":{"name":"Node-RED Dashboard","hideToolbar":"false","allowSwipe":"false","dateFormat":"DD/MM/YYYY","sizes":{"sx":48,"sy":48,"gx":6,"gy":6,"cx":6,"cy":6,"px":0,"py":0}}},{"id":"87356b62.92e3d8","type":"ui_group","z":"","name":"Text to Speech","tab":"52a903f3.ad56fc","order":5,"disp":true,"width":"6"},{"id":"c75ad4f0.0cede8","type":"ui_group","z":"","name":"Map","tab":"52a903f3.ad56fc","order":4,"disp":true,"width":"6"},{"id":"189cf871.681118","type":"ui_template","z":"41f61d2.fbe09e4","group":"a8ecb9.c60f4348","name":"Welcome","order":1,"width":"3","height":"9","format":"

Welcome to the Node-RED Dashboard

\n

On the right you will see a graph and a chart logging data from the sliders underneath.

","storeOutMessages":false,"fwdInMessages":false,"x":93,"y":45,"wires":[[]]},{"id":"9f19ee5c.beaef","type":"ui_chart","z":"41f61d2.fbe09e4","name":"","group":"bbdf3e02.e8fee","order":1,"width":"0","height":"0","label":"","chartType":"line","xformat":"HH:mm:ss","interpolate":"basis","nodata":"No Data","dot":false,"ymin":"0","ymax":"100","removeOlder":1,"removeOlderPoints":"","removeOlderUnit":"60","cutout":"","colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"x":270,"y":200,"wires":[["cd958805.0862a8"],[]]},{"id":"799d9318.fd385c","type":"ui_gauge","z":"41f61d2.fbe09e4","name":"","group":"30e652f.d9de3ae","order":2,"width":"","height":"","gtype":"gage","title":"Title","label":"gauge","format":"{{value}}","min":0,"max":"100","colors":["#00b500","#e6e600","#ca3838"],"x":270,"y":140,"wires":[]},{"id":"6f18b200.666a4","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"87356b62.92e3d8","order":2,"width":0,"height":0,"label":"press to talk","color":"","bgcolor":"","icon":"fa-volume-up","payload":"Hello to Jason Isaacs","payloadType":"str","topic":"","x":110,"y":300,"wires":[["f897d7c2.467a58"]]},{"id":"f897d7c2.467a58","type":"ui_audio","z":"41f61d2.fbe09e4","name":"","group":"30e652f.d9de3ae","voice":"0","x":300,"y":300,"wires":[]},{"id":"da0f7e67.0d38a","type":"ui_slider","z":"41f61d2.fbe09e4","name":"","label":"slider","group":"30e652f.d9de3ae","order":4,"width":0,"height":0,"passthru":true,"topic":"","min":0,"max":"100","step":1,"x":90,"y":140,"wires":[["799d9318.fd385c","219da65f.e0b0da"]]},{"id":"eabf2bd7.f4e0c8","type":"ui_slider","z":"41f61d2.fbe09e4","name":"","label":"slider","group":"bbdf3e02.e8fee","order":4,"width":0,"height":0,"passthru":true,"topic":"","min":0,"max":"100","step":1,"x":90,"y":200,"wires":[["9f19ee5c.beaef","ccee40e3.c1618"]]},{"id":"7d549f6e.58ab6","type":"worldmap","z":"41f61d2.fbe09e4","name":"","lat":"","lon":"","zoom":"","layer":"OSM","cluster":"","maxage":"","usermenu":"hide","panit":"true","x":445,"y":411,"wires":[]},{"id":"45508d88.744a54","type":"function","z":"41f61d2.fbe09e4","name":"","func":"// create random position\nvar lat = 51 + Math.random() * 0.2;\nvar lon = -1.45 + Math.random() * 0.2;\nmsg.payload={lat:lat, lon:lon, name:\"Jason\", icon:\"male\", url:\"IBM link\"};\nreturn msg;","outputs":1,"noerr":0,"x":265,"y":411,"wires":[["7d549f6e.58ab6"]]},{"id":"6ca8cfc2.e0bce","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"c75ad4f0.0cede8","order":1,"width":0,"height":0,"passthru":false,"label":"Where's Jason","color":"","bgcolor":"#910000","icon":"fa-male","payload":"","payloadType":"str","topic":"","x":113,"y":412,"wires":[["45508d88.744a54"]]},{"id":"c87aa53d.223ba8","type":"inject","z":"41f61d2.fbe09e4","name":"","topic":"","payload":"/worldmap","payloadType":"str","repeat":"","crontab":"","once":true,"x":106,"y":461,"wires":[["42a56979.e10b68"]]},{"id":"582c9a7e.d9d014","type":"ui_template","z":"41f61d2.fbe09e4","group":"c75ad4f0.0cede8","name":"","order":2,"width":"6","height":"6","format":"
","storeOutMessages":true,"fwdInMessages":true,"x":436,"y":461,"wires":[[]]},{"id":"42a56979.e10b68","type":"template","z":"41f61d2.fbe09e4","name":"","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"","x":266,"y":461,"wires":[["582c9a7e.d9d014"]]},{"id":"219da65f.e0b0da","type":"debug","z":"41f61d2.fbe09e4","name":"","active":true,"tosidebar":true,"console":true,"tostatus":false,"complete":"payload","x":300,"y":100,"wires":[]},{"id":"ccee40e3.c1618","type":"debug","z":"41f61d2.fbe09e4","name":"","active":true,"tosidebar":true,"console":true,"tostatus":false,"complete":"payload","x":300,"y":240,"wires":[]},{"id":"1c597308.3cfc0d","type":"worldmap in","z":"41f61d2.fbe09e4","name":"","x":160,"y":540,"wires":[["7d6cb82c.3f3ea8"]]},{"id":"7d6cb82c.3f3ea8","type":"debug","z":"41f61d2.fbe09e4","name":"","active":true,"tosidebar":false,"console":true,"tostatus":false,"complete":"payload","x":380,"y":540,"wires":[]},{"id":"cd958805.0862a8","type":"debug","z":"41f61d2.fbe09e4","name":"","active":true,"tosidebar":false,"console":true,"tostatus":false,"complete":"payload","x":400,"y":360,"wires":[]}] \ No newline at end of file diff --git a/main.js b/main.js index 91f4690..0913070 100755 --- a/main.js +++ b/main.js @@ -5,15 +5,21 @@ // Flows file name const flowfile = 'electronflow.json'; // Start on the dashboard page -const url = "/ui/#/0"; +const urldash = "/ui/#/0"; // url for the editor page -const urledit = "/admin"; +const urledit = "/red"; +// url for the console page +const urlconsole = "/console.htm"; // tcp port to use //const listenPort = "18880"; // fix it just because const listenPort = parseInt(Math.random()*16383+49152) // or random ephemeral port const os = require('os'); +const url = require('url'); +const path = require('path'); const electron = require('electron'); +const {ipcMain} = require('electron'); + const app = electron.app; const BrowserWindow = electron.BrowserWindow; const {Menu, MenuItem} = electron; @@ -29,7 +35,8 @@ var RED = require("node-red"); var red_app = express(); // Add a simple route for static content served from 'public' -//red_app.use("/",express.static("public")); +red_app.use("/",express.static("web")); +//red_app.use(express.static(__dirname +"/public")); // Create a server var server = http.createServer(red_app); @@ -49,15 +56,33 @@ else { // We set the user directory to be in the users home directory... } } console.log("Setting UserDir to ",userdir); +// console.log("DIR",__dirname); +// console.log("PORT",listenPort); + +// Keep a global reference of the window objects, if you don't, the window will +// be closed automatically when the JavaScript object is garbage collected. +let mainWindow; +let conWindow; // Create the settings object - see default settings.js file for other options var settings = { - verbose: true, - httpAdminRoot:"/admin", + httpAdminRoot: "/red", httpNodeRoot: "/", userDir: userdir, flowFile: flowfile, - functionGlobalContext: { } // enables global context + editorTheme: { projects: { enabled: false } }, + functionGlobalContext: { }, // enables global context + logging: { + websock: { + level: 'info', + metrics: false, + handler: function() { + return function(msg) { + if (conWindow) { conWindow.webContents.send('debugMsg', msg); } + } + } + } + } }; // Initialise the runtime with a server and settings @@ -66,7 +91,7 @@ RED.init(server,settings); // Serve the editor UI from /red red_app.use(settings.httpAdminRoot,RED.httpAdmin); -// Serve the http nodes UI from /api +// Serve the http nodes UI from / red_app.use(settings.httpNodeRoot,RED.httpNode); // Create the Application's main menu @@ -79,9 +104,13 @@ var template = [{ ]}, { label: 'Node-RED', submenu: [ + { label: 'Console', + accelerator: "Shift+CmdOrCtrl+C", + click() { createConsole(); } + }, { label: 'Dashboard', accelerator: "Shift+CmdOrCtrl+D", - click() { mainWindow.loadURL("http://localhost:"+listenPort+url); } + click() { mainWindow.loadURL("http://localhost:"+listenPort+urldash); } }, { label: 'Editor', accelerator: "Shift+CmdOrCtrl+E", @@ -112,11 +141,11 @@ var template = [{ submenu: [ { label: 'Reload', accelerator: 'CmdOrCtrl+R', - click(item, focusedWindow) { if (focusedWindow) focusedWindow.reload(); } + click(item, focusedWindow) { if (focusedWindow) { focusedWindow.reload(); }} }, { label: 'Toggle Developer Tools', accelerator: process.platform === 'darwin' ? 'Alt+Command+I' : 'Ctrl+Shift+I', - click(item, focusedWindow) { if (focusedWindow) focusedWindow.webContents.toggleDevTools(); } + click(item, focusedWindow) { if (focusedWindow) { focusedWindow.webContents.toggleDevTools(); }} }, { type: 'separator' }, { role: 'resetzoom' }, @@ -128,9 +157,26 @@ var template = [{ ]} ]; -// Keep a global reference of the window object, if you don't, the window will -// be closed automatically when the JavaScript object is garbage collected. -let mainWindow; +function createConsole() { + // Create the hidden console window + conWindow = new BrowserWindow({ + title:"Node-RED Console", width:800, height:600, frame:true, show:true + }); + //conWindow.loadURL("http://localhost:"+listenPort+urlconsole); + conWindow.loadURL(url.format({ + pathname: path.join(__dirname, 'console.htm'), + protocol: 'file:', + slashes: true + })) + conWindow.webContents.on('did-finish-load', () => { + //console.log("LOADED CONSOLE"); + conWindow.webContents.send('debugMsg', "Ready"); + }); + conWindow.on('closed', function() { + conWindow = null; + }); + //conWindow.webContents.openDevTools(); +} function createWindow() { // Create the browser window. @@ -147,16 +193,16 @@ function createWindow() { icon: __dirname + "/nodered.png" }); - var webContents = mainWindow.webContents; - webContents.on('did-get-response-details', function(event, status, newURL, originalURL, httpResponseCode) { - if ((httpResponseCode == 404) && (newURL == ("http://localhost:"+listenPort+url))) { - setTimeout(webContents.reload, 250); + mainWindow.webContents.on('did-get-response-details', function(event, status, newURL, originalURL, httpResponseCode) { + if ((httpResponseCode == 404) && (newURL == ("http://localhost:"+listenPort+urldash))) { + setTimeout(mainWindow.webContents.reload, 250); } Menu.setApplicationMenu(Menu.buildFromTemplate(template)); }); - // Open the DevTools. - //mainWindow.webContents.openDevTools(); + // mainWindow.webContents.on('did-finish-load', () => { + // console.log("LOADED DASHBOARD"); + // }); mainWindow.webContents.on("new-window", function(e, url, frameName, disposition, options) { // if a child window opens... modify any other options such as width/height, etc @@ -170,25 +216,23 @@ function createWindow() { //frameName = "child"; }) + // Open the DevTools. + //mainWindow.webContents.openDevTools(); + // Emitted when the window is closed. mainWindow.on('closed', function() { - // Dereference the window object, usually you would store windows - // in an array if your app supports multi windows, this is the time - // when you should delete the corresponding element. mainWindow = null; }); } // Called when Electron has finished initialization and is ready to create browser windows. -app.on('ready', createWindow); +app.on('ready', createWindow ); // Quit when all windows are closed. app.on('window-all-closed', function () { // On OS X it is common for applications and their menu bar // to stay active until the user quits explicitly with Cmd + Q - if (process.platform !== 'darwin') { - app.quit(); - } + if (process.platform !== 'darwin') { app.quit(); } }); app.on('activate', function() { @@ -196,14 +240,14 @@ app.on('activate', function() { // dock icon is clicked and there are no other windows open. if (mainWindow === null) { createWindow(); - mainWindow.loadURL("http://127.0.0.1:"+listenPort+url); + mainWindow.loadURL("http://127.0.0.1:"+listenPort+urldash); } }); // Start the Node-RED runtime, then load the inital page RED.start().then(function() { server.listen(listenPort,"127.0.0.1",function() { - mainWindow.loadURL("http://127.0.0.1:"+listenPort+url); + mainWindow.loadURL("http://127.0.0.1:"+listenPort+urldash); }); }); @@ -269,4 +313,4 @@ function handleSquirrelEvent() { app.quit(); return true; } -}; +} diff --git a/package-lock.json b/package-lock.json index 865a4f3..3750477 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,13 +1,13 @@ { "name": "electron_node_red", - "version": "0.18.4", + "version": "0.19.1", "lockfileVersion": 1, "requires": true, "dependencies": { "@types/node": { - "version": "7.0.48", - "resolved": "https://registry.npmjs.org/@types/node/-/node-7.0.48.tgz", - "integrity": "sha512-LLlXafM3BD52MH056tHxTXO8JFCnpJJQkdzIU3+m8ew+CXJY/5zIXgDNb4TK/QFvlI8QexLS5tL+sE0Qhegr1w==", + "version": "7.0.63", + "resolved": "https://registry.npmjs.org/@types/node/-/node-7.0.63.tgz", + "integrity": "sha512-YPVhjU3cADo7M7M1KWeEki9MUMZd3yz5FLq0BXkPrY2jpr0B9VRd4iQ2vBSiLrjvLkIPPluzxQFYJ5JkGubtIw==", "dev": true }, "abbrev": { @@ -16,11 +16,11 @@ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, "accepts": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz", - "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=", + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", + "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", "requires": { - "mime-types": "2.1.17", + "mime-types": "~2.1.18", "negotiator": "0.6.1" } }, @@ -35,28 +35,29 @@ "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" }, "ajv": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.3.0.tgz", - "integrity": "sha1-RBT/dKUIecII7l/cgm4ywwNUnto=", + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.0.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" } }, "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true }, "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.1" + "color-convert": "^1.9.0" } }, "append-field": { @@ -67,15 +68,17 @@ "aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true }, "are-we-there-yet": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", + "dev": true, "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.3" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, "argparse": { @@ -83,7 +86,7 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "requires": { - "sprintf-js": "1.0.3" + "sprintf-js": "~1.0.2" } }, "array-find-index": { @@ -103,9 +106,9 @@ "integrity": "sha1-qqEo5iybPDWAlFaMIZ/2T+SJ1Co=" }, "arraybuffer.slice": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz", - "integrity": "sha1-8zshWfBTKj8xB6JywMz70a0peco=" + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", + "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==" }, "asar": { "version": "0.11.0", @@ -113,13 +116,13 @@ "integrity": "sha1-uSbnksMV+MBIxDNx4yWwnJenZGQ=", "dev": true, "requires": { - "chromium-pickle-js": "0.1.0", - "commander": "2.11.0", - "cuint": "0.2.2", - "glob": "6.0.4", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "mksnapshot": "0.3.1" + "chromium-pickle-js": "^0.1.0", + "commander": "^2.9.0", + "cuint": "^0.2.1", + "glob": "^6.0.4", + "minimatch": "^3.0.0", + "mkdirp": "^0.5.0", + "mksnapshot": "^0.3.0" }, "dependencies": { "glob": { @@ -128,11 +131,11 @@ "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", "dev": true, "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } } } @@ -168,9 +171,9 @@ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" }, "aws4": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", - "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=" + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.7.0.tgz", + "integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w==" }, "backo2": { "version": "1.0.2", @@ -201,13 +204,474 @@ } }, "bcrypt": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-1.0.3.tgz", - "integrity": "sha512-pRyDdo73C8Nim3jwFJ7DWe3TZCgwDfWZ6nHS5LSdU77kWbj1frruvdndP02AOavtD4y8v6Fp2dolbHgp4SDrfg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-2.0.1.tgz", + "integrity": "sha512-DwB7WgJPdskbR+9Y3OTJtwRq09Lmm7Na6b+4ewvXjkD0nfNRi1OozxljHm5ETlDCBq9DTy04lQz+rj+T2ztIJg==", "optional": true, "requires": { - "nan": "2.6.2", - "node-pre-gyp": "0.6.36" + "nan": "2.10.0", + "node-pre-gyp": "0.9.1" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.0.1", + "bundled": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "debug": { + "version": "2.6.9", + "bundled": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.4.2", + "bundled": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.21", + "bundled": true, + "optional": true, + "requires": { + "safer-buffer": "^2.1.0" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true + }, + "minipass": { + "version": "2.2.4", + "bundled": true, + "requires": { + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" + }, + "dependencies": { + "yallist": { + "version": "3.0.2", + "bundled": true + } + } + }, + "minizlib": { + "version": "1.1.0", + "bundled": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "needle": { + "version": "2.2.0", + "bundled": true, + "optional": true, + "requires": { + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.9.1", + "bundled": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.0", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.1.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.3", + "bundled": true, + "optional": true + }, + "npm-packlist": { + "version": "1.1.10", + "bundled": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "rc": { + "version": "1.2.6", + "bundled": true, + "optional": true, + "requires": { + "deep-extend": "~0.4.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.5", + "bundled": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.0.3", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.6.2", + "bundled": true, + "optional": true, + "requires": { + "glob": "^7.0.5" + } + }, + "safe-buffer": { + "version": "5.1.1", + "bundled": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "optional": true + }, + "semver": { + "version": "5.5.0", + "bundled": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.0.3", + "bundled": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "tar": { + "version": "4.4.1", + "bundled": true, + "optional": true, + "requires": { + "chownr": "^1.0.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.2.4", + "minizlib": "^1.1.0", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.1", + "yallist": "^3.0.2" + }, + "dependencies": { + "yallist": { + "version": "3.0.2", + "bundled": true, + "optional": true + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "optional": true, + "requires": { + "string-width": "^1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true + } } }, "bcrypt-pbkdf": { @@ -216,7 +680,7 @@ "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", "optional": true, "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" } }, "bcryptjs": { @@ -238,16 +702,17 @@ "integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=", "dev": true, "requires": { - "buffers": "0.1.1", - "chainsaw": "0.1.0" + "buffers": "~0.1.1", + "chainsaw": "~0.1.0" } }, "bl": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.1.tgz", - "integrity": "sha1-ysMo977kVzDUBLaSID/LWQ4XLV4=", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz", + "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==", "requires": { - "readable-stream": "2.3.3" + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" } }, "blob": { @@ -259,8 +724,9 @@ "version": "0.0.9", "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "dev": true, "requires": { - "inherits": "2.0.3" + "inherits": "~2.0.0" } }, "bluebird": { @@ -275,15 +741,15 @@ "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", "requires": { "bytes": "3.0.0", - "content-type": "1.0.4", + "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "1.1.1", - "http-errors": "1.6.2", + "depd": "~1.1.1", + "http-errors": "~1.6.2", "iconv-lite": "0.4.19", - "on-finished": "2.3.0", + "on-finished": "~2.3.0", "qs": "6.5.1", "raw-body": "2.3.2", - "type-is": "1.6.15" + "type-is": "~1.6.15" } }, "boolbase": { @@ -296,18 +762,23 @@ "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", "requires": { - "hoek": "4.2.0" + "hoek": "4.x.x" } }, "brace-expansion": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", - "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + }, "bufferjs": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/bufferjs/-/bufferjs-3.0.1.tgz", @@ -329,11 +800,11 @@ "resolved": "https://registry.npmjs.org/buildmail/-/buildmail-2.0.0.tgz", "integrity": "sha1-8LewpZ6aShtQZrv6BR0kjzgy7s4=", "requires": { - "addressparser": "0.3.2", - "libbase64": "0.1.0", - "libmime": "1.2.0", - "libqp": "1.1.0", - "needle": "0.10.0" + "addressparser": "^0.3.2", + "libbase64": "^0.1.0", + "libmime": "^1.2.0", + "libqp": "^1.1.0", + "needle": "^0.10.0" }, "dependencies": { "addressparser": { @@ -346,8 +817,8 @@ "resolved": "https://registry.npmjs.org/needle/-/needle-0.10.0.tgz", "integrity": "sha1-FqJNY/KmEVLrdMzh0Sr4XFB1d9Q=", "requires": { - "debug": "2.6.9", - "iconv-lite": "0.4.19" + "debug": "^2.1.2", + "iconv-lite": "^0.4.4" } } } @@ -364,7 +835,7 @@ "integrity": "sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=", "requires": { "dicer": "0.2.5", - "readable-stream": "1.1.14" + "readable-stream": "1.1.x" }, "dependencies": { "isarray": { @@ -377,10 +848,10 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "0.10.31" + "string_decoder": "~0.10.x" } }, "string_decoder": { @@ -400,8 +871,8 @@ "resolved": "https://registry.npmjs.org/callback-stream/-/callback-stream-1.1.0.tgz", "integrity": "sha1-RwGlEmbwbgbqpx/BcjOCLYdfSQg=", "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.3" + "inherits": "^2.0.1", + "readable-stream": "> 1.0.0 < 3.0.0" } }, "callsite": { @@ -421,8 +892,8 @@ "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "dev": true, "requires": { - "camelcase": "2.1.1", - "map-obj": "1.0.1" + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" } }, "caseless": { @@ -435,16 +906,16 @@ "resolved": "https://registry.npmjs.org/cgi/-/cgi-0.3.1.tgz", "integrity": "sha1-h1HaZKHPGEnREFYxi3YNGs+6R9w=", "requires": { - "debug": "2.6.9", - "extend": "2.0.1", - "header-stack": "0.0.2", - "stream-stack": "1.1.4" + "debug": "2", + "extend": "~2.0.0", + "header-stack": "~0.0.2", + "stream-stack": "~1.1.1" }, "dependencies": { "extend": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-2.0.1.tgz", - "integrity": "sha1-HugBBonnOV/5RIJByYZSvHWagmA=" + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-2.0.2.tgz", + "integrity": "sha512-AgFD4VU+lVLP6vjnlNfF7OeInLTyeyckCNPEsuxz1vi786UuK/nk6ynPuhn/h+Ju9++TQyr5EpLRI14fc1QtTQ==" } } }, @@ -454,18 +925,18 @@ "integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=", "dev": true, "requires": { - "traverse": "0.3.9" + "traverse": ">=0.3.0 <0.4" } }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "cheerio": { @@ -473,22 +944,22 @@ "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz", "integrity": "sha1-qbqoYKP5tZWmuBsahocxIe06Jp4=", "requires": { - "css-select": "1.2.0", - "dom-serializer": "0.1.0", - "entities": "1.1.1", - "htmlparser2": "3.9.2", - "lodash.assignin": "4.2.0", - "lodash.bind": "4.2.1", - "lodash.defaults": "4.2.0", - "lodash.filter": "4.6.0", - "lodash.flatten": "4.4.0", - "lodash.foreach": "4.5.0", - "lodash.map": "4.6.0", - "lodash.merge": "4.6.1", - "lodash.pick": "4.4.0", - "lodash.reduce": "4.6.0", - "lodash.reject": "4.6.0", - "lodash.some": "4.6.0" + "css-select": "~1.2.0", + "dom-serializer": "~0.1.0", + "entities": "~1.1.1", + "htmlparser2": "^3.9.1", + "lodash.assignin": "^4.0.9", + "lodash.bind": "^4.1.4", + "lodash.defaults": "^4.0.1", + "lodash.filter": "^4.4.0", + "lodash.flatten": "^4.2.0", + "lodash.foreach": "^4.3.0", + "lodash.map": "^4.4.0", + "lodash.merge": "^4.4.0", + "lodash.pick": "^4.2.1", + "lodash.reduce": "^4.4.0", + "lodash.reject": "^4.4.0", + "lodash.some": "^4.4.0" } }, "chromium-pickle-js": { @@ -503,13 +974,13 @@ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "dev": true, "requires": { - "restore-cursor": "2.0.0" + "restore-cursor": "^2.0.0" } }, "cli-spinners": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.1.0.tgz", - "integrity": "sha1-8YR7FohE2RemceudFH499JfJDQY=", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.3.1.tgz", + "integrity": "sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg==", "dev": true }, "cliui": { @@ -518,15 +989,15 @@ "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" } }, "clone": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", - "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=" + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" }, "co": { "version": "4.6.0", @@ -536,7 +1007,8 @@ "code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true }, "color-convert": { "version": "1.9.1", @@ -544,7 +1016,7 @@ "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", "dev": true, "requires": { - "color-name": "1.1.3" + "color-name": "^1.1.1" } }, "color-name": { @@ -554,31 +1026,32 @@ "dev": true }, "colors": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.2.4.tgz", + "integrity": "sha512-6Y+iBnWmXL+AWtlOp2Vr6R2w5MUlNJRwR0ShVFaAb1CqWzhPOpQg4L0jxD+xpw/Nc8QJwaq3KM79QUCriY8CWQ==", "dev": true }, "combined-stream": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", + "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "commander": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", - "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==" + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", + "dev": true }, "commist": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/commist/-/commist-1.0.0.tgz", "integrity": "sha1-wMNSUBz29S6RJOPvicmAbiAi6+8=", "requires": { - "leven": "1.0.2", - "minimist": "1.2.0" + "leven": "^1.0.0", + "minimist": "^1.1.0" }, "dependencies": { "minimist": { @@ -594,9 +1067,9 @@ "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=" }, "component-emitter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz", - "integrity": "sha1-KWWU8nU9qmOZbSrwjRWpURbJrsM=" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" }, "component-inherit": { "version": "0.0.3", @@ -609,19 +1082,21 @@ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "concat-stream": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", - "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.3", - "typedarray": "0.0.6" + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" } }, "console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true }, "content-disposition": { "version": "0.5.2", @@ -652,15 +1127,6 @@ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, - "cookies": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.7.1.tgz", - "integrity": "sha1-fIphX1SBxhq58WyDNzG8uPZjuZs=", - "requires": { - "depd": "1.1.1", - "keygrip": "1.0.2" - } - }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", @@ -671,8 +1137,8 @@ "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.4.tgz", "integrity": "sha1-K9OB8usgECAQXNUOpZ2mMJBpRoY=", "requires": { - "object-assign": "4.1.1", - "vary": "1.1.2" + "object-assign": "^4", + "vary": "^1" } }, "crc": { @@ -685,7 +1151,7 @@ "resolved": "https://registry.npmjs.org/cron/-/cron-1.3.0.tgz", "integrity": "sha512-K/SF7JlgMmNjcThWxkKvsHhey2EDB4CeOEWJ9aXWj3fbQJppsvTPIeyLdHfNq5IbbsMUUjRW1nr5dSO95f2E4w==", "requires": { - "moment-timezone": "0.5.14" + "moment-timezone": "^0.5.x" } }, "cryptiles": { @@ -693,7 +1159,7 @@ "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", "requires": { - "boom": "5.2.0" + "boom": "5.x.x" }, "dependencies": { "boom": { @@ -701,7 +1167,7 @@ "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", "requires": { - "hoek": "4.2.0" + "hoek": "4.x.x" } } } @@ -711,10 +1177,10 @@ "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", "requires": { - "boolbase": "1.0.0", - "css-what": "2.1.0", + "boolbase": "~1.0.0", + "css-what": "2.1", "domutils": "1.5.1", - "nth-check": "1.0.1" + "nth-check": "~1.0.1" } }, "css-what": { @@ -734,7 +1200,7 @@ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", "dev": true, "requires": { - "array-find-index": "1.0.2" + "array-find-index": "^1.0.1" } }, "dashdash": { @@ -742,7 +1208,7 @@ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "debug": { @@ -765,12 +1231,12 @@ "integrity": "sha1-rjvLfjTGWHmt/nfhnDD4ZgK0vbA=", "dev": true, "requires": { - "binary": "0.3.0", - "graceful-fs": "4.1.11", - "mkpath": "0.1.0", - "nopt": "3.0.6", - "q": "1.5.1", - "readable-stream": "1.1.14", + "binary": "^0.3.0", + "graceful-fs": "^4.1.3", + "mkpath": "^0.1.0", + "nopt": "^3.0.1", + "q": "^1.1.2", + "readable-stream": "^1.1.8", "touch": "0.0.3" }, "dependencies": { @@ -780,16 +1246,25 @@ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", "dev": true }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true, + "requires": { + "abbrev": "1" + } + }, "readable-stream": { "version": "1.1.14", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "0.10.31" + "string_decoder": "~0.10.x" } }, "string_decoder": { @@ -801,9 +1276,10 @@ } }, "deep-extend": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", - "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=" + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz", + "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==", + "dev": true }, "delayed-stream": { "version": "1.0.0", @@ -813,12 +1289,18 @@ "delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true + }, + "denque": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/denque/-/denque-1.3.0.tgz", + "integrity": "sha512-4SRaSj+PqmrS1soW5/Avd7eJIM2JJIqLLmwhRqIGleZM/8KwZq80njbSS2Iqas+6oARkSkLDHEk4mm78q3JlIg==" }, "depd": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", - "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, "destroy": { "version": "1.0.4", @@ -836,7 +1318,7 @@ "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz", "integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=", "requires": { - "readable-stream": "1.1.14", + "readable-stream": "1.1.x", "streamsearch": "0.1.2" }, "dependencies": { @@ -850,10 +1332,10 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "0.10.31" + "string_decoder": "~0.10.x" } }, "string_decoder": { @@ -868,8 +1350,8 @@ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", "requires": { - "domelementtype": "1.1.3", - "entities": "1.1.1" + "domelementtype": "~1.1.1", + "entities": "~1.1.1" }, "dependencies": { "domelementtype": { @@ -885,11 +1367,11 @@ "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=" }, "domhandler": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.1.tgz", - "integrity": "sha1-iS5HAAqZvlW783dP/qBWHYh5wlk=", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", "requires": { - "domelementtype": "1.3.0" + "domelementtype": "1" } }, "domutils": { @@ -897,19 +1379,19 @@ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", "requires": { - "dom-serializer": "0.1.0", - "domelementtype": "1.3.0" + "dom-serializer": "0", + "domelementtype": "1" } }, "duplexify": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.3.tgz", - "integrity": "sha512-g8ID9OroF9hKt2POf8YLayy+9594PzmM3scI00/uBXocX3TWNgoB67hjzkFe9ITAbQOne/lLdBxHXvYUM4ZgGA==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz", + "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", "requires": { - "end-of-stream": "1.4.1", - "inherits": "2.0.3", - "readable-stream": "2.3.3", - "stream-shift": "1.0.0" + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" } }, "ecc-jsbn": { @@ -918,7 +1400,7 @@ "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", "optional": true, "requires": { - "jsbn": "0.1.1" + "jsbn": "~0.1.0" } }, "ee-first": { @@ -932,9 +1414,9 @@ "integrity": "sha1-rdVOn4+D7QL2UZ7BATX2mLGTNs8=", "dev": true, "requires": { - "@types/node": "7.0.48", - "electron-download": "3.3.0", - "extract-zip": "1.6.6" + "@types/node": "^7.0.18", + "electron-download": "^3.0.1", + "extract-zip": "^1.0.3" } }, "electron-download": { @@ -943,15 +1425,15 @@ "integrity": "sha1-LP1U1pZsAZxNSa1l++Zcyc3vaMg=", "dev": true, "requires": { - "debug": "2.6.9", - "fs-extra": "0.30.0", - "home-path": "1.0.5", - "minimist": "1.2.0", - "nugget": "2.0.1", - "path-exists": "2.1.0", - "rc": "1.2.2", - "semver": "5.3.0", - "sumchecker": "1.3.1" + "debug": "^2.2.0", + "fs-extra": "^0.30.0", + "home-path": "^1.0.1", + "minimist": "^1.2.0", + "nugget": "^2.0.0", + "path-exists": "^2.1.0", + "rc": "^1.1.2", + "semver": "^5.3.0", + "sumchecker": "^1.2.0" }, "dependencies": { "fs-extra": { @@ -960,11 +1442,20 @@ "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "2.4.0", - "klaw": "1.3.1", - "path-is-absolute": "1.0.1", - "rimraf": "2.6.2" + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0", + "path-is-absolute": "^1.0.0", + "rimraf": "^2.2.8" + } + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" } }, "minimist": { @@ -981,16 +1472,38 @@ "integrity": "sha1-JK4GrZ3WHLfk1oiWH0kRjEChEOs=", "dev": true, "requires": { - "colors": "1.1.2", - "debug": "2.6.9", - "detect-libc": "1.0.3", - "fs-extra": "3.0.1", - "node-abi": "2.2.0", - "node-gyp": "3.6.2", - "ora": "1.4.0", - "rimraf": "2.6.2", - "spawn-rx": "2.0.12", - "yargs": "7.1.0" + "colors": "^1.1.2", + "debug": "^2.6.3", + "detect-libc": "^1.0.3", + "fs-extra": "^3.0.1", + "node-abi": "^2.0.0", + "node-gyp": "^3.6.0", + "ora": "^1.2.0", + "rimraf": "^2.6.1", + "spawn-rx": "^2.0.10", + "yargs": "^7.0.2" + }, + "dependencies": { + "fs-extra": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", + "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^3.0.0", + "universalify": "^0.1.0" + } + }, + "jsonfile": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", + "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + } } }, "electron-squirrel-startup": { @@ -999,7 +1512,7 @@ "integrity": "sha1-GbTlWTP6Dvj1VnhLnGYPdyVGoLg=", "dev": true, "requires": { - "debug": "2.6.9" + "debug": "^2.2.0" } }, "electron-winstaller": { @@ -1008,12 +1521,12 @@ "integrity": "sha1-B7ijoFVrhtDfQE6kCqz7cbJg03M=", "dev": true, "requires": { - "asar": "0.11.0", - "bluebird": "3.5.1", - "debug": "2.6.9", - "fs-extra": "0.26.7", - "lodash.template": "4.4.0", - "temp": "0.8.3" + "asar": "^0.11.0", + "bluebird": "^3.3.4", + "debug": "^2.2.0", + "fs-extra": "^0.26.7", + "lodash.template": "^4.2.2", + "temp": "^0.8.3" }, "dependencies": { "fs-extra": { @@ -1022,26 +1535,35 @@ "integrity": "sha1-muH92UiXeY7at20JGM9C0MMYT6k=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "2.4.0", - "klaw": "1.3.1", - "path-is-absolute": "1.0.1", - "rimraf": "2.6.2" + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0", + "path-is-absolute": "^1.0.0", + "rimraf": "^2.2.8" + } + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" } } } }, "encodeurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", - "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" }, "encoding": { "version": "0.1.12", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", "requires": { - "iconv-lite": "0.4.19" + "iconv-lite": "~0.4.13" } }, "end-of-stream": { @@ -1049,96 +1571,90 @@ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", "requires": { - "once": "1.4.0" + "once": "^1.4.0" } }, "engine.io": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-1.8.5.tgz", - "integrity": "sha512-j1DWIcktw4hRwrv6nWx++5nFH2X64x16MAG2P0Lmi5Dvdfi3I+Jhc7JKJIdAmDJa+5aZ/imHV7dWRPy2Cqjh3A==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.0.tgz", + "integrity": "sha512-mRbgmAtQ4GAlKwuPnnAvXXwdPhEx+jkc0OBCLrXuD/CRvwNK3AxRSnqK4FSqmAMRRHryVJP8TopOvmEaA64fKw==", "requires": { - "accepts": "1.3.3", + "accepts": "~1.3.4", "base64id": "1.0.0", "cookie": "0.3.1", - "debug": "2.3.3", - "engine.io-parser": "1.3.2", - "ws": "1.1.5" + "debug": "~3.1.0", + "engine.io-parser": "~2.1.0", + "ws": "~3.3.1" }, "dependencies": { - "accepts": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", - "integrity": "sha1-w8p0NJOGSMPg2cHjKN1otiLChMo=", + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "requires": { - "mime-types": "2.1.17", - "negotiator": "0.6.1" + "ms": "2.0.0" } }, - "debug": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", + "ws": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", + "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", "requires": { - "ms": "0.7.2" + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" } - }, - "ms": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=" } } }, "engine.io-client": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.8.5.tgz", - "integrity": "sha512-AYTgHyeVUPitsseqjoedjhYJapNVoSPShbZ+tEUX9/73jgZ/Z3sUlJf9oYgdEBBdVhupUpUqSxH0kBCXlQnmZg==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz", + "integrity": "sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==", "requires": { "component-emitter": "1.2.1", "component-inherit": "0.0.3", - "debug": "2.3.3", - "engine.io-parser": "1.3.2", + "debug": "~3.1.0", + "engine.io-parser": "~2.1.1", "has-cors": "1.1.0", "indexof": "0.0.1", - "parsejson": "0.0.3", "parseqs": "0.0.5", "parseuri": "0.0.5", - "ws": "1.1.5", - "xmlhttprequest-ssl": "1.5.3", + "ws": "~3.3.1", + "xmlhttprequest-ssl": "~1.5.4", "yeast": "0.1.2" }, "dependencies": { - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" - }, "debug": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "ws": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", + "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", "requires": { - "ms": "0.7.2" + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" } - }, - "ms": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=" } } }, "engine.io-parser": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.3.2.tgz", - "integrity": "sha1-k3sHnwAH0Ik+xW1GyyILjLQ1Igo=", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.2.tgz", + "integrity": "sha512-dInLFzr80RijZ1rGpx1+56/uFoH7/7InhH3kZt+Ms6hT8tNx3NGW/WNSA/f8As1WkOfkuyb3tnRyuXGxusclMw==", "requires": { "after": "0.8.2", - "arraybuffer.slice": "0.0.6", + "arraybuffer.slice": "~0.0.7", "base64-arraybuffer": "0.1.5", "blob": "0.0.4", - "has-binary": "0.1.7", - "wtf-8": "1.0.0" + "has-binary2": "~1.0.2" } }, "entities": { @@ -1152,13 +1668,13 @@ "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", "dev": true, "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "es6-promise": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.1.1.tgz", - "integrity": "sha512-OaU1hHjgJf+b0NzsxCg7NdIYERD6Hy/PEmFLTjw+b65scuisG3Kt4QoTvJ66BBkPZ581gr0kpoVzKnxniM8nng==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz", + "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==", "dev": true }, "escape-html": { @@ -1172,9 +1688,9 @@ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "esprima": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", - "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==" + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" }, "etag": { "version": "1.8.1", @@ -1182,40 +1698,40 @@ "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" }, "express": { - "version": "4.16.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.16.2.tgz", - "integrity": "sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w=", + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/express/-/express-4.16.3.tgz", + "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=", "requires": { - "accepts": "1.3.4", + "accepts": "~1.3.5", "array-flatten": "1.1.1", "body-parser": "1.18.2", "content-disposition": "0.5.2", - "content-type": "1.0.4", + "content-type": "~1.0.4", "cookie": "0.3.1", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "1.1.1", - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "etag": "1.8.1", - "finalhandler": "1.1.0", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.1.1", "fresh": "0.5.2", "merge-descriptors": "1.0.1", - "methods": "1.1.2", - "on-finished": "2.3.0", - "parseurl": "1.3.2", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", "path-to-regexp": "0.1.7", - "proxy-addr": "2.0.2", + "proxy-addr": "~2.0.3", "qs": "6.5.1", - "range-parser": "1.2.0", + "range-parser": "~1.2.0", "safe-buffer": "5.1.1", - "send": "0.16.1", - "serve-static": "1.13.1", + "send": "0.16.2", + "serve-static": "1.13.2", "setprototypeof": "1.1.0", - "statuses": "1.3.1", - "type-is": "1.6.15", + "statuses": "~1.4.0", + "type-is": "~1.6.16", "utils-merge": "1.0.1", - "vary": "1.1.2" + "vary": "~1.1.2" } }, "express-session": { @@ -1227,10 +1743,10 @@ "cookie-signature": "1.0.6", "crc": "3.4.4", "debug": "2.6.9", - "depd": "1.1.1", - "on-headers": "1.0.1", - "parseurl": "1.3.2", - "uid-safe": "2.1.5", + "depd": "~1.1.1", + "on-headers": "~1.0.1", + "parseurl": "~1.3.2", + "uid-safe": "~2.1.5", "utils-merge": "1.0.1" } }, @@ -1251,6 +1767,17 @@ "yauzl": "2.4.1" }, "dependencies": { + "concat-stream": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", + "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, "mkdirp": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz", @@ -1268,9 +1795,9 @@ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" }, "fast-deep-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", - "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" }, "fast-json-stable-stringify": { "version": "2.0.0", @@ -1282,7 +1809,7 @@ "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", "requires": { - "websocket-driver": "0.7.0" + "websocket-driver": ">=0.5.1" } }, "fd-slicer": { @@ -1291,60 +1818,37 @@ "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", "dev": true, "requires": { - "pend": "1.2.0" + "pend": "~1.2.0" } }, "feedparser": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/feedparser/-/feedparser-1.1.3.tgz", - "integrity": "sha1-C3Jfa0y+SybVGLrsDQEK0CAVbIs=", + "version": "2.2.9", + "resolved": "https://registry.npmjs.org/feedparser/-/feedparser-2.2.9.tgz", + "integrity": "sha1-kTgZfa/a4F/K3eADa+6vYGbCxek=", "requires": { - "addressparser": "0.1.3", - "array-indexofobject": "0.0.1", - "readable-stream": "1.0.34", - "sax": "0.6.1" - }, - "dependencies": { - "addressparser": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/addressparser/-/addressparser-0.1.3.tgz", - "integrity": "sha1-npq0PSV+GueE4d9fWAyfUkD1iHQ=" - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "0.0.1", - "string_decoder": "0.10.31" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - } + "addressparser": "^1.0.1", + "array-indexofobject": "~0.0.1", + "lodash.assign": "^4.2.0", + "lodash.get": "^4.4.2", + "lodash.has": "^4.5.2", + "lodash.uniq": "^4.5.0", + "mri": "^1.1.0", + "readable-stream": "^2.2.2", + "sax": "^1.2.4" } }, "finalhandler": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", - "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", + "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", "requires": { "debug": "2.6.9", - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "statuses": "1.3.1", - "unpipe": "1.0.0" + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.4.0", + "unpipe": "~1.0.0" } }, "find-up": { @@ -1353,26 +1857,8 @@ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" - } - }, - "follow-redirects": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.3.0.tgz", - "integrity": "sha1-9oSHH8EW0uMp/aVe9naH9Pq8kFw=", - "requires": { - "debug": "3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - } + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "forever-agent": { @@ -1381,13 +1867,13 @@ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" }, "form-data": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz", - "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", + "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.17" + "asynckit": "^0.4.0", + "combined-stream": "1.0.6", + "mime-types": "^2.1.12" } }, "forwarded": { @@ -1401,25 +1887,13 @@ "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" }, "fs-extra": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", - "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=", - "dev": true, + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "3.0.1", - "universalify": "0.1.1" - }, - "dependencies": { - "jsonfile": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", - "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11" - } - } + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } }, "fs.notify": { @@ -1427,8 +1901,8 @@ "resolved": "https://registry.npmjs.org/fs.notify/-/fs.notify-0.0.4.tgz", "integrity": "sha1-YyhNRaNLUs5gCIpt2+xbd208AT0=", "requires": { - "async": "0.1.22", - "retry": "0.6.1" + "async": "~0.1.22", + "retry": "~0.6.0" } }, "fs.realpath": { @@ -1440,50 +1914,28 @@ "version": "1.0.11", "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "dev": true, "requires": { - "graceful-fs": "4.1.11", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.6.2" - } - }, - "fstream-ignore": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", - "integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=", - "optional": true, - "requires": { - "fstream": "1.0.11", - "inherits": "2.0.3", - "minimatch": "3.0.4" + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" } }, "gauge": { "version": "2.7.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": true, "requires": { - "aproba": "1.2.0", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.2" - } - }, - "generate-function": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", - "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=" - }, - "generate-object-property": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", - "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", - "requires": { - "is-property": "1.0.2" + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" } }, "geolib": { @@ -1508,7 +1960,7 @@ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "glob": { @@ -1516,12 +1968,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "glob-parent": { @@ -1529,8 +1981,8 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" } }, "glob-stream": { @@ -1538,16 +1990,16 @@ "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", "requires": { - "extend": "3.0.1", - "glob": "7.1.2", - "glob-parent": "3.1.0", - "is-negated-glob": "1.0.0", - "ordered-read-streams": "1.0.1", - "pumpify": "1.4.0", - "readable-stream": "2.3.3", - "remove-trailing-separator": "1.1.0", - "to-absolute-glob": "2.0.2", - "unique-stream": "2.2.1" + "extend": "^3.0.0", + "glob": "^7.1.1", + "glob-parent": "^3.1.0", + "is-negated-glob": "^1.0.0", + "ordered-read-streams": "^1.0.0", + "pumpify": "^1.3.5", + "readable-stream": "^2.1.5", + "remove-trailing-separator": "^1.0.1", + "to-absolute-glob": "^2.0.0", + "unique-stream": "^2.0.2" } }, "graceful-fs": { @@ -1565,30 +2017,22 @@ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", "requires": { - "ajv": "5.3.0", - "har-schema": "2.0.0" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "requires": { - "ansi-regex": "2.1.1" + "ajv": "^5.1.0", + "har-schema": "^2.0.0" } }, - "has-binary": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.7.tgz", - "integrity": "sha1-aOYesWIQyVRaClzOBqhzkS/h5ow=", + "has-binary2": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", + "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", "requires": { - "isarray": "0.0.1" + "isarray": "2.0.1" }, "dependencies": { "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" } } }, @@ -1606,7 +2050,8 @@ "has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true }, "hash-sum": { "version": "1.0.2", @@ -1618,10 +2063,10 @@ "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", "requires": { - "boom": "4.3.1", - "cryptiles": "3.1.2", - "hoek": "4.2.0", - "sntp": "2.1.0" + "boom": "4.x.x", + "cryptiles": "3.x.x", + "hoek": "4.x.x", + "sntp": "2.x.x" } }, "header-stack": { @@ -1629,9 +2074,9 @@ "resolved": "https://registry.npmjs.org/header-stack/-/header-stack-0.0.2.tgz", "integrity": "sha1-Rg1ysW04ZSzkUeIyU2lxsx6E1g8=", "requires": { - "bufferjs": "3.0.1", - "bufferlist": "0.1.0", - "stream-stack": "1.1.4" + "bufferjs": ">= 0.2.3", + "bufferlist": ">= 0.0.6", + "stream-stack": ">= 1.1.1" } }, "help-me": { @@ -1639,16 +2084,16 @@ "resolved": "https://registry.npmjs.org/help-me/-/help-me-1.1.0.tgz", "integrity": "sha1-jy1QjQYAtKRW2i8IZVbn5cBWo8Y=", "requires": { - "callback-stream": "1.1.0", - "glob-stream": "6.1.0", - "through2": "2.0.3", - "xtend": "4.0.1" + "callback-stream": "^1.0.2", + "glob-stream": "^6.1.0", + "through2": "^2.0.1", + "xtend": "^4.0.0" } }, "hoek": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz", - "integrity": "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ==" + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", + "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==" }, "home-path": { "version": "1.0.5", @@ -1657,9 +2102,9 @@ "dev": true }, "hosted-git-info": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", - "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz", + "integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==", "dev": true }, "htmlparser2": { @@ -1667,61 +2112,44 @@ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz", "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", "requires": { - "domelementtype": "1.3.0", - "domhandler": "2.4.1", - "domutils": "1.5.1", - "entities": "1.1.1", - "inherits": "2.0.3", - "readable-stream": "2.3.3" + "domelementtype": "^1.3.0", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^2.0.2" } }, "http-errors": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", - "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", "requires": { - "depd": "1.1.1", + "depd": "~1.1.2", "inherits": "2.0.3", - "setprototypeof": "1.0.3", - "statuses": "1.3.1" - }, - "dependencies": { - "setprototypeof": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", - "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=" - } + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" } }, "http-parser-js": { - "version": "0.4.10", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.10.tgz", - "integrity": "sha1-ksnBN0w1CF912zWexWzCV8u5P6Q=" + "version": "0.4.13", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.13.tgz", + "integrity": "sha1-O9bW/ebjFyyTNMOzO2wZPYD+ETc=" }, "http-signature": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.13.1" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "i18next": { - "version": "1.10.6", - "resolved": "https://registry.npmjs.org/i18next/-/i18next-1.10.6.tgz", - "integrity": "sha1-/d2LSRUCxIlnpiljvHIv+JfN3qA=", - "requires": { - "cookies": "0.7.1", - "i18next-client": "1.10.3", - "json5": "0.2.0" - } - }, - "i18next-client": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/i18next-client/-/i18next-client-1.10.3.tgz", - "integrity": "sha1-dtA1NVftkNHnqHdU1QBNP3gB/ek=" + "version": "11.6.0", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-11.6.0.tgz", + "integrity": "sha512-+eOdu1laoPX8l3zuaEFpf0MPYqAyKeX46WEjRkpPLp0TcijP3ww6NrDCPcRwX3yKB69R+ggiLvLGzCm8ALaVXQ==" }, "iconv-lite": { "version": "0.4.19", @@ -1733,8 +2161,8 @@ "resolved": "https://registry.npmjs.org/imap/-/imap-0.8.19.tgz", "integrity": "sha1-NniHOTSrCc6mukh0HyhNoq9Z2NU=", "requires": { - "readable-stream": "1.1.14", - "utf7": "1.0.2" + "readable-stream": "1.1.x", + "utf7": ">=1.0.2" }, "dependencies": { "isarray": { @@ -1747,10 +2175,10 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "0.10.31" + "string_decoder": "~0.10.x" } }, "string_decoder": { @@ -1766,7 +2194,7 @@ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", "dev": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "indexof": { @@ -1779,8 +2207,8 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -1789,9 +2217,10 @@ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "ini": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", - "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=" + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true }, "invert-kv": { "version": "1.0.0", @@ -1800,17 +2229,17 @@ "dev": true }, "ipaddr.js": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.5.2.tgz", - "integrity": "sha1-1LUFvemUaYfM8PxY2QEP+WB+P6A=" + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.6.0.tgz", + "integrity": "sha1-4/o1e3c9phnybpXwSdBVxyeW+Gs=" }, "is-absolute": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", "requires": { - "is-relative": "1.0.0", - "is-windows": "1.0.2" + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" } }, "is-arrayish": { @@ -1825,7 +2254,7 @@ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "dev": true, "requires": { - "builtin-modules": "1.1.1" + "builtin-modules": "^1.0.0" } }, "is-extglob": { @@ -1839,15 +2268,16 @@ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-glob": { @@ -1855,24 +2285,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "requires": { - "is-extglob": "2.1.1" - } - }, - "is-my-ip-valid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz", - "integrity": "sha512-gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ==" - }, - "is-my-json-valid": { - "version": "2.17.2", - "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.17.2.tgz", - "integrity": "sha512-IBhBslgngMQN8DDSppmgDv7RNrlFotuuDsKcrCP3+HbFaVivIBU7u9oiiErw8sH4ynx3+gOGQ3q2otkgiSi6kg==", - "requires": { - "generate-function": "2.0.0", - "generate-object-property": "1.2.0", - "is-my-ip-valid": "1.0.0", - "jsonpointer": "4.0.1", - "xtend": "4.0.1" + "is-extglob": "^2.1.0" } }, "is-negated-glob": { @@ -1880,17 +2293,12 @@ "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=" }, - "is-property": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", - "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=" - }, "is-relative": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", "requires": { - "is-unc-path": "1.0.0" + "is-unc-path": "^1.0.0" } }, "is-typedarray": { @@ -1903,7 +2311,7 @@ "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", "requires": { - "unc-path-regex": "0.1.2" + "unc-path-regex": "^0.1.2" } }, "is-utf8": { @@ -1933,12 +2341,12 @@ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, "js-yaml": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz", - "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", + "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", "requires": { - "argparse": "1.0.10", - "esprima": "4.0.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, "jsbn": { @@ -1962,7 +2370,7 @@ "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", "requires": { - "jsonify": "0.0.0" + "jsonify": "~0.0.0" } }, "json-stringify-safe": { @@ -1970,28 +2378,17 @@ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, - "json3": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", - "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=" - }, - "json5": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.2.0.tgz", - "integrity": "sha1-ttcDXHDEVw+IPH7cdZ3jrgPbM0M=" - }, "jsonata": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/jsonata/-/jsonata-1.5.0.tgz", - "integrity": "sha512-Bc+T0WspLUArkLqp9Bgewja92LukPRlyS1hsjGITQj1OLxwEi+yxpVfcpn2NBJePHJb6CdqJsu/QjPGiWmez8A==" + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/jsonata/-/jsonata-1.5.4.tgz", + "integrity": "sha512-F/p92UWYUn+kD3SE898jjlz1mkBzjtok9ZTtWT6+axS4Z2Wtc8p/md6xHkyCGWPdIEJBTSw0mlvKE+s+fAVSjg==" }, "jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", - "dev": true, + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "^4.1.6" } }, "jsonify": { @@ -1999,11 +2396,6 @@ "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" }, - "jsonpointer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", - "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=" - }, "jsprim": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", @@ -2015,18 +2407,13 @@ "verror": "1.10.0" } }, - "keygrip": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.0.2.tgz", - "integrity": "sha1-rTKXxVcGneqLz+ek+kkbdcXd65E=" - }, "klaw": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", "dev": true, "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "^4.1.9" } }, "lcid": { @@ -2035,7 +2422,7 @@ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "dev": true, "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "leven": { @@ -2053,9 +2440,9 @@ "resolved": "https://registry.npmjs.org/libmime/-/libmime-1.2.0.tgz", "integrity": "sha1-jYS087Ils3BEECNu9JSQZDa6dCs=", "requires": { - "iconv-lite": "0.4.19", - "libbase64": "0.1.0", - "libqp": "1.1.0" + "iconv-lite": "^0.4.13", + "libbase64": "^0.1.0", + "libqp": "^1.1.0" } }, "libqp": { @@ -2069,18 +2456,13 @@ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" } }, - "lodash": { - "version": "4.17.5", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", - "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==" - }, "lodash._reinterpolate": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", @@ -2090,8 +2472,7 @@ "lodash.assign": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", - "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", - "dev": true + "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=" }, "lodash.assignin": { "version": "4.2.0", @@ -2123,6 +2504,16 @@ "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz", "integrity": "sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM=" }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" + }, + "lodash.has": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/lodash.has/-/lodash.has-4.5.2.tgz", + "integrity": "sha1-0Z9NwQlQWMzL4rDN9O4P5Ko3yGI=" + }, "lodash.map": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", @@ -2159,8 +2550,8 @@ "integrity": "sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A=", "dev": true, "requires": { - "lodash._reinterpolate": "3.0.0", - "lodash.templatesettings": "4.1.0" + "lodash._reinterpolate": "~3.0.0", + "lodash.templatesettings": "^4.0.0" } }, "lodash.templatesettings": { @@ -2169,16 +2560,21 @@ "integrity": "sha1-K01OlbpEDZFf8IvImeRVNmZxMxY=", "dev": true, "requires": { - "lodash._reinterpolate": "3.0.0" + "lodash._reinterpolate": "~3.0.0" } }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" + }, "log-symbols": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", "dev": true, "requires": { - "chalk": "2.3.1" + "chalk": "^2.0.1" } }, "loud-rejection": { @@ -2187,17 +2583,17 @@ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", "dev": true, "requires": { - "currently-unhandled": "0.4.1", - "signal-exit": "3.0.2" + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" } }, "lru-cache": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", - "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", + "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "mailcomposer": { @@ -2205,8 +2601,8 @@ "resolved": "https://registry.npmjs.org/mailcomposer/-/mailcomposer-2.1.0.tgz", "integrity": "sha1-plMYIomWFP7omckiJtgeK5y7GD0=", "requires": { - "buildmail": "2.0.0", - "libmime": "1.2.0" + "buildmail": "^2.0.0", + "libmime": "^1.2.0" } }, "mailparser": { @@ -2214,10 +2610,10 @@ "resolved": "https://registry.npmjs.org/mailparser/-/mailparser-0.6.2.tgz", "integrity": "sha1-A8SGA5vfTfbNO2rcqqxBB9/bwGg=", "requires": { - "encoding": "0.1.12", - "mime": "1.4.1", - "mimelib": "0.3.1", - "uue": "3.1.1" + "encoding": "^0.1.12", + "mime": "^1.3.4", + "mimelib": "^0.3.0", + "uue": "^3.1.0" } }, "map-obj": { @@ -2237,7 +2633,7 @@ "integrity": "sha1-H7X7Xwsu3xrdGEkX6RjwlKn/NGU=", "requires": { "debug": "3.1.0", - "lru-cache": "4.1.1" + "lru-cache": "^4.0.3" }, "dependencies": { "debug": { @@ -2256,16 +2652,16 @@ "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", "dev": true, "requires": { - "camelcase-keys": "2.1.0", - "decamelize": "1.2.0", - "loud-rejection": "1.6.0", - "map-obj": "1.0.1", - "minimist": "1.2.0", - "normalize-package-data": "2.4.0", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "redent": "1.0.0", - "trim-newlines": "1.0.0" + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" }, "dependencies": { "minimist": { @@ -2292,16 +2688,16 @@ "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" }, "mime-db": { - "version": "1.30.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", - "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=" + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==" }, "mime-types": { - "version": "2.1.17", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", - "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", "requires": { - "mime-db": "1.30.0" + "mime-db": "~1.33.0" } }, "mimelib": { @@ -2309,8 +2705,8 @@ "resolved": "https://registry.npmjs.org/mimelib/-/mimelib-0.3.1.tgz", "integrity": "sha1-eHrdJBXYJ6yzr27EvKHqlZZBiFM=", "requires": { - "addressparser": "1.0.1", - "encoding": "0.1.12" + "addressparser": "~1.0.1", + "encoding": "~0.1.12" } }, "mimic-fn": { @@ -2324,7 +2720,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "1.1.8" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -2354,7 +2750,7 @@ "requires": { "decompress-zip": "0.3.0", "fs-extra": "0.26.7", - "request": "2.83.0" + "request": "^2.79.0" }, "dependencies": { "fs-extra": { @@ -2363,46 +2759,55 @@ "integrity": "sha1-muH92UiXeY7at20JGM9C0MMYT6k=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "2.4.0", - "klaw": "1.3.1", - "path-is-absolute": "1.0.1", - "rimraf": "2.6.2" + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0", + "path-is-absolute": "^1.0.0", + "rimraf": "^2.2.8" + } + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" } } } }, "moment": { - "version": "2.20.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.20.1.tgz", - "integrity": "sha512-Yh9y73JRljxW5QxN08Fner68eFLxM5ynNOAw2LbIB1YAGeQzZT8QFSUvkAz609Zf+IHhhaUxqZK8dG3W/+HEvg==" + "version": "2.22.2", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.22.2.tgz", + "integrity": "sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y=" }, "moment-timezone": { - "version": "0.5.14", - "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.14.tgz", - "integrity": "sha1-TrOP+VOLgBCLpGekWPPtQmjM/LE=", + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.21.tgz", + "integrity": "sha512-j96bAh4otsgj3lKydm3K7kdtA3iKf2m6MY2iSYCzCm5a1zmHo1g+aK3068dDEeocLZQIS9kU8bsdQHLqEvgW0A==", "requires": { - "moment": "2.20.1" + "moment": ">= 2.9.0" } }, "mqtt": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/mqtt/-/mqtt-2.15.1.tgz", - "integrity": "sha512-wcU1Ec/PqdgmWZ8InKd9298UlHbsL4ujnUdkkN1JIee0HI1Qe+JvZhO66qCYQKEH+U2XsJMcr9GncQPKUEfmRw==", - "requires": { - "commist": "1.0.0", - "concat-stream": "1.6.0", - "end-of-stream": "1.4.1", - "help-me": "1.1.0", - "inherits": "2.0.3", - "minimist": "1.2.0", - "mqtt-packet": "5.4.0", - "pump": "2.0.1", - "readable-stream": "2.3.3", - "reinterval": "1.1.0", - "split2": "2.2.0", - "websocket-stream": "5.1.1", - "xtend": "4.0.1" + "version": "2.18.3", + "resolved": "https://registry.npmjs.org/mqtt/-/mqtt-2.18.3.tgz", + "integrity": "sha512-BXCUugFgA6FOWJGxhvUWtVLOdt6hYTmiMGPksEyKuuF1FQ0ji7UJBJ/0kVRMUtUWCAtPGnt4mZZZgJpzNLcuQg==", + "requires": { + "commist": "^1.0.0", + "concat-stream": "^1.6.2", + "end-of-stream": "^1.4.1", + "help-me": "^1.0.1", + "inherits": "^2.0.3", + "minimist": "^1.2.0", + "mqtt-packet": "^5.6.0", + "pump": "^3.0.0", + "readable-stream": "^2.3.6", + "reinterval": "^1.1.0", + "split2": "^2.1.1", + "websocket-stream": "^5.1.2", + "xtend": "^4.0.1" }, "dependencies": { "minimist": { @@ -2413,34 +2818,39 @@ } }, "mqtt-packet": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/mqtt-packet/-/mqtt-packet-5.4.0.tgz", - "integrity": "sha512-ziN7uVysLdn7fYbOhEaKOhcZC3yIRTTakY4TFd2w+UvZIx9dPr8NCqbBYoC4WYDlzWHTn5EqR5x20pC+K24Ymg==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/mqtt-packet/-/mqtt-packet-5.6.0.tgz", + "integrity": "sha512-QECe2ivqcR1LRsPobRsjenEKAC3i1a5gmm+jNKJLrsiq9PaSQ18LlKFuxvhGxWkvGEPadWv6rKd31O4ICqS1Xw==", "requires": { - "bl": "1.2.1", - "inherits": "2.0.3", - "process-nextick-args": "1.0.7", - "safe-buffer": "5.1.1" + "bl": "^1.2.1", + "inherits": "^2.0.3", + "process-nextick-args": "^2.0.0", + "safe-buffer": "^5.1.0" } }, + "mri": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.1.tgz", + "integrity": "sha1-haom09ru7t+A3FmEr5XMXKXK2fE=" + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "multer": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/multer/-/multer-1.3.0.tgz", - "integrity": "sha1-CSsmcPaEb6SRSWXvyM+Uwg/sbNI=", - "requires": { - "append-field": "0.1.0", - "busboy": "0.2.14", - "concat-stream": "1.6.0", - "mkdirp": "0.5.1", - "object-assign": "3.0.0", - "on-finished": "2.3.0", - "type-is": "1.6.15", - "xtend": "4.0.1" + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.3.1.tgz", + "integrity": "sha512-JHdEoxkA/5NgZRo91RNn4UT+HdcJV9XUo01DTkKC7vo1erNIngtuaw9Y0WI8RdTlyi+wMIbunflhghzVLuGJyw==", + "requires": { + "append-field": "^0.1.0", + "busboy": "^0.2.11", + "concat-stream": "^1.5.2", + "mkdirp": "^0.5.1", + "object-assign": "^3.0.0", + "on-finished": "^2.3.0", + "type-is": "^1.6.4", + "xtend": "^4.0.0" }, "dependencies": { "object-assign": { @@ -2451,14 +2861,14 @@ } }, "mustache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/mustache/-/mustache-2.3.0.tgz", - "integrity": "sha1-QCj3d4sXcIpImTCm5SrDvKDaQdA=" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-2.3.1.tgz", + "integrity": "sha512-20dW38oeiTzauvbxs1YxQbr3gbu/Lfo15J4V0EqbspYnn/GwSeTSDNtESy2nak28BW0k8qp7dnrFhrsejLPUtw==" }, "nan": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz", - "integrity": "sha1-5P805slf37WuzAjeZZb0NgWn20U=", + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", + "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==", "optional": true }, "needle": { @@ -2466,8 +2876,8 @@ "resolved": "https://registry.npmjs.org/needle/-/needle-0.11.0.tgz", "integrity": "sha1-AqcbAI6vfVWuifuf12hbe4jXvCk=", "requires": { - "debug": "2.6.9", - "iconv-lite": "0.4.19" + "debug": "^2.1.2", + "iconv-lite": "^0.4.4" } }, "negotiator": { @@ -2476,20 +2886,12 @@ "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" }, "node-abi": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.2.0.tgz", - "integrity": "sha512-FqVC0WNNL8fQWQK3GYTESfwZXZKDbSIiEEIvufq7HV6Lj0IDDZRVa4CU/KTA0JVlqY9eTDSuPiC8FS9UfGVuzA==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.4.1.tgz", + "integrity": "sha512-pUlswqpHQ7zGPI9lGjZ4XDNIEUDbHxsltfIRb7dTnYdhgHWHOcB0MLZKLoCz6UMcGzSPG5wGl1HODZVQAUsH6w==", "dev": true, "requires": { - "semver": "5.5.0" - }, - "dependencies": { - "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", - "dev": true - } + "semver": "^5.4.1" } }, "node-gyp": { @@ -2498,424 +2900,320 @@ "integrity": "sha1-m/vlRWIoYoSDjnUOrAUpWFP6HGA=", "dev": true, "requires": { - "fstream": "1.0.11", - "glob": "7.1.2", - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "nopt": "3.0.6", - "npmlog": "4.1.2", - "osenv": "0.1.4", - "request": "2.83.0", - "rimraf": "2.6.2", - "semver": "5.3.0", - "tar": "2.2.1", - "which": "1.3.0" - } - }, - "node-pre-gyp": { - "version": "0.6.36", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.36.tgz", - "integrity": "sha1-22BBEst04NR3VU6bUFsXq936t4Y=", - "optional": true, - "requires": { - "mkdirp": "0.5.1", - "nopt": "4.0.1", - "npmlog": "4.1.2", - "rc": "1.2.2", - "request": "2.83.0", - "rimraf": "2.6.2", - "semver": "5.3.0", - "tar": "2.2.1", - "tar-pack": "3.4.1" + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": "2", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^2.0.0", + "which": "1" }, "dependencies": { "nopt": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", - "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", - "optional": true, + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true, "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.4" + "abbrev": "1" } + }, + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true } } }, "node-red": { - "version": "0.18.4", - "resolved": "https://registry.npmjs.org/node-red/-/node-red-0.18.4.tgz", - "integrity": "sha512-X8JZTsZou2AyoCzNbeooRm+ZDq9lCk9b+v5V5FSPzSO/XkfVEVAXoAaLB5Tt338Mx2ky0/uGQy9bXdztUOAiGg==", + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/node-red/-/node-red-0.19.1.tgz", + "integrity": "sha512-GYUSFCZ27DI9BPvT0nfmnkQhKBECshWPpSjXxZAiXIN39Kq9oScashDKCNB4vjSIwcJE8cmILtg6ZMLwtc4o0g==", "requires": { + "ajv": "6.5.2", "basic-auth": "2.0.0", - "bcrypt": "1.0.3", + "bcrypt": "~2.0.0", "bcryptjs": "2.4.3", - "body-parser": "1.18.2", + "body-parser": "1.18.3", "cheerio": "0.22.0", - "clone": "2.1.1", + "clone": "2.1.2", "cookie": "0.3.1", "cookie-parser": "1.4.3", "cors": "2.8.4", "cron": "1.3.0", - "express": "4.16.2", + "denque": "1.3.0", + "express": "4.16.3", "express-session": "1.15.6", - "follow-redirects": "1.3.0", "fs-extra": "5.0.0", "fs.notify": "0.0.4", "hash-sum": "1.0.2", - "i18next": "1.10.6", + "i18next": "11.6.0", "is-utf8": "0.2.1", - "js-yaml": "3.10.0", + "js-yaml": "3.12.0", "json-stringify-safe": "5.0.1", - "jsonata": "1.5.0", + "jsonata": "1.5.4", "media-typer": "0.3.0", "memorystore": "1.6.0", - "mqtt": "2.15.1", - "multer": "1.3.0", - "mustache": "2.3.0", - "node-red-node-email": "0.1.24", - "node-red-node-feedparser": "0.1.8", - "node-red-node-rbe": "0.2.1", - "node-red-node-twitter": "0.1.12", + "mqtt": "2.18.3", + "multer": "1.3.1", + "mustache": "2.3.1", + "node-red-node-email": "0.1.*", + "node-red-node-feedparser": "^0.1.12", + "node-red-node-rbe": "0.2.*", + "node-red-node-twitter": "^1.1.0", "nopt": "4.0.1", "oauth2orize": "1.11.0", "on-headers": "1.0.1", "passport": "0.4.0", "passport-http-bearer": "1.0.1", "passport-oauth2-client-password": "0.1.2", - "raw-body": "2.3.2", - "semver": "5.4.1", - "sentiment": "2.1.0", - "uglify-js": "3.3.6", - "when": "3.7.8", - "ws": "1.1.5", - "xml2js": "0.4.19" - }, - "dependencies": { - "fs-extra": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", - "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", - "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "4.0.0", - "universalify": "0.1.1" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "requires": { - "graceful-fs": "4.1.11" - } - }, - "nopt": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", - "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", - "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.4" - } - }, - "semver": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==" - } - } - }, - "node-red-contrib-play-audio": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/node-red-contrib-play-audio/-/node-red-contrib-play-audio-2.2.4.tgz", - "integrity": "sha512-zyW7vnlut42tG6Tu5ee2mpwLOfVjdyQheDk/Mmrg3V8S+f4MjDCtIRnqlWmOfeV5V4zSyCtxG88pGghdI+/MCw==" - }, - "node-red-contrib-web-worldmap": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/node-red-contrib-web-worldmap/-/node-red-contrib-web-worldmap-1.1.9.tgz", - "integrity": "sha512-3zEbkhR8ASfYgxS5MNQuj4psUKnQdy6ylBtDscLrpuVCZXyQ0QhtMsKOoShy7vuI9obT7AZjs1UKl/68Vd/C/w==", - "requires": { - "cgi": "0.3.1", - "express": "4.16.2", - "sockjs": "0.3.19" - } - }, - "node-red-dashboard": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.8.2.tgz", - "integrity": "sha512-15bru01uz9bUMcSMrejqM/QEt8IslB9tGfpvQ7VWFcz5txVe3GVw0IVuPfbm/sQRlUdNHt3QlHwkPJewo8NTqg==", - "requires": { - "serve-static": "1.13.2", - "socket.io": "1.7.4" - }, - "dependencies": { - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" - }, - "send": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", - "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", - "requires": { - "debug": "2.6.9", - "depd": "1.1.2", - "destroy": "1.0.4", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", - "fresh": "0.5.2", - "http-errors": "1.6.2", - "mime": "1.4.1", - "ms": "2.0.0", - "on-finished": "2.3.0", - "range-parser": "1.2.0", - "statuses": "1.4.0" - } - }, - "serve-static": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", - "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", - "requires": { - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "parseurl": "1.3.2", - "send": "0.16.2" - } - }, - "statuses": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", - "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" - } - } - }, - "node-red-node-base64": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/node-red-node-base64/-/node-red-node-base64-0.1.1.tgz", - "integrity": "sha512-QICCrW+ZrMqj4i0zKIxDsPVGYvi64Gbh3eg/iIoITQ8X/4FIqNc/QhrbUzbu8EShjB2NXFV94uq9ACt3avyOFQ==" - }, - "node-red-node-email": { - "version": "0.1.24", - "resolved": "https://registry.npmjs.org/node-red-node-email/-/node-red-node-email-0.1.24.tgz", - "integrity": "sha1-uhLHKwGznjPzdcy/QyGxY0Jej7I=", - "requires": { - "imap": "0.8.19", - "mailparser": "0.6.2", - "nodemailer": "1.11.0", - "poplib": "0.1.7" - } - }, - "node-red-node-feedparser": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/node-red-node-feedparser/-/node-red-node-feedparser-0.1.8.tgz", - "integrity": "sha1-Vs9vabxtI1V/hifuY7dMHKqFxls=", - "requires": { - "feedparser": "1.1.3", - "request": "2.74.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "assert-plus": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=" - }, - "async": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", - "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", - "requires": { - "lodash": "4.17.5" - } - }, - "aws-sign2": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=" - }, - "bl": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.1.2.tgz", - "integrity": "sha1-/cqHGplxOqANGeO7ukHER4emU5g=", - "requires": { - "readable-stream": "2.0.6" - } - }, - "boom": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "raw-body": "2.3.3", + "request": "2.88.0", + "semver": "5.5.0", + "sentiment": "2.1.0", + "uglify-js": "3.4.7", + "when": "3.7.8", + "ws": "1.1.5", + "xml2js": "0.4.19" + }, + "dependencies": { + "ajv": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.2.tgz", + "integrity": "sha512-hOs7GfvI6tUI1LfZddH82ky6mOMyTuY0mk7kE2pWpmhhUSkumzaTO5vbVwij39MdwPQWCV4Zv57Eo06NtL/GVA==", "requires": { - "hoek": "2.16.3" + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.1" } }, - "caseless": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", - "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=" + "aws4": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "body-parser": { + "version": "1.18.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", + "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "bytes": "3.0.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "~1.6.3", + "iconv-lite": "0.4.23", + "on-finished": "~2.3.0", + "qs": "6.5.2", + "raw-body": "2.3.3", + "type-is": "~1.6.16" } }, - "cryptiles": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", - "requires": { - "boom": "2.10.1" - } + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, - "form-data": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.1.tgz", - "integrity": "sha1-rjFduaSQf6BlUCMEpm13M0de43w=", - "requires": { - "async": "2.6.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.17" - } + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" }, "har-validator": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", - "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz", + "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", "requires": { - "chalk": "1.1.3", - "commander": "2.11.0", - "is-my-json-valid": "2.17.2", - "pinkie-promise": "2.0.1" + "ajv": "^5.3.0", + "har-schema": "^2.0.0" + }, + "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" + } } }, - "hawk": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "iconv-lite": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" + "safer-buffer": ">= 2.1.2 < 3" } }, - "hoek": { - "version": "2.16.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, - "http-signature": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "mime-db": { + "version": "1.35.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.35.0.tgz", + "integrity": "sha512-JWT/IcCTsB0Io3AhWUMjRqucrHSPsSf2xKLaRldJVULioggvkJvggZ3VXNNSRkCddE6D+BUI4HEIZIA2OjwIvg==" + }, + "mime-types": { + "version": "2.1.19", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.19.tgz", + "integrity": "sha512-P1tKYHVSZ6uFo26mtnve4HQFE3koh1UWVkp8YUC+ESBHe945xWSoXuHHiGarDqcEZ+whpCDnlNw5LON0kLo+sw==", "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.1", - "sshpk": "1.13.1" + "mime-db": "~1.35.0" } }, - "node-uuid": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz", - "integrity": "sha1-sEDrCSOWivq/jTL7HxfxFn/auQc=" + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" }, "qs": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.2.3.tgz", - "integrity": "sha1-HPyyXBCpsrSDBT/zn138kjOQjP4=" + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" }, - "readable-stream": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", - "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", + "raw-body": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", + "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "0.10.31", - "util-deprecate": "1.0.2" + "bytes": "3.0.0", + "http-errors": "1.6.3", + "iconv-lite": "0.4.23", + "unpipe": "1.0.0" } }, "request": { - "version": "2.74.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.74.0.tgz", - "integrity": "sha1-dpPKdou7DqXIzgjAhKRe+gW4kqs=", + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.6.0", - "bl": "1.1.2", - "caseless": "0.11.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "1.0.1", - "har-validator": "2.0.6", - "hawk": "3.1.3", - "http-signature": "1.1.1", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.17", - "node-uuid": "1.4.8", - "oauth-sign": "0.8.2", - "qs": "6.2.3", - "stringstream": "0.0.5", - "tough-cookie": "2.3.3", - "tunnel-agent": "0.4.3" + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" } }, - "sntp": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", - "requires": { - "hoek": "2.16.3" - } + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + "semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + "tough-cookie": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "requires": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + } }, - "tunnel-agent": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", - "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=" + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" } } }, + "node-red-contrib-play-audio": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/node-red-contrib-play-audio/-/node-red-contrib-play-audio-2.3.2.tgz", + "integrity": "sha512-/IgV7Skw3NBXNJ2KFqE6wzLJtPrfqBy9nKka0fCofA26eG0RXv0vjS1IpYa3QgQZD9YFMVIcbC0a9HlFK/wY+Q==" + }, + "node-red-contrib-web-worldmap": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/node-red-contrib-web-worldmap/-/node-red-contrib-web-worldmap-1.3.5.tgz", + "integrity": "sha512-2G0KFmHUOyX+A8z0kpzZ0Csbt/xmUvxebNrFF/wmljOJfni8NwbGacW0RD8ACP6r4q5RhqkDBP3Aqvd04qDfmg==", + "requires": { + "cgi": "0.3.1", + "express": "^4.16.3", + "sockjs": "^0.3.19" + } + }, + "node-red-dashboard": { + "version": "2.9.6", + "resolved": "https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.9.6.tgz", + "integrity": "sha512-d4NIk2oDnOQ3rKB3juE1RX5oDLEOUHdU14yrEBo7sehkcH8Cjb3RcXZ+ZYjuBuETkavFQI8nKJIwLWJ3SsZZSg==", + "requires": { + "serve-static": "~1.13.2", + "socket.io": "^2.1.1" + } + }, + "node-red-node-base64": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/node-red-node-base64/-/node-red-node-base64-0.1.3.tgz", + "integrity": "sha512-0KlJDMur9tfnHwC7anlM9gYPjCMLsGVjRuvWSQssdGDibxIgpZDJ/0IuHIM3CAcEPaetlk4P0yj0XtH9Rgda0w==" + }, + "node-red-node-email": { + "version": "0.1.29", + "resolved": "https://registry.npmjs.org/node-red-node-email/-/node-red-node-email-0.1.29.tgz", + "integrity": "sha512-+tqda0bNT8A0PM9G47XqFiUP9gEe1zvB/9f+JJhbLWTEk9TeRB4UeyycubmCbR1/TzJnk2v9yCDogFhDJQWbOw==", + "requires": { + "imap": "^0.8.19", + "mailparser": "^0.6.2", + "nodemailer": "^1.11.0", + "poplib": "^0.1.7" + } + }, + "node-red-node-feedparser": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/node-red-node-feedparser/-/node-red-node-feedparser-0.1.12.tgz", + "integrity": "sha512-kwo7k7pXhl9wANXqgQTRo1WqxyrpJFelvZ2u9EnKfDA2yKrsZq0ZeYB8BDc/uVIycqh8XEJeX44EnAHkidddvQ==", + "requires": { + "feedparser": "^2.2.9", + "request": "^2.83.0" + } + }, "node-red-node-geofence": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/node-red-node-geofence/-/node-red-node-geofence-0.1.0.tgz", "integrity": "sha1-KhFgtxL8ARX55FPxG7cLvHmTH/A=", "requires": { - "geolib": "2.0.24" + "geolib": "*" } }, "node-red-node-random": { @@ -2924,9 +3222,9 @@ "integrity": "sha512-jb2J1m3A49m3P8umwvmoTnq2RVrSJrXVPmCStJWcGFe7B0daAILwxx7lyZKitlTwG/taTDW6+3NTGJ2RnsE0HA==" }, "node-red-node-rbe": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/node-red-node-rbe/-/node-red-node-rbe-0.2.1.tgz", - "integrity": "sha512-iyMT6QnkY6977NYwLhzPPaawG7njs1TYpzlxhhmBMDCoHJiA2h4XwXlQYIiK9mLiPsutzLCDChO7b41CGSgR9A==" + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/node-red-node-rbe/-/node-red-node-rbe-0.2.3.tgz", + "integrity": "sha512-5+MtH9t8tX6Aw6M+SeoyGR23XplNTOln3aTQ7El9tj/606bxea4GxYyvV4ymTmuoODz3GXQlLLQVdGkFLyIdDQ==" }, "node-red-node-smooth": { "version": "0.1.0", @@ -2934,13 +3232,102 @@ "integrity": "sha512-78i203e8j8HiaEwVHJk9ukW0HkGSW0lkcYr42IfBpgT8YjMfRCbzQcFrz8K1/vcmjZ1KpSbohElr/y39X/t3XQ==" }, "node-red-node-twitter": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/node-red-node-twitter/-/node-red-node-twitter-0.1.12.tgz", - "integrity": "sha512-RBpvAoJ/wXmBOaE53BWPL+0fqcJtTNK8HCRN5ZwOoKC9rh2+fJjpQ5vwlQ/DMs4/KtLoNqCJ/VKqMaiekemY4A==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/node-red-node-twitter/-/node-red-node-twitter-1.1.2.tgz", + "integrity": "sha512-6qyeZluZCn3SBkmDFGNm3Zf5Y21FosRQ0AMHv9UM9KOf1v9gFS82Ybyah2Z85NHaXqTvyIM5R7zJbvsK2GMq9g==", "requires": { - "oauth": "0.9.14", - "request": "2.83.0", + "request": "^2.88.0", "twitter-ng": "0.6.2" + }, + "dependencies": { + "aws4": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "har-validator": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz", + "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", + "requires": { + "ajv": "^5.3.0", + "har-schema": "^2.0.0" + } + }, + "mime-db": { + "version": "1.35.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.35.0.tgz", + "integrity": "sha512-JWT/IcCTsB0Io3AhWUMjRqucrHSPsSf2xKLaRldJVULioggvkJvggZ3VXNNSRkCddE6D+BUI4HEIZIA2OjwIvg==" + }, + "mime-types": { + "version": "2.1.19", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.19.tgz", + "integrity": "sha512-P1tKYHVSZ6uFo26mtnve4HQFE3koh1UWVkp8YUC+ESBHe945xWSoXuHHiGarDqcEZ+whpCDnlNw5LON0kLo+sw==", + "requires": { + "mime-db": "~1.35.0" + } + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + }, + "request": { + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "tough-cookie": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "requires": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + } + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" + } } }, "nodemailer": { @@ -2948,11 +3335,11 @@ "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-1.11.0.tgz", "integrity": "sha1-TmnLObAwFbHR7wx4qBVBK56Xb3k=", "requires": { - "libmime": "1.2.0", - "mailcomposer": "2.1.0", - "needle": "0.11.0", - "nodemailer-direct-transport": "1.1.0", - "nodemailer-smtp-transport": "1.1.0" + "libmime": "^1.2.0", + "mailcomposer": "^2.1.0", + "needle": "^0.11.0", + "nodemailer-direct-transport": "^1.1.0", + "nodemailer-smtp-transport": "^1.1.0" } }, "nodemailer-direct-transport": { @@ -2960,7 +3347,7 @@ "resolved": "https://registry.npmjs.org/nodemailer-direct-transport/-/nodemailer-direct-transport-1.1.0.tgz", "integrity": "sha1-oveHCO5vFuoFc/yClJ0Tj/Fy9iQ=", "requires": { - "smtp-connection": "1.3.8" + "smtp-connection": "^1.3.1" } }, "nodemailer-smtp-transport": { @@ -2968,15 +3355,15 @@ "resolved": "https://registry.npmjs.org/nodemailer-smtp-transport/-/nodemailer-smtp-transport-1.1.0.tgz", "integrity": "sha1-5sN/MYhaswgOfe089SjErX5pE5g=", "requires": { - "clone": "1.0.3", - "nodemailer-wellknown": "0.1.10", - "smtp-connection": "1.3.8" + "clone": "^1.0.2", + "nodemailer-wellknown": "^0.1.7", + "smtp-connection": "^1.3.7" }, "dependencies": { "clone": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.3.tgz", - "integrity": "sha1-KY1+IjFmD0DAA8LtMUDezz9TCF8=" + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" } } }, @@ -2986,12 +3373,12 @@ "integrity": "sha1-WG24EB2zDLRDjrVGc3pBqtDPE9U=" }, "nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "dev": true, + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", "requires": { - "abbrev": "1.1.1" + "abbrev": "1", + "osenv": "^0.1.4" } }, "normalize-package-data": { @@ -3000,21 +3387,22 @@ "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "dev": true, "requires": { - "hosted-git-info": "2.5.0", - "is-builtin-module": "1.0.0", - "semver": "5.3.0", - "validate-npm-package-license": "3.0.1" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "npmlog": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dev": true, "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" } }, "nth-check": { @@ -3022,7 +3410,7 @@ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz", "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=", "requires": { - "boolbase": "1.0.0" + "boolbase": "~1.0.0" } }, "nugget": { @@ -3031,12 +3419,12 @@ "integrity": "sha1-IBCVpIfhrTYIGzQy+jytpPjQcbA=", "dev": true, "requires": { - "debug": "2.6.9", - "minimist": "1.2.0", - "pretty-bytes": "1.0.4", - "progress-stream": "1.2.0", - "request": "2.83.0", - "single-line-log": "1.1.2", + "debug": "^2.1.3", + "minimist": "^1.1.0", + "pretty-bytes": "^1.0.2", + "progress-stream": "^1.1.0", + "request": "^2.45.0", + "single-line-log": "^1.1.2", "throttleit": "0.0.2" }, "dependencies": { @@ -3051,12 +3439,13 @@ "number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true }, "oauth": { - "version": "0.9.14", - "resolved": "https://registry.npmjs.org/oauth/-/oauth-0.9.14.tgz", - "integrity": "sha1-xXSIg6QLU94wrenKvyEAQUuKCXE=" + "version": "0.9.15", + "resolved": "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz", + "integrity": "sha1-vR/vr2hslrdUda7VGWQS/2DPucE=" }, "oauth-sign": { "version": "0.8.2", @@ -3068,9 +3457,9 @@ "resolved": "https://registry.npmjs.org/oauth2orize/-/oauth2orize-1.11.0.tgz", "integrity": "sha1-eTzvJR1F696sMq5AqLaBT6qx1IM=", "requires": { - "debug": "2.6.9", - "uid2": "0.0.3", - "utils-merge": "1.0.1" + "debug": "2.x.x", + "uid2": "0.0.x", + "utils-merge": "1.x.x" } }, "object-assign": { @@ -3107,7 +3496,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "onetime": { @@ -3116,7 +3505,7 @@ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "dev": true, "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "optimist": { @@ -3124,8 +3513,8 @@ "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" } }, "options": { @@ -3139,10 +3528,10 @@ "integrity": "sha512-iMK1DOQxzzh2MBlVsU42G80mnrvUhqsMh74phHtDlrcTZPK0pH6o7l7DRshK+0YsxDyEuaOkziVdvM3T0QTzpw==", "dev": true, "requires": { - "chalk": "2.3.1", - "cli-cursor": "2.1.0", - "cli-spinners": "1.1.0", - "log-symbols": "2.2.0" + "chalk": "^2.1.0", + "cli-cursor": "^2.1.0", + "cli-spinners": "^1.0.1", + "log-symbols": "^2.1.0" } }, "ordered-read-streams": { @@ -3150,7 +3539,7 @@ "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", "requires": { - "readable-stream": "2.3.3" + "readable-stream": "^2.0.1" } }, "os-homedir": { @@ -3164,7 +3553,7 @@ "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", "dev": true, "requires": { - "lcid": "1.0.0" + "lcid": "^1.0.0" } }, "os-tmpdir": { @@ -3173,12 +3562,12 @@ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, "osenv": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", - "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, "parse-json": { @@ -3187,15 +3576,7 @@ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true, "requires": { - "error-ex": "1.3.1" - } - }, - "parsejson": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/parsejson/-/parsejson-0.0.3.tgz", - "integrity": "sha1-q343WfIJ7OmUN5c/fQ8fZK4OZKs=", - "requires": { - "better-assert": "1.0.2" + "error-ex": "^1.2.0" } }, "parseqs": { @@ -3203,7 +3584,7 @@ "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", "requires": { - "better-assert": "1.0.2" + "better-assert": "~1.0.0" } }, "parseuri": { @@ -3211,7 +3592,7 @@ "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", "requires": { - "better-assert": "1.0.2" + "better-assert": "~1.0.0" } }, "parseurl": { @@ -3224,7 +3605,7 @@ "resolved": "https://registry.npmjs.org/passport/-/passport-0.4.0.tgz", "integrity": "sha1-xQlWkTR71a07XhgCOMORTRbwWBE=", "requires": { - "passport-strategy": "1.0.0", + "passport-strategy": "1.x.x", "pause": "0.0.1" } }, @@ -3233,7 +3614,7 @@ "resolved": "https://registry.npmjs.org/passport-http-bearer/-/passport-http-bearer-1.0.1.tgz", "integrity": "sha1-FHRp6jZp4qhMYWfvmdu3fh8AmKg=", "requires": { - "passport-strategy": "1.0.0" + "passport-strategy": "1.x.x" } }, "passport-oauth2-client-password": { @@ -3241,7 +3622,7 @@ "resolved": "https://registry.npmjs.org/passport-oauth2-client-password/-/passport-oauth2-client-password-0.1.2.tgz", "integrity": "sha1-TzeLZ4uS0W270jOmxwZSAJPlYbo=", "requires": { - "passport-strategy": "1.0.0" + "passport-strategy": "1.x.x" } }, "passport-strategy": { @@ -3260,7 +3641,7 @@ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "path-is-absolute": { @@ -3279,9 +3660,9 @@ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "pause": { @@ -3309,14 +3690,16 @@ "pinkie": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true }, "pinkie-promise": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "poplib": { @@ -3324,7 +3707,7 @@ "resolved": "https://registry.npmjs.org/poplib/-/poplib-0.1.7.tgz", "integrity": "sha1-L0tYtVkpcjUM2X9IKrpo+OBVdLw=", "requires": { - "optimist": "0.6.1" + "optimist": "*" } }, "pretty-bytes": { @@ -3333,14 +3716,14 @@ "integrity": "sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=", "dev": true, "requires": { - "get-stdin": "4.0.1", - "meow": "3.7.0" + "get-stdin": "^4.0.1", + "meow": "^3.1.0" } }, "process-nextick-args": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" }, "progress-stream": { "version": "1.2.0", @@ -3348,8 +3731,8 @@ "integrity": "sha1-LNPP6jO6OonJwSHsM0er6asSX3c=", "dev": true, "requires": { - "speedometer": "0.1.4", - "through2": "0.2.3" + "speedometer": "~0.1.2", + "through2": "~0.2.3" }, "dependencies": { "isarray": { @@ -3364,10 +3747,10 @@ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "0.10.31" + "string_decoder": "~0.10.x" } }, "string_decoder": { @@ -3382,8 +3765,8 @@ "integrity": "sha1-6zKE2k6jEbbMis42U3SKUqvyWj8=", "dev": true, "requires": { - "readable-stream": "1.1.14", - "xtend": "2.1.2" + "readable-stream": "~1.1.9", + "xtend": "~2.1.1" } }, "xtend": { @@ -3392,18 +3775,18 @@ "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", "dev": true, "requires": { - "object-keys": "0.4.0" + "object-keys": "~0.4.0" } } } }, "proxy-addr": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.2.tgz", - "integrity": "sha1-ZXFQT0e7mI7IGAJT+F3X4UlSvew=", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.3.tgz", + "integrity": "sha512-jQTChiCJteusULxjBp8+jftSQE5Obdl3k4cnmLA6WXtK6XFuWRnvVL7aCiBqaLPM8c4ph0S4tKna8XvmIwEnXQ==", "requires": { - "forwarded": "0.1.2", - "ipaddr.js": "1.5.2" + "forwarded": "~0.1.2", + "ipaddr.js": "1.6.0" } }, "pseudomap": { @@ -3411,23 +3794,39 @@ "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" }, + "psl": { + "version": "1.1.29", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz", + "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==" + }, "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, "pumpify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.4.0.tgz", - "integrity": "sha512-2kmNR9ry+Pf45opRVirpNuIFotsxUGLaYqxIwuR77AYrYRMuFCz9eryHBS52L360O+NcR383CL4QYlMKPq4zYA==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", "requires": { - "duplexify": "3.5.3", - "inherits": "2.0.3", - "pump": "2.0.1" + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } } }, "punycode": { @@ -3465,23 +3864,48 @@ "http-errors": "1.6.2", "iconv-lite": "0.4.19", "unpipe": "1.0.0" + }, + "dependencies": { + "depd": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", + "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=" + }, + "http-errors": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", + "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", + "requires": { + "depd": "1.1.1", + "inherits": "2.0.3", + "setprototypeof": "1.0.3", + "statuses": ">= 1.3.1 < 2" + } + }, + "setprototypeof": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", + "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=" + } } }, "rc": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.2.tgz", - "integrity": "sha1-2M6ctX6NZNnHut2YdsfDTL48cHc=", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.7.tgz", + "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==", + "dev": true, "requires": { - "deep-extend": "0.4.2", - "ini": "1.3.4", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" + "deep-extend": "^0.5.1", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" }, "dependencies": { "minimist": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true } } }, @@ -3491,9 +3915,9 @@ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "dev": true, "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" } }, "read-pkg-up": { @@ -3502,22 +3926,22 @@ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "dev": true, "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" } }, "readable-stream": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", - "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "redent": { @@ -3526,8 +3950,8 @@ "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", "dev": true, "requires": { - "indent-string": "2.1.0", - "strip-indent": "1.0.1" + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" } }, "reinterval": { @@ -3546,36 +3970,36 @@ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "dev": true, "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } }, "request": { - "version": "2.83.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz", - "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==", - "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.3.1", - "har-validator": "5.0.3", - "hawk": "6.0.2", - "http-signature": "1.2.0", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.17", - "oauth-sign": "0.8.2", - "performance-now": "2.1.0", - "qs": "6.5.1", - "safe-buffer": "5.1.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.3", - "tunnel-agent": "0.6.0", - "uuid": "3.1.0" + "version": "2.85.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.85.0.tgz", + "integrity": "sha512-8H7Ehijd4js+s6wuVPLjwORxD4zeuyjYugprdOXlPSqaApmL/QOy+EB/beICHVCHkGMKNh5rvihb5ov+IDw4mg==", + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.6.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.1", + "forever-agent": "~0.6.1", + "form-data": "~2.3.1", + "har-validator": "~5.0.3", + "hawk": "~6.0.2", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.17", + "oauth-sign": "~0.8.2", + "performance-now": "^2.1.0", + "qs": "~6.5.1", + "safe-buffer": "^5.1.1", + "stringstream": "~0.0.5", + "tough-cookie": "~2.3.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.1.0" } }, "require-directory": { @@ -3596,8 +4020,8 @@ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "dev": true, "requires": { - "onetime": "2.0.1", - "signal-exit": "3.0.2" + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" } }, "retry": { @@ -3609,14 +4033,15 @@ "version": "2.6.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "dev": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "rxjs": { - "version": "5.5.6", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.6.tgz", - "integrity": "sha512-v4Q5HDC0FHAQ7zcBX7T2IL6O5ltl1a2GX4ENjPXg6SjDY69Cmx9v4113C99a4wGF16ClPv5Z8mghuYorVkg/kg==", + "version": "5.5.10", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.10.tgz", + "integrity": "sha512-SRjimIDUHJkon+2hFo7xnvNC4ZEHGzCRwh9P7nzX3zPkCGFEg/tuElrNR7L/rZMagnK2JeH2jQwPRpmyXyLB6A==", "dev": true, "requires": { "symbol-observable": "1.0.1" @@ -3627,34 +4052,40 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, "sax": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/sax/-/sax-0.6.1.tgz", - "integrity": "sha1-VjsZx8HeiS4Jv8Ty/DDjwn8JUrk=" + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" }, "semver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=" + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", + "dev": true }, "send": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.16.1.tgz", - "integrity": "sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==", + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", "requires": { "debug": "2.6.9", - "depd": "1.1.1", - "destroy": "1.0.4", - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "etag": "1.8.1", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "1.6.2", + "http-errors": "~1.6.2", "mime": "1.4.1", "ms": "2.0.0", - "on-finished": "2.3.0", - "range-parser": "1.2.0", - "statuses": "1.3.1" + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" } }, "sentiment": { @@ -3663,20 +4094,21 @@ "integrity": "sha1-MyeRAMNcOFGcpeQ1JFGGxRL+D9w=" }, "serve-static": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.1.tgz", - "integrity": "sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", + "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", "requires": { - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "parseurl": "1.3.2", - "send": "0.16.1" + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", + "send": "0.16.2" } }, "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true }, "setprototypeof": { "version": "1.1.0", @@ -3686,7 +4118,8 @@ "signal-exit": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true }, "single-line-log": { "version": "1.1.2", @@ -3694,7 +4127,7 @@ "integrity": "sha1-wvg/Jzo+GhbtsJlWYdoO1e8DM2Q=", "dev": true, "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.1" } }, "smtp-connection": { @@ -3707,133 +4140,90 @@ "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", "requires": { - "hoek": "4.2.0" + "hoek": "4.x.x" } }, "socket.io": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-1.7.4.tgz", - "integrity": "sha1-L37O3DORvy1cc+KR/iM+bjTU3QA=", - "requires": { - "debug": "2.3.3", - "engine.io": "1.8.5", - "has-binary": "0.1.7", - "object-assign": "4.1.0", - "socket.io-adapter": "0.5.0", - "socket.io-client": "1.7.4", - "socket.io-parser": "2.3.1" + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz", + "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==", + "requires": { + "debug": "~3.1.0", + "engine.io": "~3.2.0", + "has-binary2": "~1.0.2", + "socket.io-adapter": "~1.1.0", + "socket.io-client": "2.1.1", + "socket.io-parser": "~3.2.0" }, "dependencies": { "debug": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "requires": { - "ms": "0.7.2" + "ms": "2.0.0" } - }, - "ms": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=" - }, - "object-assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz", - "integrity": "sha1-ejs9DpgGPUP0wD8uiubNUahog6A=" } } }, "socket.io-adapter": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz", - "integrity": "sha1-y21LuL7IHhB4uZZ3+c7QBGBmu4s=", - "requires": { - "debug": "2.3.3", - "socket.io-parser": "2.3.1" - }, - "dependencies": { - "debug": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", - "requires": { - "ms": "0.7.2" - } - }, - "ms": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=" - } - } + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz", + "integrity": "sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs=" }, "socket.io-client": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.7.4.tgz", - "integrity": "sha1-7J+CA1btme9tNX8HVtZIcXvdQoE=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.1.tgz", + "integrity": "sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==", "requires": { "backo2": "1.0.2", + "base64-arraybuffer": "0.1.5", "component-bind": "1.0.0", "component-emitter": "1.2.1", - "debug": "2.3.3", - "engine.io-client": "1.8.5", - "has-binary": "0.1.7", + "debug": "~3.1.0", + "engine.io-client": "~3.2.0", + "has-binary2": "~1.0.2", + "has-cors": "1.1.0", "indexof": "0.0.1", "object-component": "0.0.3", + "parseqs": "0.0.5", "parseuri": "0.0.5", - "socket.io-parser": "2.3.1", + "socket.io-parser": "~3.2.0", "to-array": "0.1.4" }, "dependencies": { - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" - }, "debug": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "requires": { - "ms": "0.7.2" + "ms": "2.0.0" } - }, - "ms": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=" } } }, "socket.io-parser": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.3.1.tgz", - "integrity": "sha1-3VMgJRA85Clpcya+/WQAX8/ltKA=", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz", + "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==", "requires": { - "component-emitter": "1.1.2", - "debug": "2.2.0", - "isarray": "0.0.1", - "json3": "3.3.2" + "component-emitter": "1.2.1", + "debug": "~3.1.0", + "isarray": "2.0.1" }, "dependencies": { "debug": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "requires": { - "ms": "0.7.1" + "ms": "2.0.0" } }, "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "ms": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" } } }, @@ -3842,8 +4232,8 @@ "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz", "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", "requires": { - "faye-websocket": "0.10.0", - "uuid": "3.1.0" + "faye-websocket": "^0.10.0", + "uuid": "^3.0.1" } }, "source-map": { @@ -3857,30 +4247,41 @@ "integrity": "sha512-gOPXiQQFQ9lTOLuys0iMn3jfxxv9c7zzwhbYLOEbQGvEShHVJ5sSR1oD3Daj88os7jKArDYT7rbOKdvNhe7iEg==", "dev": true, "requires": { - "debug": "2.6.9", - "lodash.assign": "4.2.0", - "rxjs": "5.5.6" + "debug": "^2.5.1", + "lodash.assign": "^4.2.0", + "rxjs": "^5.1.1" } }, "spdx-correct": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", - "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", + "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "dev": true, "requires": { - "spdx-license-ids": "1.2.2" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, - "spdx-expression-parse": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", - "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", + "spdx-exceptions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", + "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", "dev": true }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, "spdx-license-ids": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", - "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", + "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", "dev": true }, "speedometer": { @@ -3894,7 +4295,7 @@ "resolved": "https://registry.npmjs.org/split2/-/split2-2.2.0.tgz", "integrity": "sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==", "requires": { - "through2": "2.0.3" + "through2": "^2.0.2" } }, "sprintf-js": { @@ -3903,24 +4304,24 @@ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" }, "sshpk": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", - "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.1.tgz", + "integrity": "sha1-Ew9Zde3a2WPx1W+SuaxsUfqfg+s=", "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "tweetnacl": "~0.14.0" } }, "statuses": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", - "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" }, "stream-shift": { "version": "1.0.0", @@ -3941,18 +4342,19 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } }, "stringstream": { @@ -3964,8 +4366,9 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-bom": { @@ -3974,7 +4377,7 @@ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } }, "strip-indent": { @@ -3983,13 +4386,14 @@ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", "dev": true, "requires": { - "get-stdin": "4.0.1" + "get-stdin": "^4.0.1" } }, "strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true }, "sumchecker": { "version": "1.3.1", @@ -3997,17 +4401,17 @@ "integrity": "sha1-ebs7RFbdBPGOvbwNcDodHa7FEF0=", "dev": true, "requires": { - "debug": "2.6.9", - "es6-promise": "4.1.1" + "debug": "^2.2.0", + "es6-promise": "^4.0.5" } }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } }, "symbol-observable": { @@ -4020,26 +4424,11 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "dev": true, "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" - } - }, - "tar-pack": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.4.1.tgz", - "integrity": "sha512-PPRybI9+jM5tjtCbN2cxmmRU7YmqT3Zv/UDy48tAh2XRkLa9bAORtSWLkVc13+GJF+cdTh1yEnHEk3cpTaL5Kg==", - "optional": true, - "requires": { - "debug": "2.6.9", - "fstream": "1.0.11", - "fstream-ignore": "1.0.5", - "once": "1.4.0", - "readable-stream": "2.3.3", - "rimraf": "2.6.2", - "tar": "2.2.1", - "uid-number": "0.0.6" + "block-stream": "*", + "fstream": "^1.0.2", + "inherits": "2" } }, "temp": { @@ -4048,8 +4437,8 @@ "integrity": "sha1-4Ma8TSa5AxJEEOT+2BEDAU38H1k=", "dev": true, "requires": { - "os-tmpdir": "1.0.2", - "rimraf": "2.2.8" + "os-tmpdir": "^1.0.0", + "rimraf": "~2.2.6" }, "dependencies": { "rimraf": { @@ -4071,8 +4460,8 @@ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", "requires": { - "readable-stream": "2.3.3", - "xtend": "4.0.1" + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" } }, "through2-filter": { @@ -4080,8 +4469,8 @@ "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-2.0.0.tgz", "integrity": "sha1-YLxVoNrLdghdsfna6Zq0P4PWIuw=", "requires": { - "through2": "2.0.3", - "xtend": "4.0.1" + "through2": "~2.0.0", + "xtend": "~4.0.0" } }, "to-absolute-glob": { @@ -4089,8 +4478,8 @@ "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", "requires": { - "is-absolute": "1.0.0", - "is-negated-glob": "1.0.0" + "is-absolute": "^1.0.0", + "is-negated-glob": "^1.0.0" } }, "to-array": { @@ -4104,7 +4493,7 @@ "integrity": "sha1-Ua7z1ElXHU8oel2Hyci0kYGg2x0=", "dev": true, "requires": { - "nopt": "1.0.10" + "nopt": "~1.0.10" }, "dependencies": { "nopt": { @@ -4113,17 +4502,17 @@ "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", "dev": true, "requires": { - "abbrev": "1.1.1" + "abbrev": "1" } } } }, "tough-cookie": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", - "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", + "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", "requires": { - "punycode": "1.4.1" + "punycode": "^1.4.1" } }, "traverse": { @@ -4143,7 +4532,7 @@ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { @@ -4157,16 +4546,16 @@ "resolved": "https://registry.npmjs.org/twitter-ng/-/twitter-ng-0.6.2.tgz", "integrity": "sha1-E3BxFd0Eyb0fLGRtqXZYm+TWS8Q=", "requires": { - "oauth": "0.9.14" + "oauth": ">=0.9.9" } }, "type-is": { - "version": "1.6.15", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", - "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=", + "version": "1.6.16", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", + "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", "requires": { "media-typer": "0.3.0", - "mime-types": "2.1.17" + "mime-types": "~2.1.18" } }, "typedarray": { @@ -4175,33 +4564,27 @@ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, "uglify-js": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.3.6.tgz", - "integrity": "sha512-dHp7NHttxYRqz6v/YtR+Jgfo68I/yMbofhYymx9fhIRMxPgap9axbMq5a4NT9gWVzQW8Zh8DJsgZpxKpZbolMA==", + "version": "3.4.7", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.7.tgz", + "integrity": "sha512-J0M2i1mQA+ze3EdN9SBi751DNdAXmeFLfJrd/MDIkRc3G3Gbb9OPVSx7GIQvVwfWxQARcYV2DTxIkMyDAk3o9Q==", "requires": { - "commander": "2.13.0", - "source-map": "0.6.1" + "commander": "~2.16.0", + "source-map": "~0.6.1" }, "dependencies": { "commander": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", - "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==" + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.16.0.tgz", + "integrity": "sha512-sVXqklSaotK9at437sFlFpyOcJonxe0yST/AG9DkQKUdIE6IqGIMv4SfAQSKaJbSdVEJYItASCrBiVQHq1HQew==" } } }, - "uid-number": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", - "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=", - "optional": true - }, "uid-safe": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==", "requires": { - "random-bytes": "1.0.0" + "random-bytes": "~1.0.0" } }, "uid2": { @@ -4224,8 +4607,8 @@ "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.2.1.tgz", "integrity": "sha1-WqADz76Uxf+GbE59ZouxxNuts2k=", "requires": { - "json-stable-stringify": "1.0.1", - "through2-filter": "2.0.0" + "json-stable-stringify": "^1.0.0", + "through2-filter": "^2.0.0" } }, "universalify": { @@ -4238,12 +4621,34 @@ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "requires": { + "punycode": "^2.1.0" + }, + "dependencies": { + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + } + } + }, "utf7": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/utf7/-/utf7-1.0.2.tgz", "integrity": "sha1-lV9JCq5lO6IguUVqCod2wZk2CZE=", "requires": { - "semver": "5.3.0" + "semver": "~5.3.0" + }, + "dependencies": { + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=" + } } }, "util-deprecate": { @@ -4257,27 +4662,27 @@ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" }, "uue": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/uue/-/uue-3.1.1.tgz", - "integrity": "sha512-MaT3l62tAqFCApEFBWyFF5e4e7CniWupCknKSf2hWyvxZXb7PMglHa5fy4xgeopvmDkIuUqUOtXFxWHWbL/pkw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/uue/-/uue-3.1.2.tgz", + "integrity": "sha512-axKLXVqwtdI/czrjG0X8hyV1KLgeWx8F4KvSbvVCnS+RUvsQMGRjx0kfuZDXXqj0LYvVJmx3B9kWlKtEdRrJLg==", "requires": { - "escape-string-regexp": "1.0.5", - "extend": "3.0.1" + "escape-string-regexp": "~1.0.5", + "extend": "~3.0.0" } }, "uuid": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", - "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz", + "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==" }, "validate-npm-package-license": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", - "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", + "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", "dev": true, "requires": { - "spdx-correct": "1.0.2", - "spdx-expression-parse": "1.0.4" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "vary": { @@ -4290,9 +4695,9 @@ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "requires": { - "assert-plus": "1.0.0", + "assert-plus": "^1.0.0", "core-util-is": "1.0.2", - "extsprintf": "1.3.0" + "extsprintf": "^1.2.0" } }, "websocket-driver": { @@ -4300,8 +4705,8 @@ "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz", "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", "requires": { - "http-parser-js": "0.4.10", - "websocket-extensions": "0.1.3" + "http-parser-js": ">=0.4.0", + "websocket-extensions": ">=0.1.1" } }, "websocket-extensions": { @@ -4310,16 +4715,16 @@ "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==" }, "websocket-stream": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/websocket-stream/-/websocket-stream-5.1.1.tgz", - "integrity": "sha512-ypQ50zVCnikSvJcRFWaZh7xeCufSje5+mbJRq3mdvdNx+06TD98C+bQsSKc7FkI6y1PVuNbzkenGywxlFiQeUQ==", - "requires": { - "duplexify": "3.5.3", - "inherits": "2.0.3", - "readable-stream": "2.3.3", - "safe-buffer": "5.1.1", - "ws": "3.3.3", - "xtend": "4.0.1" + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/websocket-stream/-/websocket-stream-5.1.2.tgz", + "integrity": "sha512-lchLOk435iDWs0jNuL+hiU14i3ERSrMA0IKSiJh7z6X/i4XNsutBZrtqu2CPOZuA4G/zabiqVAos0vW+S7GEVw==", + "requires": { + "duplexify": "^3.5.1", + "inherits": "^2.0.1", + "readable-stream": "^2.3.3", + "safe-buffer": "^5.1.1", + "ws": "^3.2.0", + "xtend": "^4.0.0" }, "dependencies": { "ws": { @@ -4327,9 +4732,9 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", "requires": { - "async-limiter": "1.0.0", - "safe-buffer": "5.1.1", - "ultron": "1.1.1" + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" } } } @@ -4345,7 +4750,7 @@ "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", "dev": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -4358,8 +4763,9 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", + "dev": true, "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.2" } }, "wordwrap": { @@ -4373,8 +4779,8 @@ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" } }, "wrappy": { @@ -4387,8 +4793,8 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.5.tgz", "integrity": "sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==", "requires": { - "options": "0.0.6", - "ultron": "1.0.2" + "options": ">=0.0.5", + "ultron": "1.0.x" }, "dependencies": { "ultron": { @@ -4398,18 +4804,13 @@ } } }, - "wtf-8": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wtf-8/-/wtf-8-1.0.0.tgz", - "integrity": "sha1-OS2LotDxw00e4tYw8V0O+2jhBIo=" - }, "xml2js": { "version": "0.4.19", "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", "requires": { - "sax": "0.6.1", - "xmlbuilder": "9.0.7" + "sax": ">=0.6.0", + "xmlbuilder": "~9.0.1" } }, "xmlbuilder": { @@ -4418,9 +4819,9 @@ "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=" }, "xmlhttprequest-ssl": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz", - "integrity": "sha1-GFqIjATspGw+QHDZn3tJ3jUomS0=" + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", + "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=" }, "xtend": { "version": "4.0.1", @@ -4444,19 +4845,19 @@ "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", "dev": true, "requires": { - "camelcase": "3.0.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "1.4.0", - "read-pkg-up": "1.0.1", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "1.0.2", - "which-module": "1.0.0", - "y18n": "3.2.1", - "yargs-parser": "5.0.0" + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^5.0.0" }, "dependencies": { "camelcase": { @@ -4473,7 +4874,7 @@ "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", "dev": true, "requires": { - "camelcase": "3.0.0" + "camelcase": "^3.0.0" }, "dependencies": { "camelcase": { @@ -4490,7 +4891,7 @@ "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", "dev": true, "requires": { - "fd-slicer": "1.0.1" + "fd-slicer": "~1.0.1" } }, "yeast": { diff --git a/package.json b/package.json index 2d5b11f..ba0698a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "electron_node_red", - "version": "0.18.4", + "version": "0.19.1", "description": "Electron Node-RED application starter", "main": "main.js", "scripts": { @@ -29,10 +29,10 @@ }, "dependencies": { "express": "^4.15.3", - "node-red": "*", - "node-red-contrib-play-audio": "*", - "node-red-contrib-web-worldmap": "*", - "node-red-dashboard": "*", + "node-red": "~0.19.1", + "node-red-contrib-play-audio": "~2.3.2", + "node-red-contrib-web-worldmap": "^1.3.5", + "node-red-dashboard": "~2.9.6", "node-red-node-base64": "*", "node-red-node-geofence": "*", "node-red-node-random": "*", From 2738dda90318cd4524805bc33771da89057bd5da Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Tue, 21 Aug 2018 09:08:20 +0100 Subject: [PATCH 007/127] tweaks to consol --- console.htm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/console.htm b/console.htm index b5fc405..2179c81 100644 --- a/console.htm +++ b/console.htm @@ -7,9 +7,9 @@ - - -
+ + +
diff --git a/main.js b/main.js index 0913070..24312cf 100755 --- a/main.js +++ b/main.js @@ -10,6 +10,8 @@ const urldash = "/ui/#/0"; const urledit = "/red"; // url for the console page const urlconsole = "/console.htm"; +// url for the worldmap page +const urlmap = "/worldmap"; // tcp port to use //const listenPort = "18880"; // fix it just because const listenPort = parseInt(Math.random()*16383+49152) // or random ephemeral port @@ -18,7 +20,6 @@ const os = require('os'); const url = require('url'); const path = require('path'); const electron = require('electron'); -const {ipcMain} = require('electron'); const app = electron.app; const BrowserWindow = electron.BrowserWindow; @@ -70,7 +71,7 @@ var settings = { httpNodeRoot: "/", userDir: userdir, flowFile: flowfile, - editorTheme: { projects: { enabled: false } }, + editorTheme: { projects:{ enabled:true } }, functionGlobalContext: { }, // enables global context logging: { websock: { @@ -116,15 +117,19 @@ var template = [{ accelerator: "Shift+CmdOrCtrl+E", click() { mainWindow.loadURL("http://localhost:"+listenPort+urledit); } }, + { label: 'Worldmap', + accelerator: "Shift+CmdOrCtrl+M", + click() { mainWindow.loadURL("http://localhost:"+listenPort+urlmap); } + }, { type: 'separator' }, { label: 'Documentation', - click() { require('electron').shell.openExternal('http://nodered.org/docs') } + click() { require('electron').shell.openExternal('https://nodered.org/docs') } }, { label: 'Flows and Nodes', - click() { require('electron').shell.openExternal('http://flows.nodered.org') } + click() { require('electron').shell.openExternal('https://flows.nodered.org') } }, - { label: 'Google group', - click() { require('electron').shell.openExternal('https://groups.google.com/forum/#!forum/node-red') } + { label: 'Discourse Forum', + click() { require('electron').shell.openExternal('https://discourse.nodered.org/') } } ]}, { label: "Edit", @@ -157,7 +162,20 @@ var template = [{ ]} ]; +// function openFlow() { +// dialog.showOpenDialog(function (fileNames) { +// if (fileNames === undefined) { +// console.log("No file selected"); +// } +// else { +// console.log(fileNames[0]); +// //readFile(fileNames[0]); +// } +// }); +// } + function createConsole() { + if (conWindow) { conWindow.show(); return; } // Create the hidden console window conWindow = new BrowserWindow({ title:"Node-RED Console", width:800, height:600, frame:true, show:true From 0b424fd6be765737f11febcc95eee30b5ee22ec8 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Tue, 21 Aug 2018 15:46:46 +0100 Subject: [PATCH 009/127] Add history to console log window --- console.htm | 22 +++++++++++++--------- main.js | 13 ++++++++++--- 2 files changed, 23 insertions(+), 12 deletions(-) diff --git a/console.htm b/console.htm index 7850de4..a707ca9 100644 --- a/console.htm +++ b/console.htm @@ -8,24 +8,28 @@ - +
diff --git a/main.js b/main.js index 24312cf..e027dc2 100755 --- a/main.js +++ b/main.js @@ -64,6 +64,8 @@ console.log("Setting UserDir to ",userdir); // be closed automatically when the JavaScript object is garbage collected. let mainWindow; let conWindow; +let logBuffer = []; +let logLength = 250; // Create the settings object - see default settings.js file for other options var settings = { @@ -79,7 +81,12 @@ var settings = { metrics: false, handler: function() { return function(msg) { - if (conWindow) { conWindow.webContents.send('debugMsg', msg); } + var ts = (new Date(msg.timestamp)).toISOString(); + ts = ts.replace("Z"," ").replace("T"," "); + var line = ts+" : "+msg.msg; + logBuffer.push(line); + if (conWindow) { conWindow.webContents.send('debugMsg', line); } + if (logBuffer.length > logLength) { logBuffer.shift(); } } } } @@ -187,9 +194,9 @@ function createConsole() { slashes: true })) conWindow.webContents.on('did-finish-load', () => { - //console.log("LOADED CONSOLE"); - conWindow.webContents.send('debugMsg', "Ready"); + conWindow.webContents.send('logBuff', logBuffer); }); + conWindow.on('closed', function() { conWindow = null; }); From 44f02b969a74b5327f0f9730e0a55f63bb00d50a Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Tue, 21 Aug 2018 17:25:48 +0100 Subject: [PATCH 010/127] Bump to electron 2.0.7 --- main.js | 162 +++++++++++++++++++++++----------------------- package-lock.json | 66 +++++++------------ package.json | 2 +- 3 files changed, 103 insertions(+), 127 deletions(-) diff --git a/main.js b/main.js index e027dc2..1fb30de 100755 --- a/main.js +++ b/main.js @@ -130,25 +130,27 @@ var template = [{ }, { type: 'separator' }, { label: 'Documentation', - click() { require('electron').shell.openExternal('https://nodered.org/docs') } + click() { electron.shell.openExternal('https://nodered.org/docs') } }, { label: 'Flows and Nodes', - click() { require('electron').shell.openExternal('https://flows.nodered.org') } + click() { electron.shell.openExternal('https://flows.nodered.org') } }, { label: 'Discourse Forum', - click() { require('electron').shell.openExternal('https://discourse.nodered.org/') } - } - ]}, { - label: "Edit", - submenu: [ - { label: "Undo", accelerator: "CmdOrCtrl+Z", selector: "undo:" }, - { label: "Redo", accelerator: "Shift+CmdOrCtrl+Z", selector: "redo:" }, + click() { electron.shell.openExternal('https://discourse.nodered.org/') } + }, { type: "separator" }, - { label: "Cut", accelerator: "CmdOrCtrl+X", selector: "cut:" }, - { label: "Copy", accelerator: "CmdOrCtrl+C", selector: "copy:" }, - { label: "Paste", accelerator: "CmdOrCtrl+V", selector: "paste:" }, - { label: "Select All", accelerator: "CmdOrCtrl+A", selector: "selectAll:" } + { role: 'quit' } ]}, { + // label: "Edit", + // submenu: [ + // { label: "Undo", accelerator: "CmdOrCtrl+Z", selector: "undo:" }, + // { label: "Redo", accelerator: "Shift+CmdOrCtrl+Z", selector: "redo:" }, + // { type: "separator" }, + // { label: "Cut", accelerator: "CmdOrCtrl+X", selector: "cut:" }, + // { label: "Copy", accelerator: "CmdOrCtrl+C", selector: "copy:" }, + // { label: "Paste", accelerator: "CmdOrCtrl+V", selector: "paste:" }, + // { label: "Select All", accelerator: "CmdOrCtrl+A", selector: "selectAll:" } + // ]}, { label: 'View', submenu: [ { label: 'Reload', @@ -181,11 +183,15 @@ var template = [{ // }); // } +// Create the console log window function createConsole() { if (conWindow) { conWindow.show(); return; } // Create the hidden console window conWindow = new BrowserWindow({ - title:"Node-RED Console", width:800, height:600, frame:true, show:true + title: "Node-RED Console", + width: 800, + height: 600, + icon: path.join(__dirname, 'nodered.png') }); //conWindow.loadURL("http://localhost:"+listenPort+urlconsole); conWindow.loadURL(url.format({ @@ -196,15 +202,14 @@ function createConsole() { conWindow.webContents.on('did-finish-load', () => { conWindow.webContents.send('logBuff', logBuffer); }); - - conWindow.on('closed', function() { + conWindow.on('closed', () => { conWindow = null; }); //conWindow.webContents.openDevTools(); } +// Create the main browser window function createWindow() { - // Create the browser window. mainWindow = new BrowserWindow({ autoHideMenuBar: true, webPreferences: { @@ -215,7 +220,7 @@ function createWindow() { //titleBarStyle: "hidden", width: 1024, height: 768, - icon: __dirname + "/nodered.png" + icon: path.join(__dirname, 'nodered.png') }); mainWindow.webContents.on('did-get-response-details', function(event, status, newURL, originalURL, httpResponseCode) { @@ -241,13 +246,12 @@ function createWindow() { //frameName = "child"; }) - // Open the DevTools. - //mainWindow.webContents.openDevTools(); - - // Emitted when the window is closed. - mainWindow.on('closed', function() { + mainWindow.on('closed', () => { mainWindow = null; }); + + // Open the DevTools. + //mainWindow.webContents.openDevTools(); } // Called when Electron has finished initialization and is ready to create browser windows. @@ -279,63 +283,57 @@ RED.start().then(function() { /////////////////////////////////////////////////////// // All this Squirrel stuff is for the Windows installer function handleSquirrelEvent() { - if (process.argv.length === 1) { - return false; - } - - const ChildProcess = require('child_process'); - const path = require('path'); - - const appFolder = path.resolve(process.execPath, '..'); - const rootAtomFolder = path.resolve(appFolder, '..'); - const updateDotExe = path.resolve(path.join(rootAtomFolder, 'Update.exe')); - const exeName = path.basename(process.execPath); - - const spawn = function(command, args) { - let spawnedProcess, error; - - try { - spawnedProcess = ChildProcess.spawn(command, args, {detached: true}); - } catch (error) {} - - return spawnedProcess; - }; - - const spawnUpdate = function(args) { - return spawn(updateDotExe, args); - }; - - const squirrelEvent = process.argv[1]; - switch (squirrelEvent) { - case '--squirrel-install': - case '--squirrel-updated': - // Optionally do things such as: - // - Add your .exe to the PATH - // - Write to the registry for things like file associations and - // explorer context menus - - // Install desktop and start menu shortcuts - spawnUpdate(['--createShortcut', exeName]); - - setTimeout(app.quit, 1000); - return true; - - case '--squirrel-uninstall': - // Undo anything you did in the --squirrel-install and - // --squirrel-updated handlers - - // Remove desktop and start menu shortcuts - spawnUpdate(['--removeShortcut', exeName]); - - setTimeout(app.quit, 1000); - return true; - - case '--squirrel-obsolete': - // This is called on the outgoing version of your app before - // we update to the new version - it's the opposite of - // --squirrel-updated - - app.quit(); - return true; - } + if (process.argv.length === 1) { return false; } + + const path = require('path'); + const ChildProcess = require('child_process'); + const appFolder = path.resolve(process.execPath, '..'); + const rootAtomFolder = path.resolve(appFolder, '..'); + const updateDotExe = path.resolve(path.join(rootAtomFolder, 'Update.exe')); + const exeName = path.basename(process.execPath); + const spawn = function(command, args) { + let spawnedProcess, error; + + try { spawnedProcess = ChildProcess.spawn(command, args, {detached: true}); } + catch (error) {} + return spawnedProcess; + }; + + const spawnUpdate = function(args) { + return spawn(updateDotExe, args); + }; + + const squirrelEvent = process.argv[1]; + switch (squirrelEvent) { + case '--squirrel-install': + case '--squirrel-updated': + // Optionally do things such as: + // - Add your .exe to the PATH + // - Write to the registry for things like file associations and + // explorer context menus + + // Install desktop and start menu shortcuts + spawnUpdate(['--createShortcut', exeName]); + + setTimeout(app.quit, 1000); + return true; + + case '--squirrel-uninstall': + // Undo anything you did in the --squirrel-install and + // --squirrel-updated handlers + + // Remove desktop and start menu shortcuts + spawnUpdate(['--removeShortcut', exeName]); + + setTimeout(app.quit, 1000); + return true; + + case '--squirrel-obsolete': + // This is called on the outgoing version of your app before + // we update to the new version - it's the opposite of + // --squirrel-updated + + app.quit(); + return true; + } } diff --git a/package-lock.json b/package-lock.json index 3750477..4fd1939 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,9 +5,9 @@ "requires": true, "dependencies": { "@types/node": { - "version": "7.0.63", - "resolved": "https://registry.npmjs.org/@types/node/-/node-7.0.63.tgz", - "integrity": "sha512-YPVhjU3cADo7M7M1KWeEki9MUMZd3yz5FLq0BXkPrY2jpr0B9VRd4iQ2vBSiLrjvLkIPPluzxQFYJ5JkGubtIw==", + "version": "8.10.26", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.26.tgz", + "integrity": "sha512-opk6bLLErLSwyVVJeSH5Ek7ZWOBSsN0JrvXTNVGLXLAXKB9xlTYajrplR44xVyMrmbut94H6uJ9jqzM/12jxkA==", "dev": true }, "abbrev": { @@ -1276,9 +1276,9 @@ } }, "deep-extend": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz", - "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true }, "delayed-stream": { @@ -1409,12 +1409,12 @@ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "electron": { - "version": "1.7.9", - "resolved": "https://registry.npmjs.org/electron/-/electron-1.7.9.tgz", - "integrity": "sha1-rdVOn4+D7QL2UZ7BATX2mLGTNs8=", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/electron/-/electron-2.0.7.tgz", + "integrity": "sha512-MRrDE6mrp+ZrIBpZM27pxbO2yEDKYfkmc6Ll79BtedMNEZsY4+oblupeDJL6RM6meUIp82KMo63W7fP65Tb89Q==", "dev": true, "requires": { - "@types/node": "^7.0.18", + "@types/node": "^8.0.24", "electron-download": "^3.0.1", "extract-zip": "^1.0.3" } @@ -1756,37 +1756,15 @@ "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" }, "extract-zip": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.6.tgz", - "integrity": "sha1-EpDt6NINCHK0Kf0/NRyhKOxe+Fw=", + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz", + "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=", "dev": true, "requires": { - "concat-stream": "1.6.0", + "concat-stream": "1.6.2", "debug": "2.6.9", - "mkdirp": "0.5.0", + "mkdirp": "0.5.1", "yauzl": "2.4.1" - }, - "dependencies": { - "concat-stream": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", - "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "mkdirp": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz", - "integrity": "sha1-HXMHam35hs2TROFecfzAWkyavxI=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - } } }, "extsprintf": { @@ -2096,9 +2074,9 @@ "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==" }, "home-path": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/home-path/-/home-path-1.0.5.tgz", - "integrity": "sha1-eIspgVsS1Tus9XVkhHbm+QQdEz8=", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/home-path/-/home-path-1.0.6.tgz", + "integrity": "sha512-wo+yjrdAtoXt43Vy92a+0IPCYViiyLAHyp0QVS4xL/tfvVz5sXIW1ubLZk3nhVkD92fQpUMKX+fzMjr5F489vw==", "dev": true }, "hosted-git-info": { @@ -3890,12 +3868,12 @@ } }, "rc": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.7.tgz", - "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, "requires": { - "deep-extend": "^0.5.1", + "deep-extend": "^0.6.0", "ini": "~1.3.0", "minimist": "^1.2.0", "strip-json-comments": "~2.0.1" diff --git a/package.json b/package.json index ba0698a..0b1cfdf 100644 --- a/package.json +++ b/package.json @@ -57,7 +57,7 @@ }, "homepage": "https://github.com/dceejay/electron-node-red#readme", "devDependencies": { - "electron": "1.7.9", + "electron": "~2.0.7", "electron-rebuild": "~1.7.3", "electron-squirrel-startup": "*", "electron-winstaller": "2.5.2" From 8146a0a00389c4bead09d5ec78a18f3197ece083 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Sat, 25 Aug 2018 22:31:44 +0100 Subject: [PATCH 011/127] Bump to 0.19.2 - add more options as examples --- README.md | 4 +- console.htm | 11 +- electronflow.json | 2 +- main.js | 263 +++++++++++++++++++------------- package-lock.json | 376 ++++++++++++++++++++++++++++++---------------- package.json | 10 +- 6 files changed, 425 insertions(+), 241 deletions(-) diff --git a/README.md b/README.md index 1255463..1531470 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,9 @@ This is an Electron template to embed Node-RED with a Dashboard generated by node-red-dashboard. -You can base off this model and update the package.json file to include your own required dependencies. +This is not intended to be a useful tool as-is, but as a base for you to create your own versions. You will need to edit the `main.js` to suit your application and update the `package.json` file to include your own required dependencies. + +At the top of `main.js` are a couple of flags you can switch to turn off editing, allow loading of a different flow file (and save as), and adding the worldmap to the menu. Again these are only there to show you possibilities. Have fun. ## To Use diff --git a/console.htm b/console.htm index a707ca9..73e157d 100644 --- a/console.htm +++ b/console.htm @@ -6,21 +6,26 @@ Node-RED Console - + -
+
+ + + + +
+
diff --git a/dockbuild b/dockbuild new file mode 100755 index 0000000..8cd9c3e --- /dev/null +++ b/dockbuild @@ -0,0 +1 @@ +docker run --rm -ti --env-file <(env | grep -iE 'DEBUG|NODE_|ELECTRON_|YARN_|NPM_|CI|CIRCLE|TRAVIS_TAG|TRAVIS|TRAVIS_REPO_|TRAVIS_BUILD_|TRAVIS_BRANCH|TRAVIS_PULL_REQUEST_|APPVEYOR_|CSC_|GH_|GITHUB_|BT_|AWS_|STRIP|BUILD_') --env ELECTRON_CACHE="/root/.cache/electron" --env ELECTRON_BUILDER_CACHE="/root/.cache/electron-builder" -v ${PWD}:/project -v ${PWD##*/}-node-modules:/project/node_modules -v ~/.cache/electron:/root/.cache/electron -v ~/.cache/electron-builder:/root/.cache/electron-builder electronuserland/builder:wine && yarn && yarn dist diff --git a/electronflow.json b/electronflow.json index 5286c4c..da70a7b 100644 --- a/electronflow.json +++ b/electronflow.json @@ -1 +1 @@ -[{"id":"41f61d2.fbe09e4","type":"tab","label":"Flow 1"},{"id":"52a903f3.ad56fc","type":"ui_tab","z":"41f61d2.fbe09e4","name":"Home","icon":"dashboard"},{"id":"30e652f.d9de3ae","type":"ui_group","z":"41f61d2.fbe09e4","name":"Panel 2","tab":"52a903f3.ad56fc","order":5,"disp":true,"width":"6"},{"id":"a8ecb9.c60f4348","type":"ui_group","z":"41f61d2.fbe09e4","name":"Introduction","tab":"52a903f3.ad56fc","order":1,"disp":false,"width":"4","collapse":false},{"id":"bbdf3e02.e8fee","type":"ui_group","z":"41f61d2.fbe09e4","name":"Panel 1","tab":"52a903f3.ad56fc","order":2,"disp":true,"width":"6"},{"id":"d9ba26fa.6d2b18","type":"ui_base","theme":{"name":"theme-light","lightTheme":{"default":"#0094CE","baseColor":"#8e0d17","baseFont":"Gill Sans,Geneva,sans-serif","edited":true,"reset":false},"darkTheme":{"default":"#097479","baseColor":"#097479","baseFont":"Helvetica Neue","edited":false},"customTheme":{"name":"Untitled Theme 1","default":"#4B7930","baseColor":"#4B7930","baseFont":"Helvetica Neue"},"themeState":{"base-color":{"default":"#0094CE","value":"#d80005","edited":true},"page-titlebar-backgroundColor":{"value":"#8e0d17","edited":false},"page-backgroundColor":{"value":"#fafafa","edited":false},"page-sidebar-backgroundColor":{"value":"#000000","edited":false},"group-textColor":{"value":"#d41322","edited":false},"group-borderColor":{"value":"#ffffff","edited":false},"group-backgroundColor":{"value":"#ffffff","edited":false},"widget-textColor":{"value":"#111111","edited":false},"widget-backgroundColor":{"value":"#8e0d17","edited":false},"widget-borderColor":{"value":"#ffffff","edited":false},"base-font":{"value":"Gill Sans,Geneva,sans-serif"}}},"site":{"name":"Node-RED Dashboard","hideToolbar":"false","allowSwipe":"false","dateFormat":"DD/MM/YYYY","sizes":{"sx":48,"sy":48,"gx":6,"gy":6,"cx":6,"cy":6,"px":0,"py":0}}},{"id":"87356b62.92e3d8","type":"ui_group","z":"","name":"Text to Speech","tab":"52a903f3.ad56fc","order":3,"disp":true,"width":"6"},{"id":"c75ad4f0.0cede8","type":"ui_group","z":"","name":"Map","tab":"52a903f3.ad56fc","order":4,"disp":true,"width":"6"},{"id":"189cf871.681118","type":"ui_template","z":"41f61d2.fbe09e4","group":"a8ecb9.c60f4348","name":"Welcome","order":1,"width":"4","height":"9","format":"

Welcome to the Node-RED Dashboard

\n

On the right you will see a graph and a gauge logging data from the sliders underneath.

\n

There is also an example of embedding a small map.

","storeOutMessages":false,"fwdInMessages":false,"templateScope":"local","x":93,"y":45,"wires":[[]]},{"id":"9f19ee5c.beaef","type":"ui_chart","z":"41f61d2.fbe09e4","name":"","group":"bbdf3e02.e8fee","order":1,"width":"0","height":"0","label":"","chartType":"line","xformat":"HH:mm:ss","interpolate":"basis","nodata":"No Data","dot":false,"ymin":"0","ymax":"100","removeOlder":1,"removeOlderPoints":"","removeOlderUnit":"60","cutout":"","colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"outputs":2,"x":270,"y":200,"wires":[[],[]]},{"id":"799d9318.fd385c","type":"ui_gauge","z":"41f61d2.fbe09e4","name":"","group":"30e652f.d9de3ae","order":2,"width":"","height":"","gtype":"gage","title":"Title","label":"gauge","format":"{{value}}","min":0,"max":"100","colors":["#00b500","#e6e600","#ca3838"],"x":270,"y":140,"wires":[]},{"id":"6f18b200.666a4","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"87356b62.92e3d8","order":2,"width":0,"height":0,"label":"press to talk","color":"","bgcolor":"","icon":"fa-volume-up","payload":"Hello to Jason Isaacs","payloadType":"str","topic":"","x":110,"y":320,"wires":[["f897d7c2.467a58"]]},{"id":"f897d7c2.467a58","type":"ui_audio","z":"41f61d2.fbe09e4","name":"","group":"30e652f.d9de3ae","voice":"0","x":300,"y":320,"wires":[]},{"id":"da0f7e67.0d38a","type":"ui_slider","z":"41f61d2.fbe09e4","name":"","label":"slider","group":"30e652f.d9de3ae","order":4,"width":0,"height":0,"passthru":true,"topic":"","min":0,"max":"100","step":1,"x":90,"y":140,"wires":[["799d9318.fd385c","219da65f.e0b0da"]]},{"id":"eabf2bd7.f4e0c8","type":"ui_slider","z":"41f61d2.fbe09e4","name":"","label":"slider","group":"bbdf3e02.e8fee","order":4,"width":0,"height":0,"passthru":true,"topic":"","min":0,"max":"100","step":1,"x":130,"y":200,"wires":[["9f19ee5c.beaef","ccee40e3.c1618"]]},{"id":"45508d88.744a54","type":"function","z":"41f61d2.fbe09e4","name":"","func":"// create random position\nvar lat = 51 + Math.random() * 0.2;\nvar lon = -1.45 + Math.random() * 0.2;\nmsg.payload={lat:lat, lon:lon, name:\"Jason\", icon:\"male\", url:\"IBM link\"};\nreturn msg;","outputs":1,"noerr":0,"x":290,"y":400,"wires":[["f76b15b1.dd27a8"]]},{"id":"6ca8cfc2.e0bce","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"c75ad4f0.0cede8","order":1,"width":0,"height":0,"passthru":false,"label":"Where's Jason ?","color":"","bgcolor":"#910000","icon":"fa-male","payload":"","payloadType":"str","topic":"","x":110,"y":400,"wires":[["45508d88.744a54"]]},{"id":"219da65f.e0b0da","type":"debug","z":"41f61d2.fbe09e4","name":"","active":true,"tosidebar":true,"console":true,"tostatus":false,"complete":"payload","x":300,"y":100,"wires":[]},{"id":"ccee40e3.c1618","type":"debug","z":"41f61d2.fbe09e4","name":"","active":true,"tosidebar":true,"console":true,"tostatus":false,"complete":"payload","x":300,"y":240,"wires":[]},{"id":"1c597308.3cfc0d","type":"worldmap in","z":"41f61d2.fbe09e4","name":"","x":110,"y":480,"wires":[["7d6cb82c.3f3ea8"]]},{"id":"7d6cb82c.3f3ea8","type":"debug","z":"41f61d2.fbe09e4","name":"","active":true,"tosidebar":false,"console":true,"tostatus":false,"complete":"payload","x":350,"y":480,"wires":[]},{"id":"762cecef.af00d4","type":"inject","z":"41f61d2.fbe09e4","name":"","topic":"","payload":"26","payloadType":"num","repeat":"","crontab":"","once":true,"onceDelay":"2","x":90,"y":260,"wires":[["eabf2bd7.f4e0c8"]]},{"id":"f76b15b1.dd27a8","type":"ui_worldmap","z":"41f61d2.fbe09e4","group":"c75ad4f0.0cede8","order":1,"width":"6","height":"7","name":"","lat":"","lon":"","zoom":"","layer":"","cluster":"","maxage":"","usermenu":"hide","layers":"hide","panit":"false","panlock":"false","zoomlock":"false","hiderightclick":"true","coords":"none","showgrid":"false","path":"/worldmap","x":420,"y":400,"wires":[]}] \ No newline at end of file +[{"id":"41f61d2.fbe09e4","type":"tab","label":"Flow 1"},{"id":"52a903f3.ad56fc","type":"ui_tab","z":"41f61d2.fbe09e4","name":"Home","icon":"dashboard"},{"id":"30e652f.d9de3ae","type":"ui_group","z":"41f61d2.fbe09e4","name":"Panel 2","tab":"52a903f3.ad56fc","order":5,"disp":true,"width":"6"},{"id":"a8ecb9.c60f4348","type":"ui_group","z":"41f61d2.fbe09e4","name":"Introduction","tab":"52a903f3.ad56fc","order":1,"disp":false,"width":"4","collapse":false},{"id":"bbdf3e02.e8fee","type":"ui_group","z":"41f61d2.fbe09e4","name":"Panel 1","tab":"52a903f3.ad56fc","order":2,"disp":true,"width":"6"},{"id":"d9ba26fa.6d2b18","type":"ui_base","theme":{"name":"theme-light","lightTheme":{"default":"#0094CE","baseColor":"#8e0d17","baseFont":"Gill Sans,Geneva,sans-serif","edited":true,"reset":false},"darkTheme":{"default":"#097479","baseColor":"#097479","baseFont":"Helvetica Neue","edited":false},"customTheme":{"name":"Untitled Theme 1","default":"#4B7930","baseColor":"#4B7930","baseFont":"Helvetica Neue"},"themeState":{"base-color":{"default":"#0094CE","value":"#d80005","edited":true},"page-titlebar-backgroundColor":{"value":"#8e0d17","edited":false},"page-backgroundColor":{"value":"#fafafa","edited":false},"page-sidebar-backgroundColor":{"value":"#000000","edited":false},"group-textColor":{"value":"#d41322","edited":false},"group-borderColor":{"value":"#ffffff","edited":false},"group-backgroundColor":{"value":"#ffffff","edited":false},"widget-textColor":{"value":"#111111","edited":false},"widget-backgroundColor":{"value":"#8e0d17","edited":false},"widget-borderColor":{"value":"#ffffff","edited":false},"base-font":{"value":"Gill Sans,Geneva,sans-serif"}}},"site":{"name":"Node-RED Dashboard","hideToolbar":"false","allowSwipe":"false","dateFormat":"DD/MM/YYYY","sizes":{"sx":48,"sy":48,"gx":6,"gy":6,"cx":6,"cy":6,"px":0,"py":0}}},{"id":"87356b62.92e3d8","type":"ui_group","z":"","name":"Text to Speech","tab":"52a903f3.ad56fc","order":3,"disp":true,"width":"6"},{"id":"c75ad4f0.0cede8","type":"ui_group","z":"","name":"Map","tab":"52a903f3.ad56fc","order":4,"disp":true,"width":"6"},{"id":"189cf871.681118","type":"ui_template","z":"41f61d2.fbe09e4","group":"a8ecb9.c60f4348","name":"Welcome","order":1,"width":"4","height":"9","format":"

Welcome to the Node-RED Dashboard

\n

On the right you will see a graph and a gauge logging data from the sliders underneath.

\n

There is also an example of embedding a small map.

","storeOutMessages":false,"fwdInMessages":false,"templateScope":"local","x":93,"y":45,"wires":[[]]},{"id":"9f19ee5c.beaef","type":"ui_chart","z":"41f61d2.fbe09e4","name":"","group":"bbdf3e02.e8fee","order":1,"width":"0","height":"0","label":"","chartType":"line","xformat":"HH:mm:ss","interpolate":"basis","nodata":"No Data","dot":false,"ymin":"0","ymax":"100","removeOlder":1,"removeOlderPoints":"","removeOlderUnit":"60","cutout":"","colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"outputs":2,"x":270,"y":200,"wires":[[],[]]},{"id":"799d9318.fd385c","type":"ui_gauge","z":"41f61d2.fbe09e4","name":"","group":"30e652f.d9de3ae","order":2,"width":"","height":"","gtype":"gage","title":"Title","label":"gauge","format":"{{value}}","min":0,"max":"100","colors":["#00b500","#e6e600","#ca3838"],"x":270,"y":140,"wires":[]},{"id":"6f18b200.666a4","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"87356b62.92e3d8","order":2,"width":0,"height":0,"label":"press to talk","color":"","bgcolor":"","icon":"fa-volume-up","payload":"Hello to Jason Isaacs","payloadType":"str","topic":"","x":110,"y":320,"wires":[["f897d7c2.467a58"]]},{"id":"f897d7c2.467a58","type":"ui_audio","z":"41f61d2.fbe09e4","name":"","group":"30e652f.d9de3ae","voice":"0","x":300,"y":320,"wires":[]},{"id":"da0f7e67.0d38a","type":"ui_slider","z":"41f61d2.fbe09e4","name":"","label":"slider","group":"30e652f.d9de3ae","order":4,"width":0,"height":0,"passthru":true,"topic":"","min":0,"max":"100","step":1,"x":90,"y":140,"wires":[["799d9318.fd385c","219da65f.e0b0da"]]},{"id":"eabf2bd7.f4e0c8","type":"ui_slider","z":"41f61d2.fbe09e4","name":"","label":"slider","group":"bbdf3e02.e8fee","order":4,"width":0,"height":0,"passthru":true,"topic":"","min":0,"max":"100","step":1,"x":130,"y":200,"wires":[["9f19ee5c.beaef","ccee40e3.c1618"]]},{"id":"45508d88.744a54","type":"function","z":"41f61d2.fbe09e4","name":"","func":"// create random position\nvar lat = 51 + Math.random() * 0.2;\nvar lon = -1.45 + Math.random() * 0.2;\nmsg.payload={lat:lat, lon:lon, name:\"Jason\", icon:\"male\", url:\"IBM link\"};\nreturn msg;","outputs":1,"noerr":0,"x":290,"y":400,"wires":[["f76b15b1.dd27a8"]]},{"id":"6ca8cfc2.e0bce","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"c75ad4f0.0cede8","order":1,"width":0,"height":0,"passthru":false,"label":"Where's Jason ?","color":"","bgcolor":"#910000","icon":"fa-male","payload":"","payloadType":"str","topic":"","x":110,"y":400,"wires":[["45508d88.744a54"]]},{"id":"219da65f.e0b0da","type":"debug","z":"41f61d2.fbe09e4","name":"","active":true,"tosidebar":true,"console":true,"tostatus":false,"complete":"payload","x":300,"y":100,"wires":[]},{"id":"ccee40e3.c1618","type":"debug","z":"41f61d2.fbe09e4","name":"","active":true,"tosidebar":true,"console":true,"tostatus":false,"complete":"payload","targetType":"msg","x":300,"y":260,"wires":[]},{"id":"1c597308.3cfc0d","type":"worldmap in","z":"41f61d2.fbe09e4","name":"worldmap in","path":"","events":"","x":110,"y":480,"wires":[["7d6cb82c.3f3ea8"]]},{"id":"7d6cb82c.3f3ea8","type":"debug","z":"41f61d2.fbe09e4","name":"","active":true,"tosidebar":false,"console":true,"tostatus":false,"complete":"payload","x":350,"y":480,"wires":[]},{"id":"762cecef.af00d4","type":"inject","z":"41f61d2.fbe09e4","name":"","topic":"","payload":"26","payloadType":"num","repeat":"","crontab":"","once":true,"onceDelay":"2","x":90,"y":260,"wires":[["eabf2bd7.f4e0c8"]]},{"id":"f76b15b1.dd27a8","type":"ui_worldmap","z":"41f61d2.fbe09e4","group":"c75ad4f0.0cede8","order":1,"width":"6","height":"7","name":"","lat":"","lon":"","zoom":"","layer":"","cluster":"","maxage":"","usermenu":"hide","layers":"hide","panit":"false","panlock":"false","zoomlock":"false","hiderightclick":"true","coords":"none","showgrid":"false","path":"/worldmap","x":440,"y":400,"wires":[]}] \ No newline at end of file diff --git a/main.js b/main.js index 647740f..4ba40d9 100755 --- a/main.js +++ b/main.js @@ -3,7 +3,7 @@ // Some settings you can edit easily -const editable = true; // Set this to false to create a run only application - no editor/no console +const editable = true; // Set this to false to create a run only application - no editor/no console const allowLoadSave = false; // set to true to allow omport and export of flow const showMap = false; // set to true to add Worldmap to the menu let flowfile = 'electronflow.json'; // default Flows file name - loaded at start @@ -11,6 +11,7 @@ const urldash = "/ui/#/0"; // Start on the dashboard page const urledit = "/red"; // url for the editor page const urlconsole = "/console.htm"; // url for the console page const urlmap = "/worldmap"; // url for the worldmap +const nrIcon = "nodered.png" // Icon for the app in root dir (usually 256x256) // tcp port to use //const listenPort = "18880"; // fix it if you like @@ -24,14 +25,10 @@ const http = require('http'); const express = require("express"); const electron = require('electron'); -const app = electron.app; +const {app, Menu} = electron; const ipc = electron.ipcMain; const dialog = electron.dialog; const BrowserWindow = electron.BrowserWindow; -const {Menu, MenuItem} = electron; - -// this should be placed at top of main.js to handle squirrel setup events quickly -if (handleSquirrelEvent()) { return; } var RED = require("node-red"); var red_app = express(); @@ -94,11 +91,13 @@ let mainWindow; let conWindow; let logBuffer = []; let logLength = 250; // No. of lines of console log to keep. +const levels = [ "", "fatal", "error", "warn", "info", "debug", "trace" ]; ipc.on('clearLogBuffer', function(event, arg) { logBuffer = []; }); // Create the settings object - see default settings.js file for other options var settings = { + uiHost: "127.0.0.1", // only allow local connections httpAdminRoot: "/red", // set to false to disable editor/deploy httpNodeRoot: "/", userDir: userdir, @@ -114,7 +113,13 @@ var settings = { if (editable) { // No logging if not editable var ts = (new Date(msg.timestamp)).toISOString(); ts = ts.replace("Z"," ").replace("T"," "); - var line = ts+" : "+msg.msg; + var line = ""; + if (msg.type && msg.id) { + line = ts+" : ["+levels[msg.level/10]+"] ["+msg.type+":"+msg.id+"] "+msg.msg; + } + else { + line = ts+" : ["+levels[msg.level/10]+"] "+msg.msg; + } logBuffer.push(line); if (conWindow) { conWindow.webContents.send('debugMsg', line); } if (logBuffer.length > logLength) { logBuffer.shift(); } @@ -127,7 +132,7 @@ var settings = { if (!editable) { settings.httpAdminRoot = false; settings.readOnly = true; - } +} // Initialise the runtime with a server and settings RED.init(server,settings); @@ -141,95 +146,83 @@ if (settings.httpAdminRoot !== false) { red_app.use(settings.httpNodeRoot,RED.httpNode); // Create the Application's main menu -var template = [ - // {label: "Application", - // submenu: [ - // //{ role: 'about' }, - // //{ type: "separator" }, - // { role: 'togglefullscreen' }, - // { role: 'quit' } - // ]}, +var template = []; +if (process.platform === 'darwin') { + template.push( { + label: app.getName(), + submenu: [ + { type: 'separator' }, + { type: 'separator' }, + { role: 'about' }, + { type: 'separator' }, + { role: 'hide' }, + { role: 'hideothers' }, + { role: 'unhide' }, + { type: 'separator' }, + { role: 'togglefullscreen' }, + { role: 'quit' } + ] + } ) +} +template.push( { label: 'Node-RED', - submenu: [ - { type: 'separator' }, - { type: 'separator' }, - { label: 'Import Flow', - accelerator: "Shift+CmdOrCtrl+O", - click() { openFlow(); } - }, - { label: 'Save Flow As', - accelerator: "Shift+CmdOrCtrl+S", - click() { saveFlow(); } - }, - { type: 'separator' }, - { label: 'Console', - accelerator: "Shift+CmdOrCtrl+C", - click() { createConsole(); } - }, - { label: 'Dashboard', - accelerator: "Shift+CmdOrCtrl+D", - click() { mainWindow.loadURL("http://localhost:"+listenPort+urldash); } - }, - { label: 'Editor', - accelerator: "Shift+CmdOrCtrl+E", - click() { mainWindow.loadURL("http://localhost:"+listenPort+urledit); } - }, - { label: 'Worldmap', - accelerator: "Shift+CmdOrCtrl+M", - click() { mainWindow.loadURL("http://localhost:"+listenPort+urlmap); } - }, - { type: 'separator' }, - { label: 'Documentation', - click() { electron.shell.openExternal('https://nodered.org/docs') } - }, - { label: 'Flows and Nodes', - click() { electron.shell.openExternal('https://flows.nodered.org') } - }, - { label: 'Discourse Forum', - click() { electron.shell.openExternal('https://discourse.nodered.org/') } - }, - { type: "separator" }, - { role: 'togglefullscreen' }, - { role: 'quit' } - ]} - // ,{label: "Edit", - // submenu: [ - // { label: "Undo", accelerator: "CmdOrCtrl+Z", selector: "undo:" }, - // { label: "Redo", accelerator: "Shift+CmdOrCtrl+Z", selector: "redo:" }, - // { type: "separator" }, - // { label: "Cut", accelerator: "CmdOrCtrl+X", selector: "cut:" }, - // { label: "Copy", accelerator: "CmdOrCtrl+C", selector: "copy:" }, - // { label: "Paste", accelerator: "CmdOrCtrl+V", selector: "paste:" }, - // { label: "Select All", accelerator: "CmdOrCtrl+A", selector: "selectAll:" } - // ]} - // ,{ label: 'View', - // submenu: [ - // { label: 'Reload', - // accelerator: 'CmdOrCtrl+R', - // click(item, focusedWindow) { if (focusedWindow) { focusedWindow.reload(); }} - // }, - // { label: 'Toggle Developer Tools', - // accelerator: process.platform === 'darwin' ? 'Alt+Command+I' : 'Ctrl+Shift+I', - // click(item, focusedWindow) { if (focusedWindow) { focusedWindow.webContents.toggleDevTools(); }} - // }, - // { type: 'separator' }, - // { role: 'resetzoom' }, - // { role: 'zoomin' }, - // { role: 'zoomout' }, - // { type: 'separator' }, - // { role: 'togglefullscreen' }, - // { role: 'minimize' } - // ]} -]; - -if (!showMap) { template[0].submenu.splice(8,1); } + submenu: [ + { label: 'Import Flow', + accelerator: "Shift+CmdOrCtrl+O", + click() { openFlow(); } + }, + { label: 'Save Flow As', + accelerator: "Shift+CmdOrCtrl+S", + click() { saveFlow(); } + }, + { type: 'separator' }, + { label: 'Console', + accelerator: "Shift+CmdOrCtrl+C", + click() { createConsole(); } + }, + { label: 'Dashboard', + accelerator: "Shift+CmdOrCtrl+D", + click() { mainWindow.loadURL("http://localhost:"+listenPort+urldash); } + }, + { label: 'Editor', + accelerator: "Shift+CmdOrCtrl+E", + click() { mainWindow.loadURL("http://localhost:"+listenPort+urledit); } + }, + { label: 'Worldmap', + accelerator: "Shift+CmdOrCtrl+M", + click() { mainWindow.loadURL("http://localhost:"+listenPort+urlmap); } + }, + { type: 'separator' }, + { type: 'separator' }, + { label: 'Documentation', + click() { electron.shell.openExternal('https://nodered.org/docs') } + }, + { label: 'Flows and Nodes', + click() { electron.shell.openExternal('https://flows.nodered.org') } + }, + { label: 'Discourse Forum', + click() { electron.shell.openExternal('https://discourse.nodered.org/') } + } + ] + } +); + +var tempNum = template.length - 1; +// Add quit and toggle full screen to this menu if not on Mac +if (process.platform !== 'darwin') { + template[tempNum].submenu.push({ type: "separator" }); + template[tempNum].submenu.push({ role: 'togglefullscreen' }); + template[tempNum].submenu.push({ role: 'quit' }); +} + +if (!showMap) { template[tempNum].submenu.splice(8,1); } if (!editable) { - template[0].submenu.splice(3,1); - template[0].submenu.splice(4,1); + template[tempNum].submenu.splice(3,1); + template[tempNum].submenu.splice(4,1); } -if (!allowLoadSave) { template[0].submenu.splice(0,2); } +if (!allowLoadSave) { template[tempNum].submenu.splice(0,2); } let fileName = ""; function saveFlow() { @@ -243,7 +236,7 @@ function saveFlow() { if (err) { dialog.showErrorBox('Error', err); } else { dialog.showMessageBox({ - icon: "nodered.png", + icon: nrIcon, message:"Flow file saved as\n\n"+file_path, buttons: ["OK"] }); @@ -286,11 +279,14 @@ function createConsole() { title: "Node-RED Console", width: 800, height: 600, - icon: path.join(__dirname, 'nodered.png'), - autoHideMenuBar: true + icon: path.join(__dirname, nrIcon), + autoHideMenuBar: true, + webPreferences: { + nodeIntegration: true + } }); conWindow.loadURL(url.format({ - pathname: path.join(__dirname, 'console.htm'), + pathname: path.join(__dirname, urlconsole), protocol: 'file:', slashes: true })) @@ -310,13 +306,16 @@ function createWindow() { //titleBarStyle: "hidden", width: 1024, height: 768, - icon: path.join(__dirname, 'nodered.png'), + icon: path.join(__dirname, nrIcon), fullscreenable: true, autoHideMenuBar: true, webPreferences: { nodeIntegration: false } }); + const menu = Menu.buildFromTemplate(template); + Menu.setApplicationMenu(menu); + mainWindow.loadURL(`file://${__dirname}/load.html`); //if (process.platform !== 'darwin') { mainWindow.setAutoHideMenuBar(true); } @@ -324,7 +323,6 @@ function createWindow() { if ((httpResponseCode == 404) && (newURL == ("http://localhost:"+listenPort+urldash))) { setTimeout(mainWindow.webContents.reload, 250); } - Menu.setApplicationMenu(Menu.buildFromTemplate(template)); }); // mainWindow.webContents.on('did-finish-load', () => { @@ -354,6 +352,10 @@ function createWindow() { //mainWindow.webContents.openDevTools(); } +app.on('orderFrontStandardAboutPanel', function() { + createConsole(); +}); + // Called when Electron has finished initialization and is ready to create browser windows. app.on('ready', createWindow ); @@ -378,62 +380,4 @@ RED.start().then(function() { server.listen(listenPort,"127.0.0.1",function() { mainWindow.loadURL("http://127.0.0.1:"+listenPort+urldash); }); -}); - -/////////////////////////////////////////////////////// -// All this Squirrel stuff is for the Windows installer -function handleSquirrelEvent() { - if (process.argv.length === 1) { return false; } - - const path = require('path'); - const ChildProcess = require('child_process'); - const appFolder = path.resolve(process.execPath, '..'); - const rootAtomFolder = path.resolve(appFolder, '..'); - const updateDotExe = path.resolve(path.join(rootAtomFolder, 'Update.exe')); - const exeName = path.basename(process.execPath); - const spawn = function(command, args) { - let spawnedProcess, error; - - try { spawnedProcess = ChildProcess.spawn(command, args, {detached: true}); } - catch (error) {} - return spawnedProcess; - }; - - const spawnUpdate = function(args) { - return spawn(updateDotExe, args); - }; - - const squirrelEvent = process.argv[1]; - switch (squirrelEvent) { - case '--squirrel-install': - case '--squirrel-updated': - // Optionally do things such as: - // - Add your .exe to the PATH - // - Write to the registry for things like file associations and - // explorer context menus - - // Install desktop and start menu shortcuts - spawnUpdate(['--createShortcut', exeName]); - - setTimeout(app.quit, 1000); - return true; - - case '--squirrel-uninstall': - // Undo anything you did in the --squirrel-install and - // --squirrel-updated handlers - - // Remove desktop and start menu shortcuts - spawnUpdate(['--removeShortcut', exeName]); - - setTimeout(app.quit, 1000); - return true; - - case '--squirrel-obsolete': - // This is called on the outgoing version of your app before - // we update to the new version - it's the opposite of - // --squirrel-updated - - app.quit(); - return true; - } -} +}); \ No newline at end of file diff --git a/nodered.ico b/nodered.ico deleted file mode 100644 index b5e4502ff4113be1d50bce856214dbd5a3509de2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34494 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 ZcTR4w?NDd`x_+E#DJa-r^QNxf{||5D5w8FM diff --git a/nodered.png b/nodered.png index 13713bf13a5652d6be7475c6321448883fd25e27..3944e90acdee060bc00183140a5dc829ec04e1d2 100644 GIT binary patch literal 22280 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 literal 1333 zcmV-51K<6O9^;8uw^?FdFs2^~Lqk7)^{uDW$_w+X7a~ zQbC4Afgq`()PPVLnF2B(=nx@;Od090%~!tr!s*;uJ9E9m-1(C4ZSFao@80t--{C~u zjfik$UV4wgt4GUnS0MIg36(DiZB9vaeia&HZRL8|B!q+!$AY;RZ;1VEe^k_W4 zbO{5!z4%&adh!JE)29cA0EXmbsDaOQb%-86UR?pQwrzu&D8F?}T>%=hvt@7P*_ksa zI&mWKJb4oD3ko2jue+OHfqDY`-P{Zj$xD_fI^Q>A$I9kRS+zPbMMV(tX!B;}1xT1Vlb@lKicGIw!E7+VYBI?L_!`2$FD!(J%q?4#6X3zpr7-5? zz~0{vCkSl;UR=H`=5}ofP{AvDt#mjDs(FhSKk�J@a>3vxN;@amDdyGA36jP{XIQ+ zxMGFN-y3stA)>9S3i*c*BWK^ffHQahe$=I>LqxyLhM0*HhXjBV*g86x!aOdXIlR5P z8X~HqquoBkKTJ(j#l-x#6owo8m6GDNPf0MHOg<_Mr~>;>eA8_VRdXQ^n3Q;-pG;O86w}$ngv^Dr`v_;ckf1z z#R3s6B_*L^iOC~1Ei3lXHAzY6sI3Lzxc46{TNXM3yvxdh0FQM&Gr{YdH<7(_C*r3~ z3q1k&hJC^3`g)p??Da!J0Kd%3PZbr684NCFR4GH`9yoxCJ9n6CS!%lL{#Yr}rV4HWnv07efZd+g1AaSU0{a7+pDu%^ zskD^h1)l&cdvo^g<(mpb$HwQFI%VS#mc~XTEncj?0A2(!zb8psw@$LZ9l&BrFed`X z#Dxo`vb^iV2Tv*7tpI#jXl?x?TTr83?{tphQ>Oy9_`>7I(f8#GWbjo04pMOJSfI@b z20@o6Hupx2@@IVZ7P9T;s{nL!Xd=+UQf%K9pFZvE)1-aw*SzMM8u$ny2&!;K*xS|R zw6FLxApt+mo9D}TY~p0&umJmR@?>{ZPXLk)6io`Ju-m0{S#th7eqO#@Xvv-P@s1r3 zK(E64G^i$Hr%aKyoG0{Jt#p~$<4Z+X$+>fqZC7ygsARMKe*HQG@CZKm1rVvc*1t6IPSVgiD^*NegfC2lugqxv r(v;?}&1wGPWcccA`0})duh0JrvYb0AxvJWm00000NkvXXu0mjf2@HCt diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 2a48470..0000000 --- a/package-lock.json +++ /dev/null @@ -1,4780 +0,0 @@ -{ - "name": "electron_node_red", - "version": "1.0.2", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@babel/runtime": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.6.3.tgz", - "integrity": "sha512-kq6anf9JGjW8Nt5rYfEuGRaEAaH1mkv3Bbu6rYvLOpPh/RusSJXuKPEAoZ7L7gybZkchE8+NV5g9vKF4AGAtsA==", - "requires": { - "regenerator-runtime": "^0.13.2" - } - }, - "@node-red/editor-api": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@node-red/editor-api/-/editor-api-1.0.2.tgz", - "integrity": "sha512-yUvTU5b7gDL35NIC2qC54NY0uuIAewVzcPWsc+Rbjy9YpY1DUD2Gt5Ub9gR2QPWYtVPG4zSPOBtPhZEcZvBSxQ==", - "requires": { - "@node-red/editor-client": "1.0.2", - "@node-red/util": "1.0.2", - "bcrypt": "3.0.6", - "bcryptjs": "2.4.3", - "body-parser": "1.19.0", - "clone": "2.1.2", - "cors": "2.8.5", - "express": "4.17.1", - "express-session": "1.16.2", - "memorystore": "1.6.1", - "mime": "2.4.4", - "mustache": "3.0.2", - "oauth2orize": "1.11.0", - "passport": "0.4.0", - "passport-http-bearer": "1.0.1", - "passport-oauth2-client-password": "0.1.2", - "when": "3.7.8", - "ws": "6.2.1" - }, - "dependencies": { - "mime": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", - "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==" - } - } - }, - "@node-red/editor-client": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@node-red/editor-client/-/editor-client-1.0.2.tgz", - "integrity": "sha512-BhgzwWjxjrQJnZC/BMIZvco4H5ksZl+qh+3hy40ReDrNpp8xSc3mDIFoB785CZrYBtFMhasE2q0kqdYuNKE/Zw==" - }, - "@node-red/nodes": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@node-red/nodes/-/nodes-1.0.2.tgz", - "integrity": "sha512-o5N0FZnLAEd1lF2ArLGoETosukFVI+nPTHWKUOoSd069eLuaS262BOTbbnk/oY4H2DEWQzjGZ2KKBItWlhbpXQ==", - "requires": { - "ajv": "6.10.2", - "body-parser": "1.19.0", - "cheerio": "0.22.0", - "content-type": "1.0.4", - "cookie": "0.4.0", - "cookie-parser": "1.4.4", - "cors": "2.8.5", - "cron": "1.7.1", - "denque": "1.4.1", - "fs-extra": "8.1.0", - "fs.notify": "0.0.4", - "hash-sum": "2.0.0", - "https-proxy-agent": "2.2.2", - "iconv-lite": "0.5.0", - "is-utf8": "0.2.1", - "js-yaml": "3.13.1", - "media-typer": "1.1.0", - "mqtt": "2.18.8", - "multer": "1.4.2", - "mustache": "3.0.2", - "on-headers": "1.0.2", - "raw-body": "2.4.1", - "request": "2.88.0", - "ws": "6.2.1", - "xml2js": "0.4.19" - }, - "dependencies": { - "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "http-errors": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", - "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - } - }, - "iconv-lite": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.5.0.tgz", - "integrity": "sha512-NnEhI9hIEKHOzJ4f697DMz9IQEXr/MMJ5w64vN2/4Ai+wRnvV7SBrL0KLoRlwaKVghOc7LQ5YkPLuX146b6Ydw==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "media-typer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", - "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==" - }, - "raw-body": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz", - "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==", - "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.3", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "dependencies": { - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - } - } - } - } - }, - "@node-red/registry": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@node-red/registry/-/registry-1.0.2.tgz", - "integrity": "sha512-i6TZvVriini0732IN2DVMofkG8RmiaLKpkHaP1aRceHvweDQB4yorcQsPDxqU+uiJo3lQlc1oB5j13X3mdq8DQ==", - "requires": { - "@node-red/util": "1.0.2", - "semver": "6.3.0", - "uglify-js": "3.6.0", - "when": "3.7.8" - } - }, - "@node-red/runtime": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@node-red/runtime/-/runtime-1.0.2.tgz", - "integrity": "sha512-YMKu5HA4WWYdf2PinysONiEFkmoz+PHD4u9ormREBXPr4iCWmZ2+XqL4QRGAc/RA8FJQ8liCr2rLDUvAuSSVOQ==", - "requires": { - "@node-red/registry": "1.0.2", - "@node-red/util": "1.0.2", - "clone": "2.1.2", - "express": "4.17.1", - "fs-extra": "8.1.0", - "json-stringify-safe": "5.0.1", - "when": "3.7.8" - } - }, - "@node-red/util": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@node-red/util/-/util-1.0.2.tgz", - "integrity": "sha512-DwaS8ZDcIFcMUQCWpMEVt38Pr6H2JBCeghZEs5v6nH+pnemUi1x6Mi+CSvwywVc4WN4uzGhVr8dWxFh1Q6/iEQ==", - "requires": { - "clone": "2.1.2", - "i18next": "15.1.2", - "json-stringify-safe": "5.0.1", - "jsonata": "1.6.5", - "when": "3.7.8" - } - }, - "@serialport/binding-abstract": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@serialport/binding-abstract/-/binding-abstract-2.0.5.tgz", - "integrity": "sha512-oRg0QRsXJFKHQbQjmo0regKLZ9JhjLmTqc47ocJgYM5UtU9Q1VFrVPh0B2lr2pfm/tr3aNvTLX1eiVAvXyZ/bg==", - "requires": { - "debug": "^4.1.1" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "@serialport/binding-mock": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@serialport/binding-mock/-/binding-mock-2.0.5.tgz", - "integrity": "sha512-1kD1qI686pIIolGZ6TPjAtvy8c3XIUlE4OXRZf7ZHaZgGaOUHAUMLKZt4tNTxsfedRTFyiYyHoe5QAbx82R9pQ==", - "requires": { - "@serialport/binding-abstract": "^2.0.5", - "debug": "^4.1.1" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "@serialport/bindings": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/@serialport/bindings/-/bindings-2.0.8.tgz", - "integrity": "sha512-paKLa9JkoH5FAy2sATTdXLCiKpuKn0pN15/etcCqzX8vi25fnQgJ8Yx9Z6zdbcKe1No7s/9PuH9yfjDR61fbOQ==", - "requires": { - "@serialport/binding-abstract": "^2.0.5", - "@serialport/parser-readline": "^2.0.2", - "bindings": "^1.3.0", - "debug": "^4.1.1", - "nan": "^2.13.2", - "prebuild-install": "^5.2.1" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "@serialport/parser-byte-length": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@serialport/parser-byte-length/-/parser-byte-length-2.0.2.tgz", - "integrity": "sha512-cUOprk1uRLucCJy6m+wAM4pwdBaB5D4ySi6juwRScP9DTjKUvGWYj5jzuqvftFBvYFmFza89aLj5K23xiiqj7Q==" - }, - "@serialport/parser-cctalk": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@serialport/parser-cctalk/-/parser-cctalk-2.0.2.tgz", - "integrity": "sha512-5LMysRv7De+TeeoKzi4+sgouD4tqZEAn1agAVevw+7ILM0m30i1zgZLtchgxtCH7OoQRAkENEVEPc0OwhghKgw==" - }, - "@serialport/parser-delimiter": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@serialport/parser-delimiter/-/parser-delimiter-2.0.2.tgz", - "integrity": "sha512-zB02LahFfyZmJqak9l37vP/F1K+KCUxd1KQj35OhD1+0q/unMjVTZmsfkxFSM4gkaxP9j7+8USk+LQJ3V8U26Q==" - }, - "@serialport/parser-readline": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@serialport/parser-readline/-/parser-readline-2.0.2.tgz", - "integrity": "sha512-thL26dGEHB+eINNydJmzcLLhiqcBQkF+wNTbRaYblTP/6dm7JsfjYSud7bTkN63AgE0xpe9tKXBFqc8zgJ1VKg==", - "requires": { - "@serialport/parser-delimiter": "^2.0.2" - } - }, - "@serialport/parser-ready": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@serialport/parser-ready/-/parser-ready-2.0.2.tgz", - "integrity": "sha512-6ynQ+HIIkFQcEO2Hrq4Qmdz+hlJ7kjTHGQ1E7SRN7f70nnys1v3HSke8mjK3RzVw+SwL0rBYjftUdCTrU+7c+Q==" - }, - "@serialport/parser-regex": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@serialport/parser-regex/-/parser-regex-2.0.2.tgz", - "integrity": "sha512-7qjYd7AdHUK8fJOmHpXlMRipqRCVMMyDFyf/5TQQiOt6q+BiFjLOtSpVXhakHwgnXanzDYKeRSB8zM0pZZg+LA==" - }, - "@serialport/stream": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@serialport/stream/-/stream-2.0.5.tgz", - "integrity": "sha512-9gc3zPoAqs/04mvq8TdZ7GxtnacCDuw3/u0u18UXXHgC/5tNDYkY+hXFIJB1fQFnP5yyNB1L2XLfX974ySJg9Q==", - "requires": { - "@serialport/binding-mock": "^2.0.5", - "debug": "^4.1.1" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "@types/node": { - "version": "8.10.49", - "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.49.tgz", - "integrity": "sha512-YX30JVx0PvSmJ3Eqr74fYLGeBxD+C7vIL20ek+GGGLJeUbVYRUW3EzyAXpIRA0K8c8o0UWqR/GwEFYiFoz1T8w==", - "dev": true - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - } - }, - "after": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", - "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" - }, - "agent-base": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", - "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", - "requires": { - "es6-promisify": "^5.0.0" - } - }, - "ajv": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", - "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "append-field": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", - "integrity": "sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY=" - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" - }, - "are-we-there-yet": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "dev": true - }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "arraybuffer.slice": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", - "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==" - }, - "asar": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/asar/-/asar-0.11.0.tgz", - "integrity": "sha1-uSbnksMV+MBIxDNx4yWwnJenZGQ=", - "dev": true, - "requires": { - "chromium-pickle-js": "^0.1.0", - "commander": "^2.9.0", - "cuint": "^0.2.1", - "glob": "^6.0.4", - "minimatch": "^3.0.0", - "mkdirp": "^0.5.0", - "mksnapshot": "^0.3.0" - }, - "dependencies": { - "glob": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", - "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", - "dev": true, - "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } - } - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - }, - "async": { - "version": "0.1.22", - "resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz", - "integrity": "sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE=" - }, - "async-limiter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", - "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==" - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" - }, - "aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" - }, - "backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=" - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "base64-arraybuffer": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", - "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=" - }, - "base64id": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", - "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==" - }, - "basic-auth": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", - "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", - "requires": { - "safe-buffer": "5.1.2" - } - }, - "bcrypt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-3.0.6.tgz", - "integrity": "sha512-taA5bCTfXe7FUjKroKky9EXpdhkVvhE5owfxfLYodbrAR1Ul3juLmIQmIQBK4L9a5BuUcE6cqmwT+Da20lF9tg==", - "optional": true, - "requires": { - "nan": "2.13.2", - "node-pre-gyp": "0.12.0" - } - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "bcryptjs": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", - "integrity": "sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms=" - }, - "better-assert": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", - "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", - "requires": { - "callsite": "1.0.0" - } - }, - "binary": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", - "integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=", - "dev": true, - "requires": { - "buffers": "~0.1.1", - "chainsaw": "~0.1.0" - } - }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "bl": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz", - "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==", - "requires": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" - } - }, - "blob": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", - "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==" - }, - "bluebird": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz", - "integrity": "sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==", - "dev": true - }, - "body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "requires": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - } - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "buffer-alloc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", - "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", - "requires": { - "buffer-alloc-unsafe": "^1.1.0", - "buffer-fill": "^1.0.0" - } - }, - "buffer-alloc-unsafe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==" - }, - "buffer-fill": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=" - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" - }, - "bufferjs": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/bufferjs/-/bufferjs-3.0.1.tgz", - "integrity": "sha1-BpLoKcsQoQVQ5kc5CwNesGw46O8=" - }, - "bufferlist": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/bufferlist/-/bufferlist-0.1.0.tgz", - "integrity": "sha1-Qr7y2JVztA+hCGuzng9TEBcNHd0=" - }, - "buffers": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", - "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=", - "dev": true - }, - "busboy": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz", - "integrity": "sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=", - "requires": { - "dicer": "0.2.5", - "readable-stream": "1.1.x" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - } - } - }, - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" - }, - "callback-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/callback-stream/-/callback-stream-1.1.0.tgz", - "integrity": "sha1-RwGlEmbwbgbqpx/BcjOCLYdfSQg=", - "requires": { - "inherits": "^2.0.1", - "readable-stream": "> 1.0.0 < 3.0.0" - } - }, - "callsite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", - "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=" - }, - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "dev": true - }, - "camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", - "dev": true, - "requires": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" - } - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "cgi": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cgi/-/cgi-0.3.1.tgz", - "integrity": "sha1-h1HaZKHPGEnREFYxi3YNGs+6R9w=", - "requires": { - "debug": "2", - "extend": "~2.0.0", - "header-stack": "~0.0.2", - "stream-stack": "~1.1.1" - }, - "dependencies": { - "extend": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-2.0.2.tgz", - "integrity": "sha512-AgFD4VU+lVLP6vjnlNfF7OeInLTyeyckCNPEsuxz1vi786UuK/nk6ynPuhn/h+Ju9++TQyr5EpLRI14fc1QtTQ==" - } - } - }, - "chainsaw": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", - "integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=", - "dev": true, - "requires": { - "traverse": ">=0.3.0 <0.4" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "cheerio": { - "version": "0.22.0", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz", - "integrity": "sha1-qbqoYKP5tZWmuBsahocxIe06Jp4=", - "requires": { - "css-select": "~1.2.0", - "dom-serializer": "~0.1.0", - "entities": "~1.1.1", - "htmlparser2": "^3.9.1", - "lodash.assignin": "^4.0.9", - "lodash.bind": "^4.1.4", - "lodash.defaults": "^4.0.1", - "lodash.filter": "^4.4.0", - "lodash.flatten": "^4.2.0", - "lodash.foreach": "^4.3.0", - "lodash.map": "^4.4.0", - "lodash.merge": "^4.4.0", - "lodash.pick": "^4.2.1", - "lodash.reduce": "^4.4.0", - "lodash.reject": "^4.4.0", - "lodash.some": "^4.4.0" - } - }, - "chownr": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz", - "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==" - }, - "chromium-pickle-js": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.1.0.tgz", - "integrity": "sha1-HUixB9ghJqLz4hHC6iX4A7pVGyE=", - "dev": true - }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dev": true, - "requires": { - "restore-cursor": "^2.0.0" - } - }, - "cli-spinners": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.2.0.tgz", - "integrity": "sha512-tgU3fKwzYjiLEQgPMD9Jt+JjHVL9kW93FiIMX/l7rivvOD4/LL0Mf7gda3+4U2KJBloybwgj5KEoQgGRioMiKQ==", - "dev": true - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "colors": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.3.tgz", - "integrity": "sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg==", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", - "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==" - }, - "commist": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/commist/-/commist-1.1.0.tgz", - "integrity": "sha512-rraC8NXWOEjhADbZe9QBNzLAN5Q3fsTPQtBV+fEVj6xKIgDgNiEVE6ZNfHpZOqfQ21YUzfVNUXLOEZquYvQPPg==", - "requires": { - "leven": "^2.1.0", - "minimist": "^1.1.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - } - } - }, - "component-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", - "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=" - }, - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" - }, - "component-inherit": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", - "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=" - }, - "compressible": { - "version": "2.0.17", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.17.tgz", - "integrity": "sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw==", - "requires": { - "mime-db": ">= 1.40.0 < 2" - } - }, - "compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "requires": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "dependencies": { - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" - } - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" - }, - "content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "requires": { - "safe-buffer": "5.1.2" - } - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" - }, - "cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" - }, - "cookie-parser": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.4.tgz", - "integrity": "sha512-lo13tqF3JEtFO7FyA49CqbhaFkskRJ0u/UAiINgrIXeRCY41c88/zxtrECl8AKH3B0hj9q10+h3Kt8I7KlW4tw==", - "requires": { - "cookie": "0.3.1", - "cookie-signature": "1.0.6" - }, - "dependencies": { - "cookie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" - } - } - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "requires": { - "object-assign": "^4", - "vary": "^1" - } - }, - "cron": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/cron/-/cron-1.7.1.tgz", - "integrity": "sha512-gmMB/pJcqUVs/NklR1sCGlNYM7TizEw+1gebz20BMc/8bTm/r7QUp3ZPSPlG8Z5XRlvb7qhjEjq/+bdIfUCL2A==", - "requires": { - "moment-timezone": "^0.5.x" - } - }, - "css-select": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", - "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", - "requires": { - "boolbase": "~1.0.0", - "css-what": "2.1", - "domutils": "1.5.1", - "nth-check": "~1.0.1" - } - }, - "css-what": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", - "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==" - }, - "cuint": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz", - "integrity": "sha1-QICG1AlVDCYxFVYZ6fp7ytw7mRs=", - "dev": true - }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "dev": true, - "requires": { - "array-find-index": "^1.0.1" - } - }, - "d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "requires": { - "mimic-response": "^1.0.0" - } - }, - "decompress-zip": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/decompress-zip/-/decompress-zip-0.3.2.tgz", - "integrity": "sha512-Ab1QY4LrWMrUuo53lLnmGOby7v8ryqxJ+bKibKSiPisx+25mhut1dScVBXAYx14i/PqSrFZvR2FRRazhLbvL+g==", - "dev": true, - "requires": { - "binary": "^0.3.0", - "graceful-fs": "^4.1.3", - "mkpath": "^0.1.0", - "nopt": "^3.0.1", - "q": "^1.1.2", - "readable-stream": "^1.1.8", - "touch": "0.0.3" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "dev": true, - "requires": { - "abbrev": "1" - } - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - } - } - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" - }, - "defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "dev": true, - "requires": { - "clone": "^1.0.2" - }, - "dependencies": { - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "dev": true - } - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" - }, - "denque": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/denque/-/denque-1.4.1.tgz", - "integrity": "sha512-OfzPuSZKGcgr96rf1oODnfjqBFmr1DVoc/TrItj3Ohe0Ah1C5WX5Baquw/9U9KovnQ88EqmJbD66rKYUQYN1tQ==" - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" - }, - "dicer": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz", - "integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=", - "requires": { - "readable-stream": "1.1.x", - "streamsearch": "0.1.2" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - } - } - }, - "dom-serializer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", - "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", - "requires": { - "domelementtype": "^1.3.0", - "entities": "^1.1.1" - } - }, - "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" - }, - "domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", - "requires": { - "domelementtype": "1" - } - }, - "domutils": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "electron": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/electron/-/electron-2.0.18.tgz", - "integrity": "sha512-PQRHtFvLxHdJzMMIwTddUtkS+Te/fZIs+PHO+zPmTUTBE76V3Od3WRGzMQwiJHxN679licmCKhJpMyxZfDEVWQ==", - "dev": true, - "requires": { - "@types/node": "^8.0.24", - "electron-download": "^3.0.1", - "extract-zip": "^1.0.3" - } - }, - "electron-download": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/electron-download/-/electron-download-3.3.0.tgz", - "integrity": "sha1-LP1U1pZsAZxNSa1l++Zcyc3vaMg=", - "dev": true, - "requires": { - "debug": "^2.2.0", - "fs-extra": "^0.30.0", - "home-path": "^1.0.1", - "minimist": "^1.2.0", - "nugget": "^2.0.0", - "path-exists": "^2.1.0", - "rc": "^1.1.2", - "semver": "^5.3.0", - "sumchecker": "^1.2.0" - }, - "dependencies": { - "fs-extra": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", - "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0", - "path-is-absolute": "^1.0.0", - "rimraf": "^2.2.8" - } - }, - "jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", - "dev": true - } - } - }, - "electron-rebuild": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-1.8.6.tgz", - "integrity": "sha512-4BAPcNG0XP6stByqvFXggrjmf/C47P2L6HFFrWdR2ako1VLiTDIeZAOmU4WEBuWdaXYNqstleszVmcNHdRDojA==", - "dev": true, - "requires": { - "colors": "^1.3.3", - "debug": "^4.1.1", - "detect-libc": "^1.0.3", - "fs-extra": "^7.0.1", - "node-abi": "^2.9.0", - "node-gyp": "^5.0.1", - "ora": "^3.4.0", - "spawn-rx": "^3.0.0", - "yargs": "^13.2.4" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "electron-squirrel-startup": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/electron-squirrel-startup/-/electron-squirrel-startup-1.0.0.tgz", - "integrity": "sha1-GbTlWTP6Dvj1VnhLnGYPdyVGoLg=", - "dev": true, - "requires": { - "debug": "^2.2.0" - } - }, - "electron-winstaller": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/electron-winstaller/-/electron-winstaller-2.5.2.tgz", - "integrity": "sha1-B7ijoFVrhtDfQE6kCqz7cbJg03M=", - "dev": true, - "requires": { - "asar": "^0.11.0", - "bluebird": "^3.3.4", - "debug": "^2.2.0", - "fs-extra": "^0.26.7", - "lodash.template": "^4.2.2", - "temp": "^0.8.3" - }, - "dependencies": { - "fs-extra": { - "version": "0.26.7", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.26.7.tgz", - "integrity": "sha1-muH92UiXeY7at20JGM9C0MMYT6k=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0", - "path-is-absolute": "^1.0.0", - "rimraf": "^2.2.8" - } - }, - "jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - } - } - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" - }, - "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "requires": { - "once": "^1.4.0" - } - }, - "engine.io": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.4.0.tgz", - "integrity": "sha512-XCyYVWzcHnK5cMz7G4VTu2W7zJS7SM1QkcelghyIk/FmobWBtXE7fwhBusEKvCSqc3bMh8fNFMlUkCKTFRxH2w==", - "requires": { - "accepts": "~1.3.4", - "base64id": "2.0.0", - "cookie": "0.3.1", - "debug": "~4.1.0", - "engine.io-parser": "~2.2.0", - "ws": "^7.1.2" - }, - "dependencies": { - "cookie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "ws": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.1.2.tgz", - "integrity": "sha512-gftXq3XI81cJCgkUiAVixA0raD9IVmXqsylCrjRygw4+UOOGzPoxnQ6r/CnVL9i+mDncJo94tSkyrtuuQVBmrg==", - "requires": { - "async-limiter": "^1.0.0" - } - } - } - }, - "engine.io-client": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.0.tgz", - "integrity": "sha512-a4J5QO2k99CM2a0b12IznnyQndoEvtA4UAldhGzKqnHf42I3Qs2W5SPnDvatZRcMaNZs4IevVicBPayxYt6FwA==", - "requires": { - "component-emitter": "1.2.1", - "component-inherit": "0.0.3", - "debug": "~4.1.0", - "engine.io-parser": "~2.2.0", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "ws": "~6.1.0", - "xmlhttprequest-ssl": "~1.5.4", - "yeast": "0.1.2" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "ws": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz", - "integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==", - "requires": { - "async-limiter": "~1.0.0" - } - } - } - }, - "engine.io-parser": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.0.tgz", - "integrity": "sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w==", - "requires": { - "after": "0.8.2", - "arraybuffer.slice": "~0.0.7", - "base64-arraybuffer": "0.1.5", - "blob": "0.0.5", - "has-binary2": "~1.0.2" - } - }, - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" - }, - "env-paths": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-1.0.0.tgz", - "integrity": "sha1-QWgTO0K7BcOKNbGuQ5fIKYqzaeA=", - "dev": true - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es5-ext": { - "version": "0.10.51", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.51.tgz", - "integrity": "sha512-oRpWzM2WcLHVKpnrcyB7OW8j/s67Ba04JCm0WnNv3RiABSvs7mrQlutB8DBv793gKcp0XENR8Il8WxGTlZ73gQ==", - "requires": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.1", - "next-tick": "^1.0.0" - } - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-map": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", - "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", - "requires": { - "d": "1", - "es5-ext": "~0.10.14", - "es6-iterator": "~2.0.1", - "es6-set": "~0.1.5", - "es6-symbol": "~3.1.1", - "event-emitter": "~0.3.5" - } - }, - "es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" - }, - "es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", - "requires": { - "es6-promise": "^4.0.3" - } - }, - "es6-set": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", - "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", - "requires": { - "d": "1", - "es5-ext": "~0.10.14", - "es6-iterator": "~2.0.1", - "es6-symbol": "3.1.1", - "event-emitter": "~0.3.5" - }, - "dependencies": { - "es6-symbol": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", - "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", - "requires": { - "d": "1", - "es5-ext": "~0.10.14" - } - } - } - }, - "es6-symbol": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.2.tgz", - "integrity": "sha512-/ZypxQsArlv+KHpGvng52/Iz8by3EQPxhmbuz8yFG89N/caTFBSbcXONDw0aMjy827gQg26XAjP4uXFvnfINmQ==", - "requires": { - "d": "^1.0.1", - "es5-ext": "^0.10.51" - } - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" - }, - "event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", - "requires": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "expand-template": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", - "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==" - }, - "express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", - "requires": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - } - }, - "express-session": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.16.2.tgz", - "integrity": "sha512-oy0sRsdw6n93E9wpCNWKRnSsxYnSDX9Dnr9mhZgqUEEorzcq5nshGYSZ4ZReHFhKQ80WI5iVUUSPW7u3GaKauw==", - "requires": { - "cookie": "0.3.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~2.0.0", - "on-headers": "~1.0.2", - "parseurl": "~1.3.3", - "safe-buffer": "5.1.2", - "uid-safe": "~2.1.5" - }, - "dependencies": { - "cookie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" - }, - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "extract-zip": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz", - "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=", - "dev": true, - "requires": { - "concat-stream": "1.6.2", - "debug": "2.6.9", - "mkdirp": "0.5.1", - "yauzl": "2.4.1" - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" - }, - "faye-websocket": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", - "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", - "requires": { - "websocket-driver": ">=0.5.1" - } - }, - "fd-slicer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", - "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", - "dev": true, - "requires": { - "pend": "~1.2.0" - } - }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" - }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - } - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" - }, - "fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" - }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "dependencies": { - "graceful-fs": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz", - "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==" - } - } - }, - "fs-minipass": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.6.tgz", - "integrity": "sha512-crhvyXcMejjv3Z5d2Fa9sf5xLYVCF5O1c71QxbVnbLsmYMBEvDAftewesN/HhY03YRoA7zOMxjNGrF5svGaaeQ==", - "requires": { - "minipass": "^2.2.1" - } - }, - "fs.notify": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/fs.notify/-/fs.notify-0.0.4.tgz", - "integrity": "sha1-YyhNRaNLUs5gCIpt2+xbd208AT0=", - "requires": { - "async": "~0.1.22", - "retry": "~0.6.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "geolib": { - "version": "2.0.24", - "resolved": "https://registry.npmjs.org/geolib/-/geolib-2.0.24.tgz", - "integrity": "sha512-NR0AyYyEnGrFS9JvSFmmotQDxVCORJgDHdvBwSatxl5aHarOLMh3KuGI83bCvCfObjfoEiDe8Ung8GGLGAtthw==" - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "github-from-package": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=" - }, - "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "glob-stream": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", - "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", - "requires": { - "extend": "^3.0.0", - "glob": "^7.1.1", - "glob-parent": "^3.1.0", - "is-negated-glob": "^1.0.0", - "ordered-read-streams": "^1.0.0", - "pumpify": "^1.3.5", - "readable-stream": "^2.1.5", - "remove-trailing-separator": "^1.0.1", - "to-absolute-glob": "^2.0.0", - "unique-stream": "^2.0.2" - } - }, - "graceful-fs": { - "version": "4.1.15", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", - "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==" - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" - }, - "har-validator": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", - "requires": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" - } - }, - "has-binary2": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", - "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", - "requires": { - "isarray": "2.0.1" - }, - "dependencies": { - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" - } - } - }, - "has-cors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", - "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" - }, - "hash-sum": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz", - "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==" - }, - "header-stack": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/header-stack/-/header-stack-0.0.2.tgz", - "integrity": "sha1-Rg1ysW04ZSzkUeIyU2lxsx6E1g8=", - "requires": { - "bufferjs": ">= 0.2.3", - "bufferlist": ">= 0.0.6", - "stream-stack": ">= 1.1.1" - } - }, - "help-me": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/help-me/-/help-me-1.1.0.tgz", - "integrity": "sha1-jy1QjQYAtKRW2i8IZVbn5cBWo8Y=", - "requires": { - "callback-stream": "^1.0.2", - "glob-stream": "^6.1.0", - "through2": "^2.0.1", - "xtend": "^4.0.0" - } - }, - "home-path": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/home-path/-/home-path-1.0.6.tgz", - "integrity": "sha512-wo+yjrdAtoXt43Vy92a+0IPCYViiyLAHyp0QVS4xL/tfvVz5sXIW1ubLZk3nhVkD92fQpUMKX+fzMjr5F489vw==", - "dev": true - }, - "hosted-git-info": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", - "dev": true - }, - "htmlparser2": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", - "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", - "requires": { - "domelementtype": "^1.3.1", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" - }, - "dependencies": { - "readable-stream": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", - "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - } - }, - "http-parser-js": { - "version": "0.4.10", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.10.tgz", - "integrity": "sha1-ksnBN0w1CF912zWexWzCV8u5P6Q=" - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "https-proxy-agent": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.2.tgz", - "integrity": "sha512-c8Ndjc9Bkpfx/vCJueCPy0jlP4ccCCSNDp8xwCZzPjKJUm+B+u9WX2x98Qx4n1PiMNTWo3D7KK5ifNV/yJyRzg==", - "requires": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "i18next": { - "version": "15.1.2", - "resolved": "https://registry.npmjs.org/i18next/-/i18next-15.1.2.tgz", - "integrity": "sha512-98ELn/dqep00DQ/v1E1gpM21HNN6nqU3mS85mYKd9P7lXrhfUcuysPaa3HviKSFb3WPdjf7avuAST3P0dhNp/A==", - "requires": { - "@babel/runtime": "^7.3.1" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore-walk": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", - "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", - "optional": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "dev": true, - "requires": { - "repeating": "^2.0.0" - } - }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" - }, - "ipaddr.js": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", - "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==" - }, - "is-absolute": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", - "requires": { - "is-relative": "^1.0.0", - "is-windows": "^1.0.1" - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" - }, - "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "requires": { - "is-extglob": "^2.1.0" - } - }, - "is-negated-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", - "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=" - }, - "is-relative": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", - "requires": { - "is-unc-path": "^1.0.0" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "is-unc-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", - "requires": { - "unc-path-regex": "^0.1.2" - } - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "jsonata": { - "version": "1.6.5", - "resolved": "https://registry.npmjs.org/jsonata/-/jsonata-1.6.5.tgz", - "integrity": "sha512-iRx9U6AkvsjrRdFf9MMbQmGVAL3bXVANR12vbVxjgXouMPU9VJQEcFnLWUCaW8IDmOzdxsaxK4Xe7SGlBYr5Bg==" - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "klaw": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", - "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.9" - } - }, - "leven": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", - "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=" - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "dependencies": { - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - } - } - }, - "lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", - "dev": true - }, - "lodash.assign": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", - "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", - "dev": true - }, - "lodash.assignin": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.assignin/-/lodash.assignin-4.2.0.tgz", - "integrity": "sha1-uo31+4QesKPoBEIysOJjqNxqKKI=" - }, - "lodash.bind": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/lodash.bind/-/lodash.bind-4.2.1.tgz", - "integrity": "sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU=" - }, - "lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=" - }, - "lodash.filter": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.filter/-/lodash.filter-4.6.0.tgz", - "integrity": "sha1-ZosdSYFgOuHMWm+nYBQ+SAtMSs4=" - }, - "lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=" - }, - "lodash.foreach": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz", - "integrity": "sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM=" - }, - "lodash.map": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", - "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=" - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" - }, - "lodash.pick": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", - "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=" - }, - "lodash.reduce": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz", - "integrity": "sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs=" - }, - "lodash.reject": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.reject/-/lodash.reject-4.6.0.tgz", - "integrity": "sha1-gNZJLcFHCGS79YNTO2UfQqn1JBU=" - }, - "lodash.some": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz", - "integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=" - }, - "lodash.template": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz", - "integrity": "sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A=", - "dev": true, - "requires": { - "lodash._reinterpolate": "~3.0.0", - "lodash.templatesettings": "^4.0.0" - } - }, - "lodash.templatesettings": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz", - "integrity": "sha1-K01OlbpEDZFf8IvImeRVNmZxMxY=", - "dev": true, - "requires": { - "lodash._reinterpolate": "~3.0.0" - } - }, - "log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", - "dev": true, - "requires": { - "chalk": "^2.0.1" - } - }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "dev": true, - "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" - } - }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - }, - "dependencies": { - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" - } - } - }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" - }, - "memorystore": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/memorystore/-/memorystore-1.6.1.tgz", - "integrity": "sha512-rYRjVukgBR9sptGI3IfpAjZc4SkupddhAenUhPTGprnqM8Qh863PxfXxXWlfvHpMIAkJCok28Bm7ZlOKB4U+MA==", - "requires": { - "debug": "3.1.0", - "lru-cache": "^4.0.3" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - } - } - }, - "meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "dev": true, - "requires": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } - } - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, - "mime-db": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" - }, - "mime-types": { - "version": "2.1.24", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", - "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", - "requires": { - "mime-db": "1.40.0" - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true - }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" - }, - "minipass": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz", - "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==", - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.2.1.tgz", - "integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==", - "requires": { - "minipass": "^2.2.1" - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "requires": { - "minimist": "0.0.8" - } - }, - "mkpath": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/mkpath/-/mkpath-0.1.0.tgz", - "integrity": "sha1-dVSm+Nhxg0zJe1RisSLEwSTW3pE=", - "dev": true - }, - "mksnapshot": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/mksnapshot/-/mksnapshot-0.3.5.tgz", - "integrity": "sha512-PSBoZaj9h9myC3uRRW62RxmX8mrN3XbOkMEyURUD7v5CeJgtYTar50XU738t7Q0LtG1pBPtp5n5QwDGggRnEvw==", - "dev": true, - "requires": { - "decompress-zip": "0.3.x", - "fs-extra": "0.26.7", - "request": "2.x" - }, - "dependencies": { - "fs-extra": { - "version": "0.26.7", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.26.7.tgz", - "integrity": "sha1-muH92UiXeY7at20JGM9C0MMYT6k=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0", - "path-is-absolute": "^1.0.0", - "rimraf": "^2.2.8" - } - }, - "jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - } - } - }, - "moment": { - "version": "2.24.0", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", - "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==" - }, - "moment-timezone": { - "version": "0.5.26", - "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.26.tgz", - "integrity": "sha512-sFP4cgEKTCymBBKgoxZjYzlSovC20Y6J7y3nanDc5RoBIXKlZhoYwBoZGe3flwU6A372AcRwScH8KiwV6zjy1g==", - "requires": { - "moment": ">= 2.9.0" - } - }, - "mqtt": { - "version": "2.18.8", - "resolved": "https://registry.npmjs.org/mqtt/-/mqtt-2.18.8.tgz", - "integrity": "sha512-3h6oHlPY/yWwtC2J3geraYRtVVoRM6wdI+uchF4nvSSafXPZnaKqF8xnX+S22SU/FcgEAgockVIlOaAX3fkMpA==", - "requires": { - "commist": "^1.0.0", - "concat-stream": "^1.6.2", - "end-of-stream": "^1.4.1", - "es6-map": "^0.1.5", - "help-me": "^1.0.1", - "inherits": "^2.0.3", - "minimist": "^1.2.0", - "mqtt-packet": "^5.6.0", - "pump": "^3.0.0", - "readable-stream": "^2.3.6", - "reinterval": "^1.1.0", - "split2": "^2.1.1", - "websocket-stream": "^5.1.2", - "xtend": "^4.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - } - } - }, - "mqtt-packet": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/mqtt-packet/-/mqtt-packet-5.6.1.tgz", - "integrity": "sha512-eaF9rO2uFrIYEHomJxziuKTDkbWW5psLBaIGCazQSKqYsTaB3n4SpvJ1PexKaDBiPnMLPIFWBIiTYT3IfEJfww==", - "requires": { - "bl": "^1.2.1", - "inherits": "^2.0.3", - "process-nextick-args": "^2.0.0", - "safe-buffer": "^5.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "multer": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.2.tgz", - "integrity": "sha512-xY8pX7V+ybyUpbYMxtjM9KAiD9ixtg5/JkeKUTD6xilfDv0vzzOFcCp4Ljb1UU3tSOM3VTZtKo63OmzOrGi3Cg==", - "requires": { - "append-field": "^1.0.0", - "busboy": "^0.2.11", - "concat-stream": "^1.5.2", - "mkdirp": "^0.5.1", - "object-assign": "^4.1.1", - "on-finished": "^2.3.0", - "type-is": "^1.6.4", - "xtend": "^4.0.0" - } - }, - "mustache": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/mustache/-/mustache-3.0.2.tgz", - "integrity": "sha512-64neoEgmozb8e/ecGBOSE+RfnevLSFzCI0UKPcrWmjv953/8fXhYO9+EQFtfbi6hwoFxcTA+Fp5mRiOiI9eTuA==" - }, - "nan": { - "version": "2.13.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz", - "integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==" - }, - "napi-build-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.1.tgz", - "integrity": "sha512-boQj1WFgQH3v4clhu3mTNfP+vOBxorDlE8EKiMjUlLG3C4qAESnn9AxIOkFgTR2c9LtzNjPrjS60cT27ZKBhaA==" - }, - "needle": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.4.0.tgz", - "integrity": "sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg==", - "optional": true, - "requires": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "optional": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "optional": true - } - } - }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" - }, - "next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" - }, - "node-abi": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.9.0.tgz", - "integrity": "sha512-jmEOvv0eanWjhX8dX1pmjb7oJl1U1oR4FOh0b2GnvALwSYoOdU7sj+kLDSAyjo4pfC9aj/IxkloxdLJQhSSQBA==", - "requires": { - "semver": "^5.4.1" - }, - "dependencies": { - "semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" - } - } - }, - "node-gyp": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-5.0.3.tgz", - "integrity": "sha512-z/JdtkFGUm0QaQUusvloyYuGDub3nUbOo5de1Fz57cM++osBTvQatBUSTlF1k/w8vFHPxxXW6zxGvkxXSpaBkQ==", - "dev": true, - "requires": { - "env-paths": "^1.0.0", - "glob": "^7.0.3", - "graceful-fs": "^4.1.2", - "mkdirp": "^0.5.0", - "nopt": "2 || 3", - "npmlog": "0 || 1 || 2 || 3 || 4", - "request": "^2.87.0", - "rimraf": "2", - "semver": "~5.3.0", - "tar": "^4.4.8", - "which": "1" - }, - "dependencies": { - "nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "dev": true, - "requires": { - "abbrev": "1" - } - }, - "semver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", - "dev": true - } - } - }, - "node-pre-gyp": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz", - "integrity": "sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A==", - "optional": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "optional": true - } - } - }, - "node-red": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/node-red/-/node-red-1.0.2.tgz", - "integrity": "sha512-QSyPpAGGVFgVlKyumWFd8j2hd420+sh8DSxlvAtatDVaIG3+MaAD3eDLg49HIwRyAhiROVS1XNWkqyq/H1/cBA==", - "requires": { - "@node-red/editor-api": "1.0.2", - "@node-red/nodes": "1.0.2", - "@node-red/runtime": "1.0.2", - "@node-red/util": "1.0.2", - "basic-auth": "2.0.1", - "bcrypt": "3.0.6", - "bcryptjs": "2.4.3", - "express": "4.17.1", - "fs-extra": "8.1.0", - "node-red-node-rbe": "^0.2.5", - "node-red-node-tail": "^0.0.3", - "nopt": "4.0.1", - "semver": "6.3.0" - } - }, - "node-red-contrib-play-audio": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/node-red-contrib-play-audio/-/node-red-contrib-play-audio-2.3.2.tgz", - "integrity": "sha512-/IgV7Skw3NBXNJ2KFqE6wzLJtPrfqBy9nKka0fCofA26eG0RXv0vjS1IpYa3QgQZD9YFMVIcbC0a9HlFK/wY+Q==" - }, - "node-red-contrib-web-worldmap": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/node-red-contrib-web-worldmap/-/node-red-contrib-web-worldmap-2.1.3.tgz", - "integrity": "sha512-01v1kcDK0J4IS6ZKjE+QuQkYknP8XQ+UeVDS+xT17Z1oJ4ghjy4qHUzsmOArE/qZVADnyBPFxl2N34DkYla/CA==", - "requires": { - "cgi": "0.3.1", - "compression": "^1.7.4", - "express": "^4.16.4", - "sockjs": "^0.3.19" - } - }, - "node-red-dashboard": { - "version": "2.16.3", - "resolved": "https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.16.3.tgz", - "integrity": "sha512-b+9+YMZy22FE0kNGs4zVUAuRlzTjq5qpH47SoI6t1pmv1QO9thyXwxlIm5kx9DOe5/t8g8pIWBXbfEHFK7AmCw==", - "requires": { - "compression": "^1.7.4", - "serve-static": "^1.14.1", - "socket.io": "^2.2.0" - } - }, - "node-red-node-base64": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/node-red-node-base64/-/node-red-node-base64-0.1.3.tgz", - "integrity": "sha512-0KlJDMur9tfnHwC7anlM9gYPjCMLsGVjRuvWSQssdGDibxIgpZDJ/0IuHIM3CAcEPaetlk4P0yj0XtH9Rgda0w==" - }, - "node-red-node-geofence": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/node-red-node-geofence/-/node-red-node-geofence-0.1.2.tgz", - "integrity": "sha512-uAjTT54ZATPi7yDr/sztxcFCWGP1rtN3UIyI8uVG2QxagoG31xqzrc6EN1YbYrx2U10bHI//JJfXk3A0RiR+OQ==", - "requires": { - "geolib": "^2.0.0" - } - }, - "node-red-node-random": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/node-red-node-random/-/node-red-node-random-0.1.4.tgz", - "integrity": "sha512-UKgX5+6HgRagXcfpjeMn4vyB+QYQfhBFS8oXx0UBScqOveHWqpp2ASX8LIJWQ2uHHvRq+Nisa+mvv6AELXqbRw==" - }, - "node-red-node-rbe": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/node-red-node-rbe/-/node-red-node-rbe-0.2.5.tgz", - "integrity": "sha512-WPwIOZIdDprgfqOe8bEun47wkFFc+5Uw/1w3O/kZn/kS2IpI1q+wijUDK+Hw8q4d8KgA58B30wh+10UvXzsPDA==" - }, - "node-red-node-serialport": { - "version": "0.8.6", - "resolved": "https://registry.npmjs.org/node-red-node-serialport/-/node-red-node-serialport-0.8.6.tgz", - "integrity": "sha512-eX2x18XF9RWO81ztROdgzYgQ0ECac9JqX+xqYgUG1fJh9GcQhFCKfbvMCafWdU1zW+IEGUZTrCgY+qErLIU24g==", - "requires": { - "serialport": "^7.1.5" - } - }, - "node-red-node-smooth": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/node-red-node-smooth/-/node-red-node-smooth-0.1.2.tgz", - "integrity": "sha512-IpEOSOvz7UvkiOFQN4kIiv1Z6sxrRgbILG6IFR0CD/e1m0cK4iRsXpTi1Lofr+eiVQ0HaKXuZ2zIayPAIEFm0w==" - }, - "node-red-node-tail": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/node-red-node-tail/-/node-red-node-tail-0.0.3.tgz", - "integrity": "sha512-wEiT7bSeU9oVHPK7S+mHb3cR6cIf9l205wTiHzhnUAuoDJS+IdwQkkpFgKTYmkL4Py2LvqCU90h85YpQul7QFQ==", - "requires": { - "tail": "^2.0.2" - } - }, - "noop-logger": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", - "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=" - }, - "nopt": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", - "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", - "dev": true - } - } - }, - "npm-bundled": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.6.tgz", - "integrity": "sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g==", - "optional": true - }, - "npm-packlist": { - "version": "1.4.6", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.6.tgz", - "integrity": "sha512-u65uQdb+qwtGvEJh/DgQgW1Xg7sqeNbmxYyrvlNznaVTjV3E5P6F/EFjM+BVHXl7JJlsdG8A64M0XI8FI/IOlg==", - "optional": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", - "requires": { - "boolbase": "~1.0.0" - } - }, - "nugget": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nugget/-/nugget-2.0.1.tgz", - "integrity": "sha1-IBCVpIfhrTYIGzQy+jytpPjQcbA=", - "dev": true, - "requires": { - "debug": "^2.1.3", - "minimist": "^1.1.0", - "pretty-bytes": "^1.0.2", - "progress-stream": "^1.1.0", - "request": "^2.45.0", - "single-line-log": "^1.1.2", - "throttleit": "0.0.2" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" - }, - "oauth2orize": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/oauth2orize/-/oauth2orize-1.11.0.tgz", - "integrity": "sha1-eTzvJR1F696sMq5AqLaBT6qx1IM=", - "requires": { - "debug": "2.x.x", - "uid2": "0.0.x", - "utils-merge": "1.x.x" - } - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-component": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", - "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=" - }, - "object-keys": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", - "dev": true - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "requires": { - "ee-first": "1.1.1" - } - }, - "on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "ora": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", - "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-spinners": "^2.0.0", - "log-symbols": "^2.2.0", - "strip-ansi": "^5.2.0", - "wcwidth": "^1.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "ordered-read-streams": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", - "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", - "requires": { - "readable-stream": "^2.0.1" - } - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" - }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "p-limit": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", - "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "^1.2.0" - } - }, - "parseqs": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", - "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", - "requires": { - "better-assert": "~1.0.0" - } - }, - "parseuri": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", - "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", - "requires": { - "better-assert": "~1.0.0" - } - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, - "passport": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/passport/-/passport-0.4.0.tgz", - "integrity": "sha1-xQlWkTR71a07XhgCOMORTRbwWBE=", - "requires": { - "passport-strategy": "1.x.x", - "pause": "0.0.1" - } - }, - "passport-http-bearer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/passport-http-bearer/-/passport-http-bearer-1.0.1.tgz", - "integrity": "sha1-FHRp6jZp4qhMYWfvmdu3fh8AmKg=", - "requires": { - "passport-strategy": "1.x.x" - } - }, - "passport-oauth2-client-password": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/passport-oauth2-client-password/-/passport-oauth2-client-password-0.1.2.tgz", - "integrity": "sha1-TzeLZ4uS0W270jOmxwZSAJPlYbo=", - "requires": { - "passport-strategy": "1.x.x" - } - }, - "passport-strategy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz", - "integrity": "sha1-tVOaqPwiWj0a0XlHbd8ja0QPUuQ=" - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "pause": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz", - "integrity": "sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10=" - }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "dev": true - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, - "prebuild-install": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.0.tgz", - "integrity": "sha512-aaLVANlj4HgZweKttFNUVNRxDukytuIuxeK2boIMHjagNJCiVKWFsKF4tCE3ql3GbrD2tExPQ7/pwtEJcHNZeg==", - "requires": { - "detect-libc": "^1.0.3", - "expand-template": "^2.0.3", - "github-from-package": "0.0.0", - "minimist": "^1.2.0", - "mkdirp": "^0.5.1", - "napi-build-utils": "^1.0.1", - "node-abi": "^2.7.0", - "noop-logger": "^0.1.1", - "npmlog": "^4.0.1", - "os-homedir": "^1.0.1", - "pump": "^2.0.1", - "rc": "^1.2.7", - "simple-get": "^2.7.0", - "tar-fs": "^1.13.0", - "tunnel-agent": "^0.6.0", - "which-pm-runs": "^1.0.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - }, - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, - "pretty-bytes": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz", - "integrity": "sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=", - "dev": true, - "requires": { - "get-stdin": "^4.0.1", - "meow": "^3.1.0" - } - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "progress-stream": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/progress-stream/-/progress-stream-1.2.0.tgz", - "integrity": "sha1-LNPP6jO6OonJwSHsM0er6asSX3c=", - "dev": true, - "requires": { - "speedometer": "~0.1.2", - "through2": "~0.2.3" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - }, - "through2": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.2.3.tgz", - "integrity": "sha1-6zKE2k6jEbbMis42U3SKUqvyWj8=", - "dev": true, - "requires": { - "readable-stream": "~1.1.9", - "xtend": "~2.1.1" - } - }, - "xtend": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", - "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", - "dev": true, - "requires": { - "object-keys": "~0.4.0" - } - } - } - }, - "proxy-addr": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", - "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", - "requires": { - "forwarded": "~0.1.2", - "ipaddr.js": "1.9.0" - } - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" - }, - "psl": { - "version": "1.1.33", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.33.tgz", - "integrity": "sha512-LTDP2uSrsc7XCb5lO7A8BI1qYxRe/8EqlRvMeEl6rsnYAqDOl8xHR+8lSAIVfrNaSAlTPTNOCgNjWcoUL3AZsw==" - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "dev": true - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" - }, - "random-bytes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", - "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs=" - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" - }, - "raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", - "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - } - } - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "dev": true, - "requires": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" - } - }, - "regenerator-runtime": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", - "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==" - }, - "reinterval": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/reinterval/-/reinterval-1.1.0.tgz", - "integrity": "sha1-M2Hs+jymwYKDOA3Qu5VG85D17Oc=" - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" - }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, - "requires": { - "is-finite": "^1.0.0" - } - }, - "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" - } - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "resolve": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz", - "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==", - "dev": true, - "requires": { - "path-parse": "^1.0.6" - } - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dev": true, - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - } - }, - "retry": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.6.1.tgz", - "integrity": "sha1-/ckO7ZQ/3hG4k1VLjMY9DombqRg=" - }, - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "requires": { - "glob": "^7.1.3" - } - }, - "rxjs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz", - "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - }, - "send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", - "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "dependencies": { - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - } - } - }, - "serialport": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/serialport/-/serialport-7.1.5.tgz", - "integrity": "sha512-NplGdqaY+ZL8t3t5egbT+3oqLW4d7WvDT/x1ACxAyWa1fSnx+KTAmlDHeCls39lXwu8voaOr3bPOW4bwM7PdAA==", - "requires": { - "@serialport/binding-mock": "^2.0.5", - "@serialport/bindings": "^2.0.8", - "@serialport/parser-byte-length": "^2.0.2", - "@serialport/parser-cctalk": "^2.0.2", - "@serialport/parser-delimiter": "^2.0.2", - "@serialport/parser-readline": "^2.0.2", - "@serialport/parser-ready": "^2.0.2", - "@serialport/parser-regex": "^2.0.2", - "@serialport/stream": "^2.0.5", - "debug": "^4.1.1" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" - }, - "simple-concat": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", - "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=" - }, - "simple-get": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz", - "integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==", - "requires": { - "decompress-response": "^3.3.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "single-line-log": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/single-line-log/-/single-line-log-1.1.2.tgz", - "integrity": "sha1-wvg/Jzo+GhbtsJlWYdoO1e8DM2Q=", - "dev": true, - "requires": { - "string-width": "^1.0.1" - } - }, - "socket.io": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.3.0.tgz", - "integrity": "sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg==", - "requires": { - "debug": "~4.1.0", - "engine.io": "~3.4.0", - "has-binary2": "~1.0.2", - "socket.io-adapter": "~1.1.0", - "socket.io-client": "2.3.0", - "socket.io-parser": "~3.4.0" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "socket.io-adapter": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz", - "integrity": "sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs=" - }, - "socket.io-client": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.0.tgz", - "integrity": "sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA==", - "requires": { - "backo2": "1.0.2", - "base64-arraybuffer": "0.1.5", - "component-bind": "1.0.0", - "component-emitter": "1.2.1", - "debug": "~4.1.0", - "engine.io-client": "~3.4.0", - "has-binary2": "~1.0.2", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "object-component": "0.0.3", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "socket.io-parser": "~3.3.0", - "to-array": "0.1.4" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - }, - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "socket.io-parser": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.0.tgz", - "integrity": "sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==", - "requires": { - "component-emitter": "1.2.1", - "debug": "~3.1.0", - "isarray": "2.0.1" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - } - } - }, - "socket.io-parser": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.0.tgz", - "integrity": "sha512-/G/VOI+3DBp0+DJKW4KesGnQkQPFmUCbA/oO2QGT6CWxU7hLGWqU3tyuzeSK/dqcyeHsQg1vTe9jiZI8GU9SCQ==", - "requires": { - "component-emitter": "1.2.1", - "debug": "~4.1.0", - "isarray": "2.0.1" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - }, - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "sockjs": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz", - "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", - "requires": { - "faye-websocket": "^0.10.0", - "uuid": "^3.0.1" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "spawn-rx": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spawn-rx/-/spawn-rx-3.0.0.tgz", - "integrity": "sha512-dw4Ryg/KMNfkKa5ezAR5aZe9wNwPdKlnHEXtHOjVnyEDSPQyOpIPPRtcIiu7127SmtHhaCjw21yC43HliW0iIg==", - "dev": true, - "requires": { - "debug": "^2.5.1", - "lodash.assign": "^4.2.0", - "rxjs": "^6.3.1" - } - }, - "spdx-correct": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", - "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", - "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz", - "integrity": "sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA==", - "dev": true - }, - "speedometer": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/speedometer/-/speedometer-0.1.4.tgz", - "integrity": "sha1-mHbb0qFp0xFUAtSObqYynIgWpQ0=", - "dev": true - }, - "split2": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-2.2.0.tgz", - "integrity": "sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==", - "requires": { - "through2": "^2.0.2" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" - }, - "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" - }, - "stream-stack": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/stream-stack/-/stream-stack-1.1.4.tgz", - "integrity": "sha1-cIRgQrqwGFAI5Qnt/h93+TYcumk=" - }, - "streamsearch": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", - "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=" - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "^0.2.0" - } - }, - "strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "dev": true, - "requires": { - "get-stdin": "^4.0.1" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" - }, - "sumchecker": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-1.3.1.tgz", - "integrity": "sha1-ebs7RFbdBPGOvbwNcDodHa7FEF0=", - "dev": true, - "requires": { - "debug": "^2.2.0", - "es6-promise": "^4.0.5" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "tail": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tail/-/tail-2.0.3.tgz", - "integrity": "sha512-s9NOGkLqqiDEtBttQZI7acLS8ycYK5sTlDwNjGnpXG9c8AWj0cfAtwEIzo/hVRMMiC5EYz+bXaJWC1u1u0GPpQ==" - }, - "tar": { - "version": "4.4.10", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.10.tgz", - "integrity": "sha512-g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA==", - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.3.5", - "minizlib": "^1.2.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.3" - } - }, - "tar-fs": { - "version": "1.16.3", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-1.16.3.tgz", - "integrity": "sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw==", - "requires": { - "chownr": "^1.0.1", - "mkdirp": "^0.5.1", - "pump": "^1.0.0", - "tar-stream": "^1.1.2" - }, - "dependencies": { - "pump": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz", - "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, - "tar-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", - "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", - "requires": { - "bl": "^1.0.0", - "buffer-alloc": "^1.2.0", - "end-of-stream": "^1.0.0", - "fs-constants": "^1.0.0", - "readable-stream": "^2.3.0", - "to-buffer": "^1.1.1", - "xtend": "^4.0.0" - } - }, - "temp": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.3.tgz", - "integrity": "sha1-4Ma8TSa5AxJEEOT+2BEDAU38H1k=", - "dev": true, - "requires": { - "os-tmpdir": "^1.0.0", - "rimraf": "~2.2.6" - }, - "dependencies": { - "rimraf": { - "version": "2.2.8", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", - "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=", - "dev": true - } - } - }, - "throttleit": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz", - "integrity": "sha1-z+34jmDADdlpe2H90qg0OptoDq8=", - "dev": true - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "through2-filter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", - "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", - "requires": { - "through2": "~2.0.0", - "xtend": "~4.0.0" - } - }, - "to-absolute-glob": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", - "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", - "requires": { - "is-absolute": "^1.0.0", - "is-negated-glob": "^1.0.0" - } - }, - "to-array": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", - "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=" - }, - "to-buffer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", - "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==" - }, - "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" - }, - "touch": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/touch/-/touch-0.0.3.tgz", - "integrity": "sha1-Ua7z1ElXHU8oel2Hyci0kYGg2x0=", - "dev": true, - "requires": { - "nopt": "~1.0.10" - }, - "dependencies": { - "nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", - "dev": true, - "requires": { - "abbrev": "1" - } - } - } - }, - "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - } - } - }, - "traverse": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", - "integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=", - "dev": true - }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", - "dev": true - }, - "tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", - "dev": true - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, - "type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - }, - "uglify-js": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.0.tgz", - "integrity": "sha512-W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg==", - "requires": { - "commander": "~2.20.0", - "source-map": "~0.6.1" - } - }, - "uid-safe": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", - "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==", - "requires": { - "random-bytes": "~1.0.0" - } - }, - "uid2": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/uid2/-/uid2-0.0.3.tgz", - "integrity": "sha1-SDEm4Rd03y9xuLY53NeZw3YWK4I=" - }, - "ultron": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", - "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" - }, - "unc-path-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=" - }, - "unique-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", - "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", - "requires": { - "json-stable-stringify-without-jsonify": "^1.0.1", - "through2-filter": "^3.0.0" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "requires": { - "punycode": "^2.1.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" - }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", - "dev": true, - "requires": { - "defaults": "^1.0.3" - } - }, - "websocket-driver": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.3.tgz", - "integrity": "sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg==", - "requires": { - "http-parser-js": ">=0.4.0 <0.4.11", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - } - }, - "websocket-extensions": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", - "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==" - }, - "websocket-stream": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/websocket-stream/-/websocket-stream-5.5.0.tgz", - "integrity": "sha512-EXy/zXb9kNHI07TIMz1oIUIrPZxQRA8aeJ5XYg5ihV8K4kD1DuA+FY6R96HfdIHzlSzS8HiISAfrm+vVQkZBug==", - "requires": { - "duplexify": "^3.5.1", - "inherits": "^2.0.1", - "readable-stream": "^2.3.3", - "safe-buffer": "^5.1.2", - "ws": "^3.2.0", - "xtend": "^4.0.0" - }, - "dependencies": { - "ws": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", - "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", - "requires": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" - } - } - } - }, - "when": { - "version": "3.7.8", - "resolved": "https://registry.npmjs.org/when/-/when-3.7.8.tgz", - "integrity": "sha1-xxMLan6gRpPoQs3J56Hyqjmjn4I=" - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "which-pm-runs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", - "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=" - }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "ws": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", - "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", - "requires": { - "async-limiter": "~1.0.0" - } - }, - "xml2js": { - "version": "0.4.19", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", - "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", - "requires": { - "sax": ">=0.6.0", - "xmlbuilder": "~9.0.1" - } - }, - "xmlbuilder": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", - "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=" - }, - "xmlhttprequest-ssl": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", - "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=" - }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" - }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", - "dev": true - }, - "yallist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", - "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==" - }, - "yargs": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", - "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", - "dev": true, - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.1" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "yargs-parser": { - "version": "13.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", - "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - } - } - }, - "yauzl": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", - "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", - "dev": true, - "requires": { - "fd-slicer": "~1.0.1" - } - }, - "yeast": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", - "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=" - } - } -} diff --git a/package.json b/package.json index 428edc9..a959fdc 100644 --- a/package.json +++ b/package.json @@ -1,27 +1,14 @@ { "name": "electron_node_red", "version": "1.0.2", - "description": "Electron Node-RED application starter", + "description": "Electron Node-RED application starter kit for development", "main": "main.js", "scripts": { + "pack": "electron-builder --dir", + "dist": "electron-builder", + "postinstall": "electron-builder install-app-deps", "start": "electron main.js", - "test": "echo \" Warning: no test specified \"", - "watch": "nodemon --exec \"npm run start\" --ext js,css,json --ignore build/", - "clean": "rm -rf ./build ../electron-bin && mkdir -p ./build ../electron-bin", - "pack": "npm run clean && electron-packager . Node-RED --icon=nodered.icns --all --out=build --overwrite", - "pack:osx": "electron-packager . Node-RED --icon=nodered.icns --platform=darwin --arch=x64 --out=build --overwrite", - "pack:linux32": "electron-packager . Node-RED --icon=nodered.icns --platform=linux --arch=ia32 --out=build --overwrite && cp after*.sh build/Node-RED-linux-ia32/", - "pack:linux64": "electron-packager . Node-RED --icon=nodered.icns --platform=linux --arch=x64 --out=build --overwrite && cp after*.sh build/Node-RED-linux-x64", - "pack:win32": "electron-packager . Node-RED --icon=nodered.icns --platform=win32 --arch=ia32 --out=build --asar --overwrite --win32metadata.CompanyName='IBM Corp.' --win32metadata.ProductName='Node-RED Electron'", - "pack:win64": "electron-packager . Node-RED --icon=nodered.icns --platform=win32 --arch=x64 --out=build --asar --overwrite --win32metadata.CompanyName='IBM Corp.' --win32metadata.ProductName='Node-RED Electron'", - "pack:armv7l": "electron-packager . Node-RED --icon=nodered.icns --platform=linux --arch=armv7l --out=build --overwrite && cp afterinst.sh build/Node-RED-linux-armv7l", - "build": "npm run clean && npm run build:osx && npm run build:linux64 && npm run build:linux32", - "build:osx": "npm run pack:osx && appdmg appdmg.json ../electron-bin/Node-RED-Electron_$npm_package_version.dmg", - "build:linux32": "npm run pack:linux32 && fpm -s dir -t deb -f -n node-red-electron -v $npm_package_version -m conway@uk.ibm.com -a i386 -p ../electron-bin -C build/Node-RED-linux-ia32 --prefix=/opt/node-red --after-install=afterinst.sh --after-remove=afterremove.sh ./", - "build:linux64": "npm run pack:linux64 && fpm -s dir -t deb -f -n node-red-electron -v $npm_package_version -m conway@uk.ibm.com -a x86_64 -p ../electron-bin -C build/Node-RED-linux-x64 --prefix=/opt/node-red --after-install=afterinst.sh --after-remove=afterremove.sh ./", - "build:win32": "npm run pack:win32 && node makewin32.js", - "build:win64": "npm run pack:win64 && node makewin64.js", - "build:armv7l": "npm run pack:armv7l && fpm -s dir -t deb -f -n node-red-electron -v $npm_package_version -m conway@uk.ibm.com -a armv7l -p ../electron-bin -C build/Node-RED-linux-armv7l --prefix=/opt/node-red --after-install=afterinst.sh ./" + "test": "echo \" Warning: no test specified \"" }, "repository": { "type": "git", @@ -31,12 +18,11 @@ "express": "~4.17.1", "node-red": "1.0.2", "node-red-contrib-play-audio": "*", - "node-red-contrib-web-worldmap": "*", - "node-red-dashboard": "*", + "node-red-contrib-web-worldmap": "~2.1.4", + "node-red-dashboard": "~2.17.1", "node-red-node-base64": "*", "node-red-node-geofence": "*", "node-red-node-random": "*", - "node-red-node-serialport": "*", "node-red-node-smooth": "*" }, "keywords": [ @@ -44,23 +30,45 @@ "quick start", "node-red" ], - "contributors": [ - { - "name": "Dave Conway-Jones" - }, - { - "name": "Nathanaël Lécaudé" - } - ], + "author": { + "name": "Dave Conway-Jones", + "email": "dceejay@gmail.com" + }, "license": "Apache-2.0", "bugs": { "url": "https://github.com/dceejay/electron-node-red/issues" }, "homepage": "https://github.com/dceejay/electron-node-red#readme", "devDependencies": { - "electron": "~2.0.18", - "electron-rebuild": "~1.8.6", - "electron-squirrel-startup": "*", - "electron-winstaller": "2.5.2" + "electron": "~6.0.12", + "electron-builder": "^21.2.0", + "electron-create-menu": "^3.0.0" + }, + "build": { + "npmRebuild": false, + "appId": "com.electron.node-red", + "productName": "Node-RED", + "copyright": "Copyright © 2019 D.Conway-Jones", + "mac": { + "category": "public.app-category.developer-tools" + }, + "linux": { + "target": [ + "deb", + "rpm" + ], + "synopsis": "Node-RED Low Code development", + "category": "Development" + }, + "win": { + "target": [ + { + "target": "msi", + "arch": [ + "x64" + ] + } + ] + } } } From c9b3aae008f18fd864cb69e9e33a86e8cbf7d5d1 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Wed, 23 Oct 2019 23:46:16 +0100 Subject: [PATCH 036/127] update README and License to Apcahe-2 --- LICENSE | 176 +++++++++++++++++++++++++++++++++++++++++++++++++++++ LICENSE.md | 39 ------------ README.md | 101 ++++++++++++------------------ 3 files changed, 214 insertions(+), 102 deletions(-) create mode 100644 LICENSE delete mode 100644 LICENSE.md diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..d9a10c0 --- /dev/null +++ b/LICENSE @@ -0,0 +1,176 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS diff --git a/LICENSE.md b/LICENSE.md deleted file mode 100644 index b823bcc..0000000 --- a/LICENSE.md +++ /dev/null @@ -1,39 +0,0 @@ -CC0 1.0 Universal -================== - -Statement of Purpose ---------------------- - -The laws of most jurisdictions throughout the world automatically confer exclusive Copyright and Related Rights (defined below) upon the creator and subsequent owner(s) (each and all, an "owner") of an original work of authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the purpose of contributing to a commons of creative, cultural and scientific works ("Commons") that the public can reliably and without fear of later claims of infringement build upon, modify, incorporate in other works, reuse and redistribute as freely as possible in any form whatsoever and for any purposes, including without limitation commercial purposes. These owners may contribute to the Commons to promote the ideal of a free culture and the further production of creative, cultural and scientific works, or to gain reputation or greater distribution for their Work in part through the use and efforts of others. - -For these and/or other purposes and motivations, and without any expectation of additional consideration or compensation, the person associating CC0 with a Work (the "Affirmer"), to the extent that he or she is an owner of Copyright and Related Rights in the Work, voluntarily elects to apply CC0 to the Work and publicly distribute the Work under its terms, with knowledge of his or her Copyright and Related Rights in the Work and the meaning and intended legal effect of CC0 on those rights. - -1. Copyright and Related Rights. --------------------------------- -A Work made available under CC0 may be protected by copyright and related or neighboring rights ("Copyright and Related Rights"). Copyright and Related Rights include, but are not limited to, the following: - -i. the right to reproduce, adapt, distribute, perform, display, communicate, and translate a Work; -ii. moral rights retained by the original author(s) and/or performer(s); -iii. publicity and privacy rights pertaining to a person's image or likeness depicted in a Work; -iv. rights protecting against unfair competition in regards to a Work, subject to the limitations in paragraph 4(a), below; -v. rights protecting the extraction, dissemination, use and reuse of data in a Work; -vi. database rights (such as those arising under Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, and under any national implementation thereof, including any amended or successor version of such directive); and -vii. other similar, equivalent or corresponding rights throughout the world based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. ------------ -To the greatest extent permitted by, but not in contravention of, applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and unconditionally waives, abandons, and surrenders all of Affirmer's Copyright and Related Rights and associated claims and causes of action, whether now known or unknown (including existing as well as future claims and causes of action), in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each member of the public at large and to the detriment of Affirmer's heirs and successors, fully intending that such Waiver shall not be subject to revocation, rescission, cancellation, termination, or any other legal or equitable action to disrupt the quiet enjoyment of the Work by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. ----------------------------- -Should any part of the Waiver for any reason be judged legally invalid or ineffective under applicable law, then the Waiver shall be preserved to the maximum extent permitted taking into account Affirmer's express Statement of Purpose. In addition, to the extent the Waiver is so judged Affirmer hereby grants to each affected person a royalty-free, non transferable, non sublicensable, non exclusive, irrevocable and unconditional license to exercise Affirmer's Copyright and Related Rights in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "License"). The License shall be deemed effective as of the date CC0 was applied by Affirmer to the Work. Should any part of the License for any reason be judged legally invalid or ineffective under applicable law, such partial invalidity or ineffectiveness shall not invalidate the remainder of the License, and in such case Affirmer hereby affirms that he or she will not (i) exercise any of his or her remaining Copyright and Related Rights in the Work or (ii) assert any associated claims and causes of action with respect to the Work, in either case contrary to Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. --------------------------------- - -a. No trademark or patent rights held by Affirmer are waived, abandoned, surrendered, licensed or otherwise affected by this document. -b. Affirmer offers the Work as-is and makes no representations or warranties of any kind concerning the Work, express, implied, statutory or otherwise, including without limitation warranties of title, merchantability, fitness for a particular purpose, non infringement, or the absence of latent or other defects, accuracy, or the present or absence of errors, whether or not discoverable, all to the greatest extent permissible under applicable law. -c. Affirmer disclaims responsibility for clearing rights of other persons that may apply to the Work or any use thereof, including without limitation any person's Copyright and Related Rights in the Work. Further, Affirmer disclaims responsibility for obtaining any necessary consents, permissions or other rights required for any use of the Work. -d. Affirmer understands and acknowledges that Creative Commons is not a party to this document and has no duty or obligation with respect to this CC0 or use of the Work. diff --git a/README.md b/README.md index 1531470..8f190bc 100644 --- a/README.md +++ b/README.md @@ -1,90 +1,65 @@ # electron-node-red -This is an Electron template to embed Node-RED with a Dashboard generated by node-red-dashboard. +This is an Electron template to embed [Node-RED](https://nodered.org) with a Dashboard generated by node-red-dashboard to create a native application. -This is not intended to be a useful tool as-is, but as a base for you to create your own versions. You will need to edit the `main.js` to suit your application and update the `package.json` file to include your own required dependencies. +This is not intended to be a useful tool as-is, but as a base for you to create your own versions. You will need to edit the `main.js` to suit your application and update the `package.json` file to include your own required nodes and dependencies. -At the top of `main.js` are a couple of flags you can switch to turn off editing, allow loading of a different flow file (and save as), and adding the worldmap to the menu. Again these are only there to show you possibilities. Have fun. +At the top of `main.js` are a couple of flags you can switch to turn off editing, allow loading of a different flow file (and save as), and add the worldmap to the menu. Again these are only there to show you possibilities. Have fun. ## To Use -To clone and run this repository you'll need [Git](https://git-scm.com) and [Node.js](https://nodejs.org/en/download/) (which comes with [npm](http://npmjs.com)) installed on your computer. From your command line: +This project uses the **electron-builder** project to help build native versions +of Node-RED applications, so please read and become familiar with their [documentation](https://www.electron.build/) as some basic +knowledge is assumed. + +As a pre-req, as well as a recent version of node.js, you will need the yarn install tool ```bash # Clone this repository git clone https://github.com/dceejay/electron-node-red.git # Go into the repository cd electron-node-red -# Install dependencies and run the app -npm install && npm run clean && npm start +# Install the yarn install tool globally +sudo npm i -g yarn +# Install project dependencies +yarn ``` -## TL:DR - building runtimes - -On OSX you can run `./buildall` to build binaries of "everything"... maybe... - -Run `npm run pack` to create packages for all platforms - these are the files required to run, they are not binary installers. - -Builds are created in the `build` directory. Runtimes are created in the `../electron-bin` directory. - -**Note**: this was written to work on a Mac... other tools may/will be needed on other platforms. - -## Packaging your application - -If you want to distribute executables of this project, the easiest way is to use electron-packager: +## Building local runtime +You should then be able to run ``` -sudo npm install -g electron-packager - -# build for OSX 64 bits -electron-packager . Node-RED --icon=nodered.icns --platform=darwin --arch=x64 --out=build --overwrite - -# build for Windows 64 bits -electron-packager . Node-RED --icon=nodered.icns --platform=win32 --arch=x64 --out=build --asar=true --overwrite --win32metadata.CompanyName='IBM Corp.' --win32metadata.ProductName='Node-RED Electron' - -# build for Linux 64 bits -electron-packager . Node-RED --icon=nodered.icns --platform=linux --arch=x64 --out=build --overwrite +yarn && yarn dist ``` -Learn more about Electron and its API in the [documentation](http://electron.atom.io/docs/latest). - - -### To package as a dmg - -`npm run build:osx` - -look at `https://github.com/LinusU/node-appdmg` +to create a runtime for your local platform. +However - there may be some errors. If so they are usually fairly self explanatory, and may just require +installation of another npm or brew or apt package, then retry the command. - sudo npm install -g appdmg +Runtimes are created in the `dist` directory under `electron-node-red`. - appdmg appdmg.json ~/Desktop/NodeRED.dmg +### Building for other platforms +Generally you can just add the required parameter to the command +``` +yarn && yarn dist -w // for windows +yarn && yarn dist -l // for linux +yarn && yarn dist -m // for mac +``` -### To package as a deb - -`npm run build:linux64` or `npm run build:linux32` - for Intel Linux - -Look at `https://github.com/jordansissel/fpm` - - fpm -s dir -t deb -f -n node-red-electron -v 0.16.2 -m your-email@example.com -a i386 Node-RED-linux-ia32/ - fpm -s dir -t deb -f -n node-red-electron -v 0.16.2 -m your-email@example.com -a x86_64 Node-RED-linux-x64/ - -Use **sudo dpkg -i ...*** to install the correct deb for your architecture. - -Use `Node-RED` command to run. Flows are stored in `~/.node-red`. - - -### To package as an exe - -`npm run build:win32` - to build for 32-bit Windows. - -`npm run build:win64` - to build for 64-bit Windows. +These will generally fail the first time through and you will need to install some extra library in order to make it +complete successfully. -**Note**: This project was built to run on Mac OSX - To build for windows on other platforms you may need to use other tools. +The defaults are to build a `.msi` for Windows, a `.dmg` for Mac and both a `.deb` and `.rpm` for Linux. +These can be changed by editing the build section of the `package.json` file, see the +[electron-builder config docs](https://www.electron.build/configuration/configuration) for more info. +## Running localy -## License [CC0 (Public Domain)](LICENSE.md) +While developing and testing you can just run locally by running +``` +npm start +``` +from within the project folder. -## See also - - **Stand-alone Starter Project** - https://github.com/dceejay/node-red-project-starter - - **Bluemix Starter Project** - https://github.com/dceejay/node-red-bluemix-starter +--- \ No newline at end of file From 33762ca46bd2f208a36496ab40a19df9f4aeddc9 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Wed, 23 Oct 2019 23:52:15 +0100 Subject: [PATCH 037/127] remove old crud --- makewin32.js | 21 --------------------- makewin64.js | 21 --------------------- 2 files changed, 42 deletions(-) delete mode 100755 makewin32.js delete mode 100755 makewin64.js diff --git a/makewin32.js b/makewin32.js deleted file mode 100755 index b5f5db9..0000000 --- a/makewin32.js +++ /dev/null @@ -1,21 +0,0 @@ -#! /usr/bin/env node -var electronInstaller = require('electron-winstaller'); -var fs = require('fs'); - -if (fs.existsSync('build/Node-RED-win32-ia32')) { - console.log("Building setup app for Windows 32bit"); - resultPromise = electronInstaller.createWindowsInstaller({ - appDirectory: 'build/Node-RED-win32-ia32', - outputDirectory: '../electron-bin/', - authors: 'IBM Corp.', - exe: 'Node-RED.exe', - setupExe: 'Node-RED-Electron-ia32.exe', - setupIcon: 'nodered.ico', - loadingGif: 'loading.gif', - skipUpdateIcon: true - }); - resultPromise.then( - () => console.log("32bit build completed."), - (e) => console.log(`32bit build failed: ${e.message}`) - ); -} diff --git a/makewin64.js b/makewin64.js deleted file mode 100755 index ab2193d..0000000 --- a/makewin64.js +++ /dev/null @@ -1,21 +0,0 @@ -#! /usr/bin/env node -var electronInstaller = require('electron-winstaller'); -var fs = require('fs'); - -if (fs.existsSync('build/Node-RED-win32-x64')) { - console.log("Building setup app for Windows 64bit"); - resultPromise = electronInstaller.createWindowsInstaller({ - appDirectory: 'build/Node-RED-win32-x64', - outputDirectory: '../electron-bin/', - authors: 'IBM Corp.', - exe: 'Node-RED.exe', - setupExe: 'Node-RED-Electron-x64.exe', - setupIcon: 'nodered.ico', - loadingGif: 'loading.gif', - skipUpdateIcon: true - }); - resultPromise.then( - () => console.log("64bit build completed."), - (e) => console.log(`64bit build failed: ${e.message}`) - ); -} From 2245a3c579ada6a40dc3d3d7e73fbd55d121ce36 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Thu, 24 Oct 2019 00:00:08 +0100 Subject: [PATCH 038/127] slight tidy of main.js --- main.js | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/main.js b/main.js index 4ba40d9..4df8e2c 100755 --- a/main.js +++ b/main.js @@ -4,8 +4,9 @@ // Some settings you can edit easily const editable = true; // Set this to false to create a run only application - no editor/no console -const allowLoadSave = false; // set to true to allow omport and export of flow +const allowLoadSave = false; // set to true to allow import and export of flow file const showMap = false; // set to true to add Worldmap to the menu + let flowfile = 'electronflow.json'; // default Flows file name - loaded at start const urldash = "/ui/#/0"; // Start on the dashboard page const urledit = "/red"; // url for the editor page @@ -13,7 +14,7 @@ const urlconsole = "/console.htm"; // url for the console page const urlmap = "/worldmap"; // url for the worldmap const nrIcon = "nodered.png" // Icon for the app in root dir (usually 256x256) -// tcp port to use +// TCP port to use //const listenPort = "18880"; // fix it if you like const listenPort = parseInt(Math.random()*16383+49152) // or random ephemeral port @@ -93,17 +94,17 @@ let logBuffer = []; let logLength = 250; // No. of lines of console log to keep. const levels = [ "", "fatal", "error", "warn", "info", "debug", "trace" ]; -ipc.on('clearLogBuffer', function(event, arg) { logBuffer = []; }); +ipc.on('clearLogBuffer', function() { logBuffer = []; }); // Create the settings object - see default settings.js file for other options var settings = { - uiHost: "127.0.0.1", // only allow local connections - httpAdminRoot: "/red", // set to false to disable editor/deploy + uiHost: "127.0.0.1", // only allow local connections, remove if you want to allow external access + httpAdminRoot: "/red", // set to false to disable editor and deploy httpNodeRoot: "/", userDir: userdir, flowFile: flowfile, - editorTheme: { projects:{ enabled:false } }, - functionGlobalContext: { }, // enables global context + editorTheme: { projects:{ enabled:false } }, // enable projects feature + functionGlobalContext: { }, // enables global context - add extras ehre if you need them logging: { websock: { level: 'info', @@ -137,7 +138,7 @@ if (!editable) { // Initialise the runtime with a server and settings RED.init(server,settings); -// Serve the editor UI from /red +// Serve the editor UI from /red (if editable) if (settings.httpAdminRoot !== false) { red_app.use(settings.httpAdminRoot,RED.httpAdmin); } @@ -147,7 +148,7 @@ red_app.use(settings.httpNodeRoot,RED.httpNode); // Create the Application's main menu var template = []; -if (process.platform === 'darwin') { +if (process.platform === 'darwin') { // Mac has it's own first menu template.push( { label: app.getName(), submenu: [ @@ -164,6 +165,7 @@ if (process.platform === 'darwin') { ] } ) } +// Now add the main Node-RED menu template.push( { label: 'Node-RED', submenu: [ @@ -352,10 +354,6 @@ function createWindow() { //mainWindow.webContents.openDevTools(); } -app.on('orderFrontStandardAboutPanel', function() { - createConsole(); -}); - // Called when Electron has finished initialization and is ready to create browser windows. app.on('ready', createWindow ); From 7f914a8430cb7cced214f77d829f5d1db1341d1f Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Thu, 24 Oct 2019 09:38:26 +0100 Subject: [PATCH 039/127] Update README.md --- README.md | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 8f190bc..0e770e6 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ This project uses the **electron-builder** project to help build native versions of Node-RED applications, so please read and become familiar with their [documentation](https://www.electron.build/) as some basic knowledge is assumed. -As a pre-req, as well as a recent version of node.js, you will need the yarn install tool +As a pre-req, as well as a recent version of node.js, you will need the **yarn** install tool ```bash # Clone this repository @@ -33,10 +33,11 @@ yarn && yarn dist ``` to create a runtime for your local platform. -However - there may be some errors. If so they are usually fairly self explanatory, and may just require -installation of another npm or brew or apt package, then retry the command. +However - there may be some errors. If so they are usually fairly self explanatory, +and may just require installation of another npm or brew or apt package, +then retry the command. -Runtimes are created in the `dist` directory under `electron-node-red`. +Runtimes are created in the `dist` directory under the `electron-node-red` project. ### Building for other platforms @@ -54,7 +55,7 @@ The defaults are to build a `.msi` for Windows, a `.dmg` for Mac and both a `.de These can be changed by editing the build section of the `package.json` file, see the [electron-builder config docs](https://www.electron.build/configuration/configuration) for more info. -## Running localy +## Running locally While developing and testing you can just run locally by running ``` @@ -62,4 +63,9 @@ npm start ``` from within the project folder. +The initial flow file is named `electronflow.json` along with it's credentials file +`electronflow_cred.json`. Just copy your existing flow in instead. + +The default is to start on the dashboard page - as this intended to be just an application - without the Node-RED editor exposed to the end user. + --- \ No newline at end of file From 457537b15d573a5e24bcbf11c792f853966d0606 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Thu, 24 Oct 2019 14:30:24 +0100 Subject: [PATCH 040/127] Update README.md --- README.md | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 0e770e6..d898e72 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ This is not intended to be a useful tool as-is, but as a base for you to create At the top of `main.js` are a couple of flags you can switch to turn off editing, allow loading of a different flow file (and save as), and add the worldmap to the menu. Again these are only there to show you possibilities. Have fun. -## To Use +## Configuring the project for building This project uses the **electron-builder** project to help build native versions of Node-RED applications, so please read and become familiar with their [documentation](https://www.electron.build/) as some basic @@ -55,9 +55,14 @@ The defaults are to build a `.msi` for Windows, a `.dmg` for Mac and both a `.de These can be changed by editing the build section of the `package.json` file, see the [electron-builder config docs](https://www.electron.build/configuration/configuration) for more info. -## Running locally +## Building multi platform using Docker -While developing and testing you can just run locally by running +Electron-builder has a pre-configured Docker image that can help you build cross platform +images if you like Docker - again read [their docs](https://www.electron.build/multi-platform-build#build-electron-app-using-docker-on-a-local-machine). + +## Developing and Testing - Running locally + +While developing and testing you can just run your app locally by running ``` npm start ``` @@ -66,6 +71,7 @@ from within the project folder. The initial flow file is named `electronflow.json` along with it's credentials file `electronflow_cred.json`. Just copy your existing flow in instead. -The default is to start on the dashboard page - as this intended to be just an application - without the Node-RED editor exposed to the end user. +The default is to start on the dashboard page - as this is intended to be just an application - without the Node-RED editor exposed to the end user, but there are some simple flags to +to configure this at the top of `main.js`. --- \ No newline at end of file From 28f7c6fbff8e4a5a68c122f9a63f6565280c9d3e Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Sat, 26 Oct 2019 18:30:16 +0100 Subject: [PATCH 041/127] add kiosk mode (dangerous) --- .vscode/launch.json | 15 +++++++++++++++ README.md | 2 +- electronflow.json | 2 +- main.js | 16 +++++++++------- 4 files changed, 26 insertions(+), 9 deletions(-) create mode 100644 .vscode/launch.json diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..364397c --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,15 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "type": "node", + "request": "launch", + "name": "Electron Main", + "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron", + "program": "${workspaceFolder}/main.js" + } + ] +} \ No newline at end of file diff --git a/README.md b/README.md index d898e72..7c07c6f 100644 --- a/README.md +++ b/README.md @@ -51,7 +51,7 @@ yarn && yarn dist -m // for mac These will generally fail the first time through and you will need to install some extra library in order to make it complete successfully. -The defaults are to build a `.msi` for Windows, a `.dmg` for Mac and both a `.deb` and `.rpm` for Linux. +The defaults are to build a `.msi` for Windows, a `.dmg` for Mac, and both a `.deb` and `.rpm` for Linux. These can be changed by editing the build section of the `package.json` file, see the [electron-builder config docs](https://www.electron.build/configuration/configuration) for more info. diff --git a/electronflow.json b/electronflow.json index da70a7b..7e2201c 100644 --- a/electronflow.json +++ b/electronflow.json @@ -1 +1 @@ -[{"id":"41f61d2.fbe09e4","type":"tab","label":"Flow 1"},{"id":"52a903f3.ad56fc","type":"ui_tab","z":"41f61d2.fbe09e4","name":"Home","icon":"dashboard"},{"id":"30e652f.d9de3ae","type":"ui_group","z":"41f61d2.fbe09e4","name":"Panel 2","tab":"52a903f3.ad56fc","order":5,"disp":true,"width":"6"},{"id":"a8ecb9.c60f4348","type":"ui_group","z":"41f61d2.fbe09e4","name":"Introduction","tab":"52a903f3.ad56fc","order":1,"disp":false,"width":"4","collapse":false},{"id":"bbdf3e02.e8fee","type":"ui_group","z":"41f61d2.fbe09e4","name":"Panel 1","tab":"52a903f3.ad56fc","order":2,"disp":true,"width":"6"},{"id":"d9ba26fa.6d2b18","type":"ui_base","theme":{"name":"theme-light","lightTheme":{"default":"#0094CE","baseColor":"#8e0d17","baseFont":"Gill Sans,Geneva,sans-serif","edited":true,"reset":false},"darkTheme":{"default":"#097479","baseColor":"#097479","baseFont":"Helvetica Neue","edited":false},"customTheme":{"name":"Untitled Theme 1","default":"#4B7930","baseColor":"#4B7930","baseFont":"Helvetica Neue"},"themeState":{"base-color":{"default":"#0094CE","value":"#d80005","edited":true},"page-titlebar-backgroundColor":{"value":"#8e0d17","edited":false},"page-backgroundColor":{"value":"#fafafa","edited":false},"page-sidebar-backgroundColor":{"value":"#000000","edited":false},"group-textColor":{"value":"#d41322","edited":false},"group-borderColor":{"value":"#ffffff","edited":false},"group-backgroundColor":{"value":"#ffffff","edited":false},"widget-textColor":{"value":"#111111","edited":false},"widget-backgroundColor":{"value":"#8e0d17","edited":false},"widget-borderColor":{"value":"#ffffff","edited":false},"base-font":{"value":"Gill Sans,Geneva,sans-serif"}}},"site":{"name":"Node-RED Dashboard","hideToolbar":"false","allowSwipe":"false","dateFormat":"DD/MM/YYYY","sizes":{"sx":48,"sy":48,"gx":6,"gy":6,"cx":6,"cy":6,"px":0,"py":0}}},{"id":"87356b62.92e3d8","type":"ui_group","z":"","name":"Text to Speech","tab":"52a903f3.ad56fc","order":3,"disp":true,"width":"6"},{"id":"c75ad4f0.0cede8","type":"ui_group","z":"","name":"Map","tab":"52a903f3.ad56fc","order":4,"disp":true,"width":"6"},{"id":"189cf871.681118","type":"ui_template","z":"41f61d2.fbe09e4","group":"a8ecb9.c60f4348","name":"Welcome","order":1,"width":"4","height":"9","format":"

Welcome to the Node-RED Dashboard

\n

On the right you will see a graph and a gauge logging data from the sliders underneath.

\n

There is also an example of embedding a small map.

","storeOutMessages":false,"fwdInMessages":false,"templateScope":"local","x":93,"y":45,"wires":[[]]},{"id":"9f19ee5c.beaef","type":"ui_chart","z":"41f61d2.fbe09e4","name":"","group":"bbdf3e02.e8fee","order":1,"width":"0","height":"0","label":"","chartType":"line","xformat":"HH:mm:ss","interpolate":"basis","nodata":"No Data","dot":false,"ymin":"0","ymax":"100","removeOlder":1,"removeOlderPoints":"","removeOlderUnit":"60","cutout":"","colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"outputs":2,"x":270,"y":200,"wires":[[],[]]},{"id":"799d9318.fd385c","type":"ui_gauge","z":"41f61d2.fbe09e4","name":"","group":"30e652f.d9de3ae","order":2,"width":"","height":"","gtype":"gage","title":"Title","label":"gauge","format":"{{value}}","min":0,"max":"100","colors":["#00b500","#e6e600","#ca3838"],"x":270,"y":140,"wires":[]},{"id":"6f18b200.666a4","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"87356b62.92e3d8","order":2,"width":0,"height":0,"label":"press to talk","color":"","bgcolor":"","icon":"fa-volume-up","payload":"Hello to Jason Isaacs","payloadType":"str","topic":"","x":110,"y":320,"wires":[["f897d7c2.467a58"]]},{"id":"f897d7c2.467a58","type":"ui_audio","z":"41f61d2.fbe09e4","name":"","group":"30e652f.d9de3ae","voice":"0","x":300,"y":320,"wires":[]},{"id":"da0f7e67.0d38a","type":"ui_slider","z":"41f61d2.fbe09e4","name":"","label":"slider","group":"30e652f.d9de3ae","order":4,"width":0,"height":0,"passthru":true,"topic":"","min":0,"max":"100","step":1,"x":90,"y":140,"wires":[["799d9318.fd385c","219da65f.e0b0da"]]},{"id":"eabf2bd7.f4e0c8","type":"ui_slider","z":"41f61d2.fbe09e4","name":"","label":"slider","group":"bbdf3e02.e8fee","order":4,"width":0,"height":0,"passthru":true,"topic":"","min":0,"max":"100","step":1,"x":130,"y":200,"wires":[["9f19ee5c.beaef","ccee40e3.c1618"]]},{"id":"45508d88.744a54","type":"function","z":"41f61d2.fbe09e4","name":"","func":"// create random position\nvar lat = 51 + Math.random() * 0.2;\nvar lon = -1.45 + Math.random() * 0.2;\nmsg.payload={lat:lat, lon:lon, name:\"Jason\", icon:\"male\", url:\"IBM link\"};\nreturn msg;","outputs":1,"noerr":0,"x":290,"y":400,"wires":[["f76b15b1.dd27a8"]]},{"id":"6ca8cfc2.e0bce","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"c75ad4f0.0cede8","order":1,"width":0,"height":0,"passthru":false,"label":"Where's Jason ?","color":"","bgcolor":"#910000","icon":"fa-male","payload":"","payloadType":"str","topic":"","x":110,"y":400,"wires":[["45508d88.744a54"]]},{"id":"219da65f.e0b0da","type":"debug","z":"41f61d2.fbe09e4","name":"","active":true,"tosidebar":true,"console":true,"tostatus":false,"complete":"payload","x":300,"y":100,"wires":[]},{"id":"ccee40e3.c1618","type":"debug","z":"41f61d2.fbe09e4","name":"","active":true,"tosidebar":true,"console":true,"tostatus":false,"complete":"payload","targetType":"msg","x":300,"y":260,"wires":[]},{"id":"1c597308.3cfc0d","type":"worldmap in","z":"41f61d2.fbe09e4","name":"worldmap in","path":"","events":"","x":110,"y":480,"wires":[["7d6cb82c.3f3ea8"]]},{"id":"7d6cb82c.3f3ea8","type":"debug","z":"41f61d2.fbe09e4","name":"","active":true,"tosidebar":false,"console":true,"tostatus":false,"complete":"payload","x":350,"y":480,"wires":[]},{"id":"762cecef.af00d4","type":"inject","z":"41f61d2.fbe09e4","name":"","topic":"","payload":"26","payloadType":"num","repeat":"","crontab":"","once":true,"onceDelay":"2","x":90,"y":260,"wires":[["eabf2bd7.f4e0c8"]]},{"id":"f76b15b1.dd27a8","type":"ui_worldmap","z":"41f61d2.fbe09e4","group":"c75ad4f0.0cede8","order":1,"width":"6","height":"7","name":"","lat":"","lon":"","zoom":"","layer":"","cluster":"","maxage":"","usermenu":"hide","layers":"hide","panit":"false","panlock":"false","zoomlock":"false","hiderightclick":"true","coords":"none","showgrid":"false","path":"/worldmap","x":440,"y":400,"wires":[]}] \ No newline at end of file +[{"id":"41f61d2.fbe09e4","type":"tab","label":"Flow 1"},{"id":"52a903f3.ad56fc","type":"ui_tab","z":"41f61d2.fbe09e4","name":"Home","icon":"dashboard"},{"id":"30e652f.d9de3ae","type":"ui_group","z":"41f61d2.fbe09e4","name":"Panel 2","tab":"52a903f3.ad56fc","order":5,"disp":true,"width":"6"},{"id":"a8ecb9.c60f4348","type":"ui_group","z":"41f61d2.fbe09e4","name":"Introduction","tab":"52a903f3.ad56fc","order":1,"disp":false,"width":"4","collapse":false},{"id":"bbdf3e02.e8fee","type":"ui_group","z":"41f61d2.fbe09e4","name":"Panel 1","tab":"52a903f3.ad56fc","order":2,"disp":true,"width":"6"},{"id":"d9ba26fa.6d2b18","type":"ui_base","theme":{"name":"theme-light","lightTheme":{"default":"#0094CE","baseColor":"#8e0d17","baseFont":"Gill Sans,Geneva,sans-serif","edited":true,"reset":false},"darkTheme":{"default":"#097479","baseColor":"#097479","baseFont":"Helvetica Neue","edited":false},"customTheme":{"name":"Untitled Theme 1","default":"#4B7930","baseColor":"#4B7930","baseFont":"Helvetica Neue"},"themeState":{"base-color":{"default":"#0094CE","value":"#d80005","edited":true},"page-titlebar-backgroundColor":{"value":"#8e0d17","edited":false},"page-backgroundColor":{"value":"#fafafa","edited":false},"page-sidebar-backgroundColor":{"value":"#000000","edited":false},"group-textColor":{"value":"#d41322","edited":false},"group-borderColor":{"value":"#ffffff","edited":false},"group-backgroundColor":{"value":"#ffffff","edited":false},"widget-textColor":{"value":"#111111","edited":false},"widget-backgroundColor":{"value":"#8e0d17","edited":false},"widget-borderColor":{"value":"#ffffff","edited":false},"base-font":{"value":"Gill Sans,Geneva,sans-serif"}}},"site":{"name":"Node-RED Dashboard","hideToolbar":"false","allowSwipe":"false","dateFormat":"DD/MM/YYYY","sizes":{"sx":48,"sy":48,"gx":6,"gy":6,"cx":6,"cy":6,"px":0,"py":0}}},{"id":"87356b62.92e3d8","type":"ui_group","z":"","name":"Text to Speech","tab":"52a903f3.ad56fc","order":3,"disp":true,"width":"6"},{"id":"c75ad4f0.0cede8","type":"ui_group","z":"","name":"Map","tab":"52a903f3.ad56fc","order":4,"disp":true,"width":"6"},{"id":"189cf871.681118","type":"ui_template","z":"41f61d2.fbe09e4","group":"a8ecb9.c60f4348","name":"Welcome","order":1,"width":"4","height":"9","format":"

Welcome to the Node-RED Dashboard

\n

On the right you will see a graph and a gauge logging data from the sliders underneath.

\n

There is also an example of embedding a small map.

","storeOutMessages":false,"fwdInMessages":false,"templateScope":"local","x":93,"y":45,"wires":[[]]},{"id":"9f19ee5c.beaef","type":"ui_chart","z":"41f61d2.fbe09e4","name":"","group":"bbdf3e02.e8fee","order":1,"width":"0","height":"0","label":"","chartType":"line","xformat":"HH:mm:ss","interpolate":"basis","nodata":"No Data","dot":false,"ymin":"0","ymax":"100","removeOlder":1,"removeOlderPoints":"","removeOlderUnit":"60","cutout":"","colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"outputs":2,"x":270,"y":200,"wires":[[],[]]},{"id":"799d9318.fd385c","type":"ui_gauge","z":"41f61d2.fbe09e4","name":"","group":"30e652f.d9de3ae","order":2,"width":"","height":"","gtype":"gage","title":"Title","label":"gauge","format":"{{value}}","min":0,"max":"100","colors":["#00b500","#e6e600","#ca3838"],"x":270,"y":140,"wires":[]},{"id":"6f18b200.666a4","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"87356b62.92e3d8","order":2,"width":0,"height":0,"label":"press to talk","color":"","bgcolor":"","icon":"fa-volume-up","payload":"Hello to Jason Isaacs","payloadType":"str","topic":"","x":110,"y":320,"wires":[["f897d7c2.467a58"]]},{"id":"f897d7c2.467a58","type":"ui_audio","z":"41f61d2.fbe09e4","name":"","group":"30e652f.d9de3ae","voice":"0","x":300,"y":320,"wires":[]},{"id":"da0f7e67.0d38a","type":"ui_slider","z":"41f61d2.fbe09e4","name":"","label":"slider","group":"30e652f.d9de3ae","order":4,"width":0,"height":0,"passthru":true,"topic":"","min":0,"max":"100","step":1,"x":90,"y":140,"wires":[["799d9318.fd385c","219da65f.e0b0da"]]},{"id":"eabf2bd7.f4e0c8","type":"ui_slider","z":"41f61d2.fbe09e4","name":"","label":"slider","group":"bbdf3e02.e8fee","order":4,"width":0,"height":0,"passthru":true,"topic":"","min":0,"max":"100","step":1,"x":130,"y":200,"wires":[["9f19ee5c.beaef","ccee40e3.c1618"]]},{"id":"45508d88.744a54","type":"function","z":"41f61d2.fbe09e4","name":"","func":"// create random position\nvar lat = 51 + Math.random() * 0.2;\nvar lon = -1.45 + Math.random() * 0.2;\nmsg.payload={lat:lat, lon:lon, name:\"Jason\", icon:\"male\", url:\"IBM link\"};\nreturn msg;","outputs":1,"noerr":0,"x":290,"y":400,"wires":[["f76b15b1.dd27a8"]]},{"id":"6ca8cfc2.e0bce","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"c75ad4f0.0cede8","order":1,"width":0,"height":0,"passthru":false,"label":"Where's Jason ?","color":"","bgcolor":"#910000","icon":"fa-male","payload":"","payloadType":"str","topic":"","x":110,"y":400,"wires":[["45508d88.744a54"]]},{"id":"219da65f.e0b0da","type":"debug","z":"41f61d2.fbe09e4","name":"","active":true,"tosidebar":true,"console":true,"tostatus":false,"complete":"payload","x":300,"y":100,"wires":[]},{"id":"ccee40e3.c1618","type":"debug","z":"41f61d2.fbe09e4","name":"","active":true,"tosidebar":true,"console":true,"tostatus":false,"complete":"payload","targetType":"msg","x":300,"y":260,"wires":[]},{"id":"1c597308.3cfc0d","type":"worldmap in","z":"41f61d2.fbe09e4","name":"worldmap in","path":"","events":"","x":110,"y":480,"wires":[["7d6cb82c.3f3ea8"]]},{"id":"7d6cb82c.3f3ea8","type":"debug","z":"41f61d2.fbe09e4","name":"","active":true,"tosidebar":false,"console":true,"tostatus":false,"complete":"payload","x":350,"y":480,"wires":[]},{"id":"762cecef.af00d4","type":"inject","z":"41f61d2.fbe09e4","name":"","topic":"","payload":"26","payloadType":"num","repeat":"","crontab":"","once":true,"onceDelay":"2","x":90,"y":260,"wires":[["eabf2bd7.f4e0c8"]]},{"id":"f76b15b1.dd27a8","type":"ui_worldmap","z":"41f61d2.fbe09e4","group":"c75ad4f0.0cede8","order":1,"width":"6","height":"7","name":"","lat":"51.17","lon":"-1.4","zoom":"","layer":"","cluster":"","maxage":"","usermenu":"hide","layers":"hide","panit":"false","panlock":"false","zoomlock":"false","hiderightclick":"true","coords":"none","showgrid":"false","path":"/worldmap","x":440,"y":400,"wires":[]}] \ No newline at end of file diff --git a/main.js b/main.js index 4df8e2c..e3b27cc 100755 --- a/main.js +++ b/main.js @@ -6,6 +6,7 @@ const editable = true; // Set this to false to create a run only application - no editor/no console const allowLoadSave = false; // set to true to allow import and export of flow file const showMap = false; // set to true to add Worldmap to the menu +const kioskMode = false; // set to true to start in kiosk mode let flowfile = 'electronflow.json'; // default Flows file name - loaded at start const urldash = "/ui/#/0"; // Start on the dashboard page @@ -215,9 +216,11 @@ if (process.platform !== 'darwin') { template[tempNum].submenu.push({ type: "separator" }); template[tempNum].submenu.push({ role: 'togglefullscreen' }); template[tempNum].submenu.push({ role: 'quit' }); + if (!showMap) { template[tempNum].submenu.splice(8,1); } +} +else { + if (!showMap) { template[tempNum].submenu.splice(6,1); } } - -if (!showMap) { template[tempNum].submenu.splice(8,1); } if (!editable) { template[tempNum].submenu.splice(3,1); @@ -251,8 +254,7 @@ function saveFlow() { function openFlow() { dialog.showOpenDialog({ filters:[{ name:'JSON', extensions:['json']} ]}, function (fileNames) { - if (fileNames) { - //console.log(fileNames[0]); + if (fileNames && fileNames.length > 0) { fs.readFile(fileNames[0], 'utf-8', function (err, data) { try { var flo = JSON.parse(data); @@ -305,11 +307,11 @@ function createConsole() { function createWindow() { mainWindow = new BrowserWindow({ title: "Node-RED", - //titleBarStyle: "hidden", width: 1024, height: 768, icon: path.join(__dirname, nrIcon), fullscreenable: true, + kiosk: kioskMode, autoHideMenuBar: true, webPreferences: { nodeIntegration: false @@ -327,8 +329,8 @@ function createWindow() { } }); - // mainWindow.webContents.on('did-finish-load', () => { - // console.log("LOADED DASHBOARD"); + // mainWindow.webContents.on('did-finish-load', (a) => { + // console.log("FINISHED LOAD",a); // }); mainWindow.webContents.on("new-window", function(e, url, frameName, disposition, options) { From 980b770e5e8960b409cd446e2902d919f3cb99b8 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Sat, 26 Oct 2019 19:49:22 +0100 Subject: [PATCH 042/127] Update main.js --- main.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/main.js b/main.js index e3b27cc..01fac5c 100755 --- a/main.js +++ b/main.js @@ -99,7 +99,7 @@ ipc.on('clearLogBuffer', function() { logBuffer = []; }); // Create the settings object - see default settings.js file for other options var settings = { - uiHost: "127.0.0.1", // only allow local connections, remove if you want to allow external access + uiHost: "localhost", // only allow local connections, remove if you want to allow external access httpAdminRoot: "/red", // set to false to disable editor and deploy httpNodeRoot: "/", userDir: userdir, @@ -371,13 +371,13 @@ app.on('activate', function() { // dock icon is clicked and there are no other windows open. if (mainWindow === null) { createWindow(); - mainWindow.loadURL("http://127.0.0.1:"+listenPort+urldash); + mainWindow.loadURL("http://localhost:"+listenPort+urldash); } }); // Start the Node-RED runtime, then load the inital dashboard page RED.start().then(function() { - server.listen(listenPort,"127.0.0.1",function() { - mainWindow.loadURL("http://127.0.0.1:"+listenPort+urldash); + server.listen(listenPort,"localhost",function() { + mainWindow.loadURL("http://localhost:"+listenPort+urldash); }); }); \ No newline at end of file From 138456ed63d29227b9b565d9b1acfed04b356364 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Sat, 26 Oct 2019 21:50:41 +0100 Subject: [PATCH 043/127] Update main.js --- main.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/main.js b/main.js index 01fac5c..a0f56a3 100755 --- a/main.js +++ b/main.js @@ -336,13 +336,12 @@ function createWindow() { mainWindow.webContents.on("new-window", function(e, url, frameName, disposition, options) { // if a child window opens... modify any other options such as width/height, etc // in this case make the child overlap the parent exactly... + //console.log("NEW WINDOW",url); var w = mainWindow.getBounds(); options.x = w.x; options.y = w.y; options.width = w.width; options.height = w.height; - //re-use the same child name so all "2nd" windows use the same one. - //frameName = "child"; }) mainWindow.on('closed', () => { From 234fa89c2463c716a332d033c1bf10877d7fc878 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Sun, 27 Oct 2019 10:46:03 +0000 Subject: [PATCH 044/127] Fix menus again --- build/background.png | Bin 76934 -> 0 bytes main.js | 133 +++++++++++++++++++------------------------ package.json | 11 ++-- 3 files changed, 62 insertions(+), 82 deletions(-) delete mode 100644 build/background.png diff --git a/build/background.png b/build/background.png deleted file mode 100644 index 6063be144fd49ba36bda02f5ca5dd0c6aa7f99bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 76934 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 VS0lwjYXbp)>MB}~F-jI8{{z8p(=Px3 diff --git a/main.js b/main.js index a0f56a3..bb49e8e 100755 --- a/main.js +++ b/main.js @@ -148,86 +148,67 @@ if (settings.httpAdminRoot !== false) { red_app.use(settings.httpNodeRoot,RED.httpNode); // Create the Application's main menu -var template = []; -if (process.platform === 'darwin') { // Mac has it's own first menu - template.push( { - label: app.getName(), - submenu: [ - { type: 'separator' }, - { type: 'separator' }, - { role: 'about' }, - { type: 'separator' }, - { role: 'hide' }, - { role: 'hideothers' }, - { role: 'unhide' }, - { type: 'separator' }, - { role: 'togglefullscreen' }, - { role: 'quit' } - ] - } ) -} -// Now add the main Node-RED menu -template.push( - { label: 'Node-RED', - submenu: [ - { label: 'Import Flow', - accelerator: "Shift+CmdOrCtrl+O", - click() { openFlow(); } - }, - { label: 'Save Flow As', - accelerator: "Shift+CmdOrCtrl+S", - click() { saveFlow(); } - }, - { type: 'separator' }, - { label: 'Console', - accelerator: "Shift+CmdOrCtrl+C", - click() { createConsole(); } - }, - { label: 'Dashboard', - accelerator: "Shift+CmdOrCtrl+D", - click() { mainWindow.loadURL("http://localhost:"+listenPort+urldash); } - }, - { label: 'Editor', - accelerator: "Shift+CmdOrCtrl+E", - click() { mainWindow.loadURL("http://localhost:"+listenPort+urledit); } - }, - { label: 'Worldmap', - accelerator: "Shift+CmdOrCtrl+M", - click() { mainWindow.loadURL("http://localhost:"+listenPort+urlmap); } - }, - { type: 'separator' }, - { type: 'separator' }, - { label: 'Documentation', - click() { electron.shell.openExternal('https://nodered.org/docs') } - }, - { label: 'Flows and Nodes', - click() { electron.shell.openExternal('https://flows.nodered.org') } - }, - { label: 'Discourse Forum', - click() { electron.shell.openExternal('https://discourse.nodered.org/') } - } - ] - } -); - -var tempNum = template.length - 1; -// Add quit and toggle full screen to this menu if not on Mac -if (process.platform !== 'darwin') { - template[tempNum].submenu.push({ type: "separator" }); - template[tempNum].submenu.push({ role: 'togglefullscreen' }); - template[tempNum].submenu.push({ role: 'quit' }); - if (!showMap) { template[tempNum].submenu.splice(8,1); } -} -else { - if (!showMap) { template[tempNum].submenu.splice(6,1); } -} +var template = [{ + label: 'Node-RED', + submenu: [ + { label: 'Import Flow', + accelerator: "Shift+CmdOrCtrl+O", + click() { openFlow(); } + }, + { label: 'Save Flow As', + accelerator: "Shift+CmdOrCtrl+S", + click() { saveFlow(); } + }, + { type: 'separator' }, + { label: 'Console', + accelerator: "Shift+CmdOrCtrl+C", + click() { createConsole(); } + }, + { label: 'Dashboard', + accelerator: "Shift+CmdOrCtrl+D", + click() { mainWindow.loadURL("http://localhost:"+listenPort+urldash); } + }, + { label: 'Editor', + accelerator: "Shift+CmdOrCtrl+E", + click() { mainWindow.loadURL("http://localhost:"+listenPort+urledit); } + }, + { label: 'Worldmap', + accelerator: "Shift+CmdOrCtrl+M", + click() { mainWindow.loadURL("http://localhost:"+listenPort+urlmap); } + }, + { type: 'separator' }, + { type: 'separator' }, + { label: 'Documentation', + click() { electron.shell.openExternal('https://nodered.org/docs') } + }, + { label: 'Flows and Nodes', + click() { electron.shell.openExternal('https://flows.nodered.org') } + }, + { label: 'Discourse Forum', + click() { electron.shell.openExternal('https://discourse.nodered.org/') } + }, + { type: 'separator' }, + { role: 'togglefullscreen' }, + { role: 'quit' } + ] +}]; + +if (!showMap) { template[0].submenu.splice(6,1); } if (!editable) { - template[tempNum].submenu.splice(3,1); - template[tempNum].submenu.splice(4,1); + template[0].submenu.splice(3,1); + template[0].submenu.splice(4,1); } -if (!allowLoadSave) { template[tempNum].submenu.splice(0,2); } +if (!allowLoadSave) { template[0].submenu.splice(0,2); } + +// Top and tail menu on Mac +if (process.platform === 'darwin') { + template[0].submenu.unshift({ type: 'separator' }); + template[0].submenu.unshift({ role: 'about' }); + template[0].submenu.unshift({ type: 'separator' }); + template[0].submenu.unshift({ type: 'separator' }); +} let fileName = ""; function saveFlow() { diff --git a/package.json b/package.json index a959fdc..20d56ee 100644 --- a/package.json +++ b/package.json @@ -15,11 +15,11 @@ "url": "git+https://github.com/dceejay/electron-node-red.git" }, "dependencies": { - "express": "~4.17.1", + "express": "^4.17.1", "node-red": "1.0.2", "node-red-contrib-play-audio": "*", - "node-red-contrib-web-worldmap": "~2.1.4", - "node-red-dashboard": "~2.17.1", + "node-red-contrib-web-worldmap": "*", + "node-red-dashboard": "^2.17.1", "node-red-node-base64": "*", "node-red-node-geofence": "*", "node-red-node-random": "*", @@ -40,9 +40,8 @@ }, "homepage": "https://github.com/dceejay/electron-node-red#readme", "devDependencies": { - "electron": "~6.0.12", - "electron-builder": "^21.2.0", - "electron-create-menu": "^3.0.0" + "electron": "^7.0.0", + "electron-builder": "^21.2.0" }, "build": { "npmRebuild": false, From 4192130a8607284642c26d25f7863762fe45e493 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Sun, 27 Oct 2019 21:58:54 +0000 Subject: [PATCH 045/127] Update README.md --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 7c07c6f..296e180 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,6 @@ -# electron-node-red +# Electron Node-RED + +[![GitHub version](https://badge.fury.io/gh/dceejay%2Felectron-node-red.svg)](https://badge.fury.io/gh/dceejay%2Felectron-node-red) This is an Electron template to embed [Node-RED](https://nodered.org) with a Dashboard generated by node-red-dashboard to create a native application. @@ -60,6 +62,8 @@ These can be changed by editing the build section of the `package.json` file, se Electron-builder has a pre-configured Docker image that can help you build cross platform images if you like Docker - again read [their docs](https://www.electron.build/multi-platform-build#build-electron-app-using-docker-on-a-local-machine). +This is very useful if you need to build for Windows on a Mac as the electron-builder invokes wine which is only 32-bit and so can't be run under Catalina. + ## Developing and Testing - Running locally While developing and testing you can just run your app locally by running From c6b9abc2681b6b8f38955c8f4cd257909a6b88fe Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Tue, 29 Oct 2019 14:55:00 +0000 Subject: [PATCH 046/127] update gitignore - remove package-lock.json --- .gitignore | 2 +- README.md | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 1f4a224..5eaa755 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,7 @@ dist/* lib/* - +package-lock.json node_modules .config.json .flows.json.backup diff --git a/README.md b/README.md index 296e180..592e4ba 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ # Electron Node-RED [![GitHub version](https://badge.fury.io/gh/dceejay%2Felectron-node-red.svg)](https://badge.fury.io/gh/dceejay%2Felectron-node-red) +[![GitHub license](https://github.com/dceejay/electron-node-red/blob/master/LICENSE)](https://img.shields.io/github/license/dceejay/electron-node-red.svg) This is an Electron template to embed [Node-RED](https://nodered.org) with a Dashboard generated by node-red-dashboard to create a native application. From ac485971aa85369afda8b9f77ef8f21855c71b48 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Sun, 3 Nov 2019 17:13:44 +0000 Subject: [PATCH 047/127] bump electron version --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 20d56ee..ae60d26 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "node-red": "1.0.2", "node-red-contrib-play-audio": "*", "node-red-contrib-web-worldmap": "*", - "node-red-dashboard": "^2.17.1", + "node-red-dashboard": "*", "node-red-node-base64": "*", "node-red-node-geofence": "*", "node-red-node-random": "*", @@ -40,7 +40,7 @@ }, "homepage": "https://github.com/dceejay/electron-node-red#readme", "devDependencies": { - "electron": "^7.0.0", + "electron": "^7.0.1", "electron-builder": "^21.2.0" }, "build": { From 0c34fe6d6d6fcb72393d5580487e839a7784e61e Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Sun, 3 Nov 2019 22:05:34 +0000 Subject: [PATCH 048/127] Update .travis.yml --- .travis.yml | 69 ++++++++++++++++++++++++++++++----------------------- 1 file changed, 39 insertions(+), 30 deletions(-) diff --git a/.travis.yml b/.travis.yml index 5c152d9..1cd61c3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,30 +1,39 @@ -# Use OSX as env to build in - language: objective-c - cache: - directories: - - node_modules - env: - # Node in order to install it by running the command individually, here to specify the version - #- NODE_VERSION="4.6" - before_install: - # Install brew -> wine and makensis - - brew update - - brew install libusb - - brew install wine - - wine --version - - brew install makensis - # Install the nvm. Nvm is not included by default in OS X environment of Travis - - git clone https://github.com/creationix/nvm.git /tmp/.nvm - - source /tmp/.nvm/nvm.sh - - nvm install 4.6 - - nvm use --delete-prefix 4.6 - - node --version - - npm -v - - npm install -g electron-packager - - npm install -g appdmg - install: - - npm install - script: - - npm run build - #deploy: - # skip_cleanup: true +matrix: + include: + - os: osx + osx_image: xcode10.2 + language: node_js + node_js: "12" + env: + - ELECTRON_CACHE=$HOME/.cache/electron + - ELECTRON_BUILDER_CACHE=$HOME/.cache/electron-builder + + - os: linux + services: docker + language: generic + +cache: + directories: + - node_modules + - $HOME/.cache/electron + - $HOME/.cache/electron-builder + +script: + - | + if [ "$TRAVIS_OS_NAME" == "linux" ]; then + docker run --rm \ + --env-file <(env | grep -iE 'DEBUG|NODE_|ELECTRON_|YARN_|NPM_|CI|CIRCLE|TRAVIS|APPVEYOR_|CSC_|_TOKEN|_KEY|AWS_|STRIP|BUILD_') \ + -v ${PWD}:/project \ + -v ~/.cache/electron:/root/.cache/electron \ + -v ~/.cache/electron-builder:/root/.cache/electron-builder \ + electronuserland/builder:wine \ + /bin/bash -c "yarn --link-duplicates --pure-lockfile && yarn release --linux --win" + else + yarn release + fi +before_cache: + - rm -rf $HOME/.cache/electron-builder/wine + +branches: + except: + - "/^v\\d+\\.\\d+\\.\\d+$/" \ No newline at end of file From a5b91e61e0b2284a97210b28b7fb0e66d30349fd Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Sun, 3 Nov 2019 22:12:35 +0000 Subject: [PATCH 049/127] Update README.md --- README.md | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 592e4ba..72a05d0 100644 --- a/README.md +++ b/README.md @@ -12,10 +12,10 @@ At the top of `main.js` are a couple of flags you can switch to turn off editing ## Configuring the project for building This project uses the **electron-builder** project to help build native versions -of Node-RED applications, so please read and become familiar with their [documentation](https://www.electron.build/) as some basic -knowledge is assumed. +of Node-RED applications, so please read and become familiar with their +[documentation](https://www.electron.build/) as some basic knowledge is assumed. -As a pre-req, as well as a recent version of node.js, you will need the **yarn** install tool +As a pre-req, as well as a recent version of node.js, you will need the **yarn** install tool. ```bash # Clone this repository @@ -31,13 +31,14 @@ yarn ## Building local runtime You should then be able to run -``` + +```bash yarn && yarn dist ``` to create a runtime for your local platform. -However - there may be some errors. If so they are usually fairly self explanatory, -and may just require installation of another npm or brew or apt package, +However - there may be some errors. If so they are usually fairly self explanatory, +and may just require installation of another npm or brew or apt package, then retry the command. Runtimes are created in the `dist` directory under the `electron-node-red` project. @@ -45,7 +46,8 @@ Runtimes are created in the `dist` directory under the `electron-node-red` proje ### Building for other platforms Generally you can just add the required parameter to the command -``` + +```bash yarn && yarn dist -w // for windows yarn && yarn dist -l // for linux yarn && yarn dist -m // for mac @@ -68,9 +70,11 @@ This is very useful if you need to build for Windows on a Mac as the electron-bu ## Developing and Testing - Running locally While developing and testing you can just run your app locally by running -``` + +```bash npm start ``` + from within the project folder. The initial flow file is named `electronflow.json` along with it's credentials file @@ -79,4 +83,4 @@ The initial flow file is named `electronflow.json` along with it's credentials f The default is to start on the dashboard page - as this is intended to be just an application - without the Node-RED editor exposed to the end user, but there are some simple flags to to configure this at the top of `main.js`. ---- \ No newline at end of file +--- From c83e1f50eb9b951e2795e89f306df2e4393825a8 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Sun, 3 Nov 2019 22:22:04 +0000 Subject: [PATCH 050/127] Update .travis.yml --- .travis.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.travis.yml b/.travis.yml index 1cd61c3..d364024 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,6 +18,9 @@ cache: - $HOME/.cache/electron - $HOME/.cache/electron-builder +before_script: + - yarn install + script: - | if [ "$TRAVIS_OS_NAME" == "linux" ]; then From 9d4448e35d0eadd2f4ed0f569156be938532a266 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Sun, 3 Nov 2019 22:29:23 +0000 Subject: [PATCH 051/127] Update .travis.yml --- .travis.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index d364024..31faba4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -25,7 +25,9 @@ script: - | if [ "$TRAVIS_OS_NAME" == "linux" ]; then docker run --rm \ - --env-file <(env | grep -iE 'DEBUG|NODE_|ELECTRON_|YARN_|NPM_|CI|CIRCLE|TRAVIS|APPVEYOR_|CSC_|_TOKEN|_KEY|AWS_|STRIP|BUILD_') \ + --env-file <(env | grep -vE '\r|\n' | grep -iE 'DEBUG|NODE_|ELECTRON_|YARN_|NPM_|CI|CIRCLE|TRAVIS_TAG|TRAVIS|TRAVIS_REPO_|TRAVIS_BUILD_|TRAVIS_BRANCH|TRAVIS_PULL_REQUEST_|APPVEYOR_|CSC_|GH_|GITHUB_|BT_|AWS_|STRIP|BUILD_') \ + --env ELECTRON_CACHE="/root/.cache/electron" \ + --env ELECTRON_BUILDER_CACHE="/root/.cache/electron-builder" \ -v ${PWD}:/project \ -v ~/.cache/electron:/root/.cache/electron \ -v ~/.cache/electron-builder:/root/.cache/electron-builder \ From c13cb16019a2e928ae94baddfdfa85e65f93a113 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Sun, 3 Nov 2019 22:36:18 +0000 Subject: [PATCH 052/127] Update .travis.yml --- .travis.yml | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index 31faba4..862ea23 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,3 +1,12 @@ +before_install: # if "install" is overridden + # Repo for Yarn + - sudo apt-key adv --fetch-keys http://dl.yarnpkg.com/debian/pubkey.gpg + - echo "deb http://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list + - sudo apt-get update -qq + - sudo apt-get install -y -qq yarn +cache: + yarn: true + matrix: include: - os: osx @@ -18,16 +27,11 @@ cache: - $HOME/.cache/electron - $HOME/.cache/electron-builder -before_script: - - yarn install - script: - | if [ "$TRAVIS_OS_NAME" == "linux" ]; then docker run --rm \ --env-file <(env | grep -vE '\r|\n' | grep -iE 'DEBUG|NODE_|ELECTRON_|YARN_|NPM_|CI|CIRCLE|TRAVIS_TAG|TRAVIS|TRAVIS_REPO_|TRAVIS_BUILD_|TRAVIS_BRANCH|TRAVIS_PULL_REQUEST_|APPVEYOR_|CSC_|GH_|GITHUB_|BT_|AWS_|STRIP|BUILD_') \ - --env ELECTRON_CACHE="/root/.cache/electron" \ - --env ELECTRON_BUILDER_CACHE="/root/.cache/electron-builder" \ -v ${PWD}:/project \ -v ~/.cache/electron:/root/.cache/electron \ -v ~/.cache/electron-builder:/root/.cache/electron-builder \ From 3c224120c74ca4e027cb4b9f531d3470b714fb42 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Sun, 3 Nov 2019 22:57:28 +0000 Subject: [PATCH 053/127] add yarn.lock for travis --- .gitignore | 1 - .travis.yml | 8 - yarn.lock | 3825 +++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 3825 insertions(+), 9 deletions(-) create mode 100644 yarn.lock diff --git a/.gitignore b/.gitignore index 5eaa755..5b2381a 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,5 @@ node_modules *.back .config.json.backup *.backup -*lock* logs *.log diff --git a/.travis.yml b/.travis.yml index 862ea23..58fffdf 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,11 +1,3 @@ -before_install: # if "install" is overridden - # Repo for Yarn - - sudo apt-key adv --fetch-keys http://dl.yarnpkg.com/debian/pubkey.gpg - - echo "deb http://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list - - sudo apt-get update -qq - - sudo apt-get install -y -qq yarn -cache: - yarn: true matrix: include: diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..5bf1a92 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,3825 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"7zip-bin@~5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-5.0.3.tgz#bc5b5532ecafd923a61f2fb097e3b108c0106a3f" + integrity sha512-GLyWIFBbGvpKPGo55JyRZAo4lVbnBiD52cKlw/0Vt+wnmKvWJkpZvsjVoaIolyBXDeAQKSicRtqFNPem9w0WYA== + +"@babel/runtime@^7.3.1": + version "7.6.3" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.6.3.tgz#935122c74c73d2240cafd32ddb5fc2a6cd35cf1f" + integrity sha512-kq6anf9JGjW8Nt5rYfEuGRaEAaH1mkv3Bbu6rYvLOpPh/RusSJXuKPEAoZ7L7gybZkchE8+NV5g9vKF4AGAtsA== + dependencies: + regenerator-runtime "^0.13.2" + +"@develar/schema-utils@~2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@develar/schema-utils/-/schema-utils-2.1.0.tgz#eceb1695bfbed6f6bb84666d5d3abe5e1fd54e17" + integrity sha512-qjCqB4ctMig9Gz5bd6lkdFr3bO6arOdQqptdBSpF1ZpCnjofieCciEzkoS9ujY9cMGyllYSCSmBJ3x9OKHXzoA== + dependencies: + ajv "^6.1.0" + ajv-keywords "^3.1.0" + +"@electron/get@^1.0.1": + version "1.6.0" + resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.6.0.tgz#3e1437fa0f436ce9d4e0c27a4c330835ae6d74ed" + integrity sha512-xuvAzbN9iBApfAMvW0hKUpxHR5wPVbG9RaoSTbpu/WaHISDu0MVfMWYhfeU0X730CpBV0G2RkLgwAs9WDan3GA== + dependencies: + debug "^4.1.1" + env-paths "^2.2.0" + fs-extra "^8.1.0" + got "^9.6.0" + sanitize-filename "^1.6.2" + sumchecker "^3.0.0" + optionalDependencies: + global-agent "^2.0.2" + global-tunnel-ng "^2.7.1" + +"@node-red/editor-api@1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@node-red/editor-api/-/editor-api-1.0.2.tgz#531eeb211f681ee16b7b7570b12f8b6da11a5088" + integrity sha512-yUvTU5b7gDL35NIC2qC54NY0uuIAewVzcPWsc+Rbjy9YpY1DUD2Gt5Ub9gR2QPWYtVPG4zSPOBtPhZEcZvBSxQ== + dependencies: + "@node-red/editor-client" "1.0.2" + "@node-red/util" "1.0.2" + bcryptjs "2.4.3" + body-parser "1.19.0" + clone "2.1.2" + cors "2.8.5" + express "4.17.1" + express-session "1.16.2" + memorystore "1.6.1" + mime "2.4.4" + mustache "3.0.2" + oauth2orize "1.11.0" + passport "0.4.0" + passport-http-bearer "1.0.1" + passport-oauth2-client-password "0.1.2" + when "3.7.8" + ws "6.2.1" + optionalDependencies: + bcrypt "3.0.6" + +"@node-red/editor-client@1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@node-red/editor-client/-/editor-client-1.0.2.tgz#b8be4123a8d959b2c2b49c42e646741e7744a4cf" + integrity sha512-BhgzwWjxjrQJnZC/BMIZvco4H5ksZl+qh+3hy40ReDrNpp8xSc3mDIFoB785CZrYBtFMhasE2q0kqdYuNKE/Zw== + +"@node-red/nodes@1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@node-red/nodes/-/nodes-1.0.2.tgz#07a0be99cf14ac7bfa22ed8c3f006dc8991461ab" + integrity sha512-o5N0FZnLAEd1lF2ArLGoETosukFVI+nPTHWKUOoSd069eLuaS262BOTbbnk/oY4H2DEWQzjGZ2KKBItWlhbpXQ== + dependencies: + ajv "6.10.2" + body-parser "1.19.0" + cheerio "0.22.0" + content-type "1.0.4" + cookie "0.4.0" + cookie-parser "1.4.4" + cors "2.8.5" + cron "1.7.1" + denque "1.4.1" + fs-extra "8.1.0" + fs.notify "0.0.4" + hash-sum "2.0.0" + https-proxy-agent "2.2.2" + iconv-lite "0.5.0" + is-utf8 "0.2.1" + js-yaml "3.13.1" + media-typer "1.1.0" + mqtt "2.18.8" + multer "1.4.2" + mustache "3.0.2" + on-headers "1.0.2" + raw-body "2.4.1" + request "2.88.0" + ws "6.2.1" + xml2js "0.4.19" + +"@node-red/registry@1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@node-red/registry/-/registry-1.0.2.tgz#8584ae3207748a92acdabdacff797276c66ed8ee" + integrity sha512-i6TZvVriini0732IN2DVMofkG8RmiaLKpkHaP1aRceHvweDQB4yorcQsPDxqU+uiJo3lQlc1oB5j13X3mdq8DQ== + dependencies: + "@node-red/util" "1.0.2" + semver "6.3.0" + uglify-js "3.6.0" + when "3.7.8" + +"@node-red/runtime@1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@node-red/runtime/-/runtime-1.0.2.tgz#1746f7afb4d04bdff9f7eeea2e942482bdbf30e4" + integrity sha512-YMKu5HA4WWYdf2PinysONiEFkmoz+PHD4u9ormREBXPr4iCWmZ2+XqL4QRGAc/RA8FJQ8liCr2rLDUvAuSSVOQ== + dependencies: + "@node-red/registry" "1.0.2" + "@node-red/util" "1.0.2" + clone "2.1.2" + express "4.17.1" + fs-extra "8.1.0" + json-stringify-safe "5.0.1" + when "3.7.8" + +"@node-red/util@1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@node-red/util/-/util-1.0.2.tgz#742e7b307b95782440962a92e75badd1ea2f3124" + integrity sha512-DwaS8ZDcIFcMUQCWpMEVt38Pr6H2JBCeghZEs5v6nH+pnemUi1x6Mi+CSvwywVc4WN4uzGhVr8dWxFh1Q6/iEQ== + dependencies: + clone "2.1.2" + i18next "15.1.2" + json-stringify-safe "5.0.1" + jsonata "1.6.5" + when "3.7.8" + +"@sindresorhus/is@^0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" + integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== + +"@szmarczak/http-timer@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" + integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== + dependencies: + defer-to-connect "^1.0.1" + +"@types/debug@^4.1.4": + version "4.1.5" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.5.tgz#b14efa8852b7768d898906613c23f688713e02cd" + integrity sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ== + +"@types/node@^12.0.12": + version "12.11.7" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.11.7.tgz#57682a9771a3f7b09c2497f28129a0462966524a" + integrity sha512-JNbGaHFCLwgHn/iCckiGSOZ1XYHsKFwREtzPwSGCVld1SGhOlmZw2D4ZI94HQCrBHbADzW9m4LER/8olJTRGHA== + +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== + dependencies: + mime-types "~2.1.24" + negotiator "0.6.2" + +after@0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" + integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8= + +agent-base@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee" + integrity sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg== + dependencies: + es6-promisify "^5.0.0" + +ajv-keywords@^3.1.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" + integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== + +ajv@6.10.2, ajv@^6.1.0, ajv@^6.5.5: + version "6.10.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" + integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw== + dependencies: + fast-deep-equal "^2.0.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ansi-align@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" + integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw== + dependencies: + string-width "^3.0.0" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +app-builder-bin@3.4.3: + version "3.4.3" + resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.4.3.tgz#58a74193eb882f029be6b7f0cd3f0c6805927a6b" + integrity sha512-qMhayIwi3juerQEVJMQ76trObEbfQT0nhUdxZz9a26/3NLT3pE6awmQ8S1cEnrGugaaM5gYqR8OElcDezfmEsg== + +app-builder-lib@21.2.0, app-builder-lib@~21.2.0: + version "21.2.0" + resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-21.2.0.tgz#fa1d1604601431e2c3476857e9b9b61d33ad26cc" + integrity sha512-aOX/nv77/Bti6NymJDg7p9T067xD8m1ipIEJR7B4Mm1GsJWpMm9PZdXtCRiMNRjHtQS5KIljT0g17781y6qn5A== + dependencies: + "7zip-bin" "~5.0.3" + "@develar/schema-utils" "~2.1.0" + async-exit-hook "^2.0.1" + bluebird-lst "^1.0.9" + builder-util "21.2.0" + builder-util-runtime "8.3.0" + chromium-pickle-js "^0.2.0" + debug "^4.1.1" + ejs "^2.6.2" + electron-publish "21.2.0" + fs-extra "^8.1.0" + hosted-git-info "^2.7.1" + is-ci "^2.0.0" + isbinaryfile "^4.0.2" + js-yaml "^3.13.1" + lazy-val "^1.0.4" + minimatch "^3.0.4" + normalize-package-data "^2.5.0" + read-config-file "5.0.0" + sanitize-filename "^1.6.2" + semver "^6.3.0" + temp-file "^3.3.4" + +append-field@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/append-field/-/append-field-1.0.0.tgz#1e3440e915f0b1203d23748e78edd7b9b5b43e56" + integrity sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY= + +aproba@^1.0.3: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== + +are-we-there-yet@~1.1.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + +arraybuffer.slice@~0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" + integrity sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog== + +asn1@~0.2.3: + version "0.2.4" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + +async-exit-hook@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/async-exit-hook/-/async-exit-hook-2.0.1.tgz#8bd8b024b0ec9b1c01cccb9af9db29bd717dfaf3" + integrity sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw== + +async-limiter@^1.0.0, async-limiter@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + +async@~0.1.22: + version "0.1.22" + resolved "https://registry.yarnpkg.com/async/-/async-0.1.22.tgz#0fc1aaa088a0e3ef0ebe2d8831bab0dcf8845061" + integrity sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE= + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + +aws4@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" + integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ== + +backo2@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" + integrity sha1-MasayLEpNjRj41s+u2n038+6eUc= + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + +base64-arraybuffer@0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" + integrity sha1-c5JncZI7Whl0etZmqlzUv5xunOg= + +base64id@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" + integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== + +basic-auth@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-2.0.1.tgz#b998279bf47ce38344b4f3cf916d4679bbf51e3a" + integrity sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg== + dependencies: + safe-buffer "5.1.2" + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + dependencies: + tweetnacl "^0.14.3" + +bcrypt@3.0.6: + version "3.0.6" + resolved "https://registry.yarnpkg.com/bcrypt/-/bcrypt-3.0.6.tgz#f607846df62d27e60d5e795612c4f67d70206eb2" + integrity sha512-taA5bCTfXe7FUjKroKky9EXpdhkVvhE5owfxfLYodbrAR1Ul3juLmIQmIQBK4L9a5BuUcE6cqmwT+Da20lF9tg== + dependencies: + nan "2.13.2" + node-pre-gyp "0.12.0" + +bcryptjs@2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/bcryptjs/-/bcryptjs-2.4.3.tgz#9ab5627b93e60621ff7cdac5da9733027df1d0cb" + integrity sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms= + +better-assert@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" + integrity sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI= + dependencies: + callsite "1.0.0" + +bl@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.2.tgz#a160911717103c07410cef63ef51b397c025af9c" + integrity sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA== + dependencies: + readable-stream "^2.3.5" + safe-buffer "^5.1.1" + +blob@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683" + integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig== + +bluebird-lst@^1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/bluebird-lst/-/bluebird-lst-1.0.9.tgz#a64a0e4365658b9ab5fe875eb9dfb694189bb41c" + integrity sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw== + dependencies: + bluebird "^3.5.5" + +bluebird@^3.5.5: + version "3.7.1" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.1.tgz#df70e302b471d7473489acf26a93d63b53f874de" + integrity sha512-DdmyoGCleJnkbp3nkbxTLJ18rjDsE4yCggEwKNXkeV123sPNfOCYeDoeuOY+F2FrSjO1YXcTU+dsy96KMy+gcg== + +body-parser@1.19.0: + version "1.19.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" + integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== + dependencies: + bytes "3.1.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "1.7.2" + iconv-lite "0.4.24" + on-finished "~2.3.0" + qs "6.7.0" + raw-body "2.4.0" + type-is "~1.6.17" + +boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + +boolean@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/boolean/-/boolean-2.0.2.tgz#f272d09a1a9372b080ddfe948232145d224c12b7" + integrity sha512-ymsbJQlux/uogyEWfsXJUYzuyoOzPyp6NvEV71s6/ptQR7ptKO9uHF+WZL2GRATDeN52EFhNyrIu+exNZKh3Cw== + +boxen@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-3.2.0.tgz#fbdff0de93636ab4450886b6ff45b92d098f45eb" + integrity sha512-cU4J/+NodM3IHdSL2yN8bqYqnmlBTidDR4RC7nJs61ZmtGz8VZzM3HLQX0zY5mrSmPtR3xWwsq2jOUQqFZN8+A== + dependencies: + ansi-align "^3.0.0" + camelcase "^5.3.1" + chalk "^2.4.2" + cli-boxes "^2.2.0" + string-width "^3.0.0" + term-size "^1.2.0" + type-fest "^0.3.0" + widest-line "^2.0.0" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + +"bufferjs@>= 0.2.3": + version "3.0.1" + resolved "https://registry.yarnpkg.com/bufferjs/-/bufferjs-3.0.1.tgz#0692e829cb10a10550e647390b035eb06c38e8ef" + integrity sha1-BpLoKcsQoQVQ5kc5CwNesGw46O8= + +"bufferlist@>= 0.0.6": + version "0.1.0" + resolved "https://registry.yarnpkg.com/bufferlist/-/bufferlist-0.1.0.tgz#42bef2d89573b40fa1086bb39e0f5310170d1ddd" + integrity sha1-Qr7y2JVztA+hCGuzng9TEBcNHd0= + +builder-util-runtime@8.3.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.3.0.tgz#f5fac9139af6facf42a21fbe4d3aebed88fda33e" + integrity sha512-CSOdsYqf4RXIHh1HANPbrZHlZ9JQJXSuDDloblZPcWQVN62inyYoTQuSmY3KrgefME2Sv3Kn2MxHvbGQHRf8Iw== + dependencies: + debug "^4.1.1" + sax "^1.2.4" + +builder-util@21.2.0, builder-util@~21.2.0: + version "21.2.0" + resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-21.2.0.tgz#aba721190e4e841009d9fb4b88f1130ed616522f" + integrity sha512-Nd6CUb6YgDY8EXAXEIegx+1kzKqyFQ5ZM5BoYkeunAlwz/zDJoH1UCyULjoS5wQe5czNClFQy07zz2bzYD0Z4A== + dependencies: + "7zip-bin" "~5.0.3" + "@types/debug" "^4.1.4" + app-builder-bin "3.4.3" + bluebird-lst "^1.0.9" + builder-util-runtime "8.3.0" + chalk "^2.4.2" + debug "^4.1.1" + fs-extra "^8.1.0" + is-ci "^2.0.0" + js-yaml "^3.13.1" + source-map-support "^0.5.13" + stat-mode "^0.3.0" + temp-file "^3.3.4" + +busboy@^0.2.11: + version "0.2.14" + resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.2.14.tgz#6c2a622efcf47c57bbbe1e2a9c37ad36c7925453" + integrity sha1-bCpiLvz0fFe7vh4qnDetNseSVFM= + dependencies: + dicer "0.2.5" + readable-stream "1.1.x" + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= + +bytes@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + +cacheable-request@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" + integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^3.0.0" + lowercase-keys "^2.0.0" + normalize-url "^4.1.0" + responselike "^1.0.2" + +callback-stream@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/callback-stream/-/callback-stream-1.1.0.tgz#4701a51266f06e06eaa71fc17233822d875f4908" + integrity sha1-RwGlEmbwbgbqpx/BcjOCLYdfSQg= + dependencies: + inherits "^2.0.1" + readable-stream "> 1.0.0 < 3.0.0" + +callsite@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" + integrity sha1-KAOY5dZkvXQDi28JBRU+borxvCA= + +camelcase@^5.0.0, camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + +cgi@0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/cgi/-/cgi-0.3.1.tgz#8751da64a1cf1849d11056318b760d1acfba47dc" + integrity sha1-h1HaZKHPGEnREFYxi3YNGs+6R9w= + dependencies: + debug "2" + extend "~2.0.0" + header-stack "~0.0.2" + stream-stack "~1.1.1" + +chalk@^2.0.1, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +cheerio@0.22.0: + version "0.22.0" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e" + integrity sha1-qbqoYKP5tZWmuBsahocxIe06Jp4= + dependencies: + css-select "~1.2.0" + dom-serializer "~0.1.0" + entities "~1.1.1" + htmlparser2 "^3.9.1" + lodash.assignin "^4.0.9" + lodash.bind "^4.1.4" + lodash.defaults "^4.0.1" + lodash.filter "^4.4.0" + lodash.flatten "^4.2.0" + lodash.foreach "^4.3.0" + lodash.map "^4.4.0" + lodash.merge "^4.4.0" + lodash.pick "^4.2.1" + lodash.reduce "^4.4.0" + lodash.reject "^4.4.0" + lodash.some "^4.4.0" + +chownr@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.3.tgz#42d837d5239688d55f303003a508230fa6727142" + integrity sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw== + +chromium-pickle-js@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz#04a106672c18b085ab774d983dfa3ea138f22205" + integrity sha1-BKEGZywYsIWrd02YPfo+oTjyIgU= + +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + +cli-boxes@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.0.tgz#538ecae8f9c6ca508e3c3c95b453fe93cb4c168d" + integrity sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w== + +cliui@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== + dependencies: + string-width "^3.1.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" + +clone-response@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" + integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= + dependencies: + mimic-response "^1.0.0" + +clone@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" + integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +combined-stream@^1.0.6, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@~2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commist@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/commist/-/commist-1.1.0.tgz#17811ec6978f6c15ee4de80c45c9beb77cee35d5" + integrity sha512-rraC8NXWOEjhADbZe9QBNzLAN5Q3fsTPQtBV+fEVj6xKIgDgNiEVE6ZNfHpZOqfQ21YUzfVNUXLOEZquYvQPPg== + dependencies: + leven "^2.1.0" + minimist "^1.1.0" + +component-bind@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" + integrity sha1-AMYIq33Nk4l8AAllGx06jh5zu9E= + +component-emitter@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" + integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= + +component-inherit@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" + integrity sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM= + +compressible@~2.0.16: + version "2.0.17" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.17.tgz#6e8c108a16ad58384a977f3a482ca20bff2f38c1" + integrity sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw== + dependencies: + mime-db ">= 1.40.0 < 2" + +compression@^1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + dependencies: + accepts "~1.3.5" + bytes "3.0.0" + compressible "~2.0.16" + debug "2.6.9" + on-headers "~1.0.2" + safe-buffer "5.1.2" + vary "~1.1.2" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +concat-stream@1.6.2, concat-stream@^1.5.2, concat-stream@^1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +config-chain@^1.1.11: + version "1.1.12" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" + integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + +configstore@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-4.0.0.tgz#5933311e95d3687efb592c528b922d9262d227e7" + integrity sha512-CmquAXFBocrzaSM8mtGPMM/HiWmyIpr4CcJl/rgY2uCObZ/S7cKU0silxslqJejl+t/T9HS8E0PUNQD81JGUEQ== + dependencies: + dot-prop "^4.1.0" + graceful-fs "^4.1.2" + make-dir "^1.0.0" + unique-string "^1.0.0" + write-file-atomic "^2.0.0" + xdg-basedir "^3.0.0" + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= + +content-disposition@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" + integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== + dependencies: + safe-buffer "5.1.2" + +content-type@1.0.4, content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +cookie-parser@1.4.4: + version "1.4.4" + resolved "https://registry.yarnpkg.com/cookie-parser/-/cookie-parser-1.4.4.tgz#e6363de4ea98c3def9697b93421c09f30cf5d188" + integrity sha512-lo13tqF3JEtFO7FyA49CqbhaFkskRJ0u/UAiINgrIXeRCY41c88/zxtrECl8AKH3B0hj9q10+h3Kt8I7KlW4tw== + dependencies: + cookie "0.3.1" + cookie-signature "1.0.6" + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + +cookie@0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" + integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s= + +cookie@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" + integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== + +core-js@^3.3.3: + version "3.3.4" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.3.4.tgz#6b0a23392958317bfb46e40b090529a923add669" + integrity sha512-BtibooaAmSOptGLRccsuX/dqgPtXwNgqcvYA6kOTTMzonRxZ+pJS4e+6mvVutESfXMeTnK8m3M+aBu3bkJbR+w== + +core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +cors@2.8.5: + version "2.8.5" + resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" + integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== + dependencies: + object-assign "^4" + vary "^1" + +cron@1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/cron/-/cron-1.7.1.tgz#e85ee9df794d1bc6579896ee382053c3ce33778f" + integrity sha512-gmMB/pJcqUVs/NklR1sCGlNYM7TizEw+1gebz20BMc/8bTm/r7QUp3ZPSPlG8Z5XRlvb7qhjEjq/+bdIfUCL2A== + dependencies: + moment-timezone "^0.5.x" + +cross-spawn@^5.0.1: + version "5.1.0" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + +crypto-random-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" + integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4= + +css-select@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" + integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg= + dependencies: + boolbase "~1.0.0" + css-what "2.1" + domutils "1.5.1" + nth-check "~1.0.1" + +css-what@2.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" + integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== + +d@1, d@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" + integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== + dependencies: + es5-ext "^0.10.50" + type "^1.0.1" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + dependencies: + assert-plus "^1.0.0" + +debug@2, debug@2.6.9, debug@2.x.x: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@3.1.0, debug@~3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== + dependencies: + ms "2.0.0" + +debug@^3.1.0, debug@^3.2.6: + version "3.2.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== + dependencies: + ms "^2.1.1" + +debug@^4.1.0, debug@^4.1.1, debug@~4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + +decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + +decompress-response@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= + dependencies: + mimic-response "^1.0.0" + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +defer-to-connect@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.0.2.tgz#4bae758a314b034ae33902b5aac25a8dd6a8633e" + integrity sha512-k09hcQcTDY+cwgiwa6PYKLm3jlagNzQ+RSvhjzESOGOx+MNOuXkxTfEvPrO1IOQ81tArCFYQgi631clB70RpQw== + +define-properties@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= + +denque@1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/denque/-/denque-1.4.1.tgz#6744ff7641c148c3f8a69c307e51235c1f4a37cf" + integrity sha512-OfzPuSZKGcgr96rf1oODnfjqBFmr1DVoc/TrItj3Ohe0Ah1C5WX5Baquw/9U9KovnQ88EqmJbD66rKYUQYN1tQ== + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + +depd@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + +detect-libc@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= + +detect-node@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" + integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== + +dicer@0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/dicer/-/dicer-0.2.5.tgz#5996c086bb33218c812c090bddc09cd12facb70f" + integrity sha1-WZbAhrszIYyBLAkL3cCc0S+stw8= + dependencies: + readable-stream "1.1.x" + streamsearch "0.1.2" + +dmg-builder@21.2.0: + version "21.2.0" + resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-21.2.0.tgz#a9c883557cacb9abdb66c7133b30fe921c1a3ba7" + integrity sha512-9cJEclnGy7EyKFCoHDYDf54pub/t92CQapyiUxU0w9Bj2vUvfoDagP1PMiX4XD5rPp96141h9A+QN0OB4VgvQg== + dependencies: + app-builder-lib "~21.2.0" + bluebird-lst "^1.0.9" + builder-util "~21.2.0" + fs-extra "^8.1.0" + iconv-lite "^0.5.0" + js-yaml "^3.13.1" + sanitize-filename "^1.6.2" + +dom-serializer@0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.1.tgz#13650c850daffea35d8b626a4cfc4d3a17643fdb" + integrity sha512-sK3ujri04WyjwQXVoK4PU3y8ula1stq10GJZpqHIUgoGZdsGzAGu65BnU3d08aTVSvO7mGPZUc0wTEDL+qGE0Q== + dependencies: + domelementtype "^2.0.1" + entities "^2.0.0" + +dom-serializer@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" + integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA== + dependencies: + domelementtype "^1.3.0" + entities "^1.1.1" + +domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + +domelementtype@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" + integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== + +domhandler@^2.3.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" + integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== + dependencies: + domelementtype "1" + +domutils@1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" + integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8= + dependencies: + dom-serializer "0" + domelementtype "1" + +domutils@^1.5.1: + version "1.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== + dependencies: + dom-serializer "0" + domelementtype "1" + +dot-prop@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" + integrity sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ== + dependencies: + is-obj "^1.0.0" + +dotenv-expand@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" + integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== + +dotenv@^8.0.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" + integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== + +duplexer3@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= + +duplexify@^3.5.1, duplexify@^3.6.0: + version "3.7.1" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" + integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +ejs@^2.6.2: + version "2.7.1" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.1.tgz#5b5ab57f718b79d4aca9254457afecd36fa80228" + integrity sha512-kS/gEPzZs3Y1rRsbGX4UOSjtP/CeJP0CxSNZHYxGfVM/VgLcv0ZqM7C45YyTj2DI2g7+P9Dd24C+IMIg6D0nYQ== + +electron-builder@^21.2.0: + version "21.2.0" + resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-21.2.0.tgz#b68ec4def713fc0b8602654ce842f972432f50c5" + integrity sha512-x8EXrqFbAb2L3N22YlGar3dGh8vwptbB3ovo3OF6K7NTpcsmM2zEoJv7GhFyX73rNzSG2HaWpXwGAtOp2JWiEw== + dependencies: + app-builder-lib "21.2.0" + bluebird-lst "^1.0.9" + builder-util "21.2.0" + builder-util-runtime "8.3.0" + chalk "^2.4.2" + dmg-builder "21.2.0" + fs-extra "^8.1.0" + is-ci "^2.0.0" + lazy-val "^1.0.4" + read-config-file "5.0.0" + sanitize-filename "^1.6.2" + update-notifier "^3.0.1" + yargs "^13.3.0" + +electron-publish@21.2.0: + version "21.2.0" + resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-21.2.0.tgz#cc225cb46aa62e74b899f2f7299b396c9802387d" + integrity sha512-mWavuoWJe87iaeKd0I24dNWIaR+0yRzshjNVqGyK019H766fsPWl3caQJnVKFaEyrZRP397v4JZVG0e7s16AxA== + dependencies: + bluebird-lst "^1.0.9" + builder-util "~21.2.0" + builder-util-runtime "8.3.0" + chalk "^2.4.2" + fs-extra "^8.1.0" + lazy-val "^1.0.4" + mime "^2.4.4" + +electron@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/electron/-/electron-7.0.1.tgz#6da2c07aa0513d3d156b5b027f317e0959261d43" + integrity sha512-eMFoZIO0+eOAE9FyNC/f0Vp8l/sJziTMK+axEt2XIpGCagom1IZgUKPGwmHUcftZCX5lNKh+Tv53T0GcNnNTKQ== + dependencies: + "@electron/get" "^1.0.1" + "@types/node" "^12.0.12" + extract-zip "^1.0.3" + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + +encodeurl@^1.0.2, encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +engine.io-client@~3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.4.0.tgz#82a642b42862a9b3f7a188f41776b2deab643700" + integrity sha512-a4J5QO2k99CM2a0b12IznnyQndoEvtA4UAldhGzKqnHf42I3Qs2W5SPnDvatZRcMaNZs4IevVicBPayxYt6FwA== + dependencies: + component-emitter "1.2.1" + component-inherit "0.0.3" + debug "~4.1.0" + engine.io-parser "~2.2.0" + has-cors "1.1.0" + indexof "0.0.1" + parseqs "0.0.5" + parseuri "0.0.5" + ws "~6.1.0" + xmlhttprequest-ssl "~1.5.4" + yeast "0.1.2" + +engine.io-parser@~2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.2.0.tgz#312c4894f57d52a02b420868da7b5c1c84af80ed" + integrity sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w== + dependencies: + after "0.8.2" + arraybuffer.slice "~0.0.7" + base64-arraybuffer "0.1.5" + blob "0.0.5" + has-binary2 "~1.0.2" + +engine.io@~3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.4.0.tgz#3a962cc4535928c252759a00f98519cb46c53ff3" + integrity sha512-XCyYVWzcHnK5cMz7G4VTu2W7zJS7SM1QkcelghyIk/FmobWBtXE7fwhBusEKvCSqc3bMh8fNFMlUkCKTFRxH2w== + dependencies: + accepts "~1.3.4" + base64id "2.0.0" + cookie "0.3.1" + debug "~4.1.0" + engine.io-parser "~2.2.0" + ws "^7.1.2" + +entities@^1.1.1, entities@~1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" + integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== + +entities@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4" + integrity sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw== + +env-paths@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.0.tgz#cdca557dc009152917d6166e2febe1f039685e43" + integrity sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA== + +es5-ext@^0.10.35, es5-ext@^0.10.50, es5-ext@^0.10.51, es5-ext@~0.10.14: + version "0.10.51" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.51.tgz#ed2d7d9d48a12df86e0299287e93a09ff478842f" + integrity sha512-oRpWzM2WcLHVKpnrcyB7OW8j/s67Ba04JCm0WnNv3RiABSvs7mrQlutB8DBv793gKcp0XENR8Il8WxGTlZ73gQ== + dependencies: + es6-iterator "~2.0.3" + es6-symbol "~3.1.1" + next-tick "^1.0.0" + +es6-error@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" + integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== + +es6-iterator@~2.0.1, es6-iterator@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-map@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" + integrity sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA= + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-set "~0.1.5" + es6-symbol "~3.1.1" + event-emitter "~0.3.5" + +es6-promise@^4.0.3: + version "4.2.8" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" + integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== + +es6-promisify@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" + integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM= + dependencies: + es6-promise "^4.0.3" + +es6-set@~0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" + integrity sha1-0rPsXU2ADO2BjbU40ol02wpzzLE= + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-symbol "3.1.1" + event-emitter "~0.3.5" + +es6-symbol@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" + integrity sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc= + dependencies: + d "1" + es5-ext "~0.10.14" + +es6-symbol@^3.1.1, es6-symbol@~3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.2.tgz#859fdd34f32e905ff06d752e7171ddd4444a7ed1" + integrity sha512-/ZypxQsArlv+KHpGvng52/Iz8by3EQPxhmbuz8yFG89N/caTFBSbcXONDw0aMjy827gQg26XAjP4uXFvnfINmQ== + dependencies: + d "^1.0.1" + es5-ext "^0.10.51" + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +event-emitter@~0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + integrity sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk= + dependencies: + d "1" + es5-ext "~0.10.14" + +execa@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +express-session@1.16.2: + version "1.16.2" + resolved "https://registry.yarnpkg.com/express-session/-/express-session-1.16.2.tgz#59f36d7770e94872d19b163b6708a2d16aa6848c" + integrity sha512-oy0sRsdw6n93E9wpCNWKRnSsxYnSDX9Dnr9mhZgqUEEorzcq5nshGYSZ4ZReHFhKQ80WI5iVUUSPW7u3GaKauw== + dependencies: + cookie "0.3.1" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~2.0.0" + on-headers "~1.0.2" + parseurl "~1.3.3" + safe-buffer "5.1.2" + uid-safe "~2.1.5" + +express@4.17.1, express@^4.16.4, express@^4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" + integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== + dependencies: + accepts "~1.3.7" + array-flatten "1.1.1" + body-parser "1.19.0" + content-disposition "0.5.3" + content-type "~1.0.4" + cookie "0.4.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "~1.1.2" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.5" + qs "6.7.0" + range-parser "~1.2.1" + safe-buffer "5.1.2" + send "0.17.1" + serve-static "1.14.1" + setprototypeof "1.1.1" + statuses "~1.5.0" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +extend@^3.0.0, extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +extend@~2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-2.0.2.tgz#1b74985400171b85554894459c978de6ef453ab7" + integrity sha512-AgFD4VU+lVLP6vjnlNfF7OeInLTyeyckCNPEsuxz1vi786UuK/nk6ynPuhn/h+Ju9++TQyr5EpLRI14fc1QtTQ== + +extract-zip@^1.0.3: + version "1.6.7" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.7.tgz#a840b4b8af6403264c8db57f4f1a74333ef81fe9" + integrity sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k= + dependencies: + concat-stream "1.6.2" + debug "2.6.9" + mkdirp "0.5.1" + yauzl "2.4.1" + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= + +fast-deep-equal@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" + integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= + +fast-json-stable-stringify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" + integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= + +faye-websocket@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" + integrity sha1-TkkvjQTftviQA1B/btvy1QHnxvQ= + dependencies: + websocket-driver ">=0.5.1" + +fd-slicer@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" + integrity sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU= + dependencies: + pend "~1.2.0" + +finalhandler@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +forwarded@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" + integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + +fs-extra@8.1.0, fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-minipass@^1.2.5: + version "1.2.7" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" + integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== + dependencies: + minipass "^2.6.0" + +fs.notify@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/fs.notify/-/fs.notify-0.0.4.tgz#63284d45a34b52ce60088a6ddbec5b776d3c013d" + integrity sha1-YyhNRaNLUs5gCIpt2+xbd208AT0= + dependencies: + async "~0.1.22" + retry "~0.6.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +geolib@^2.0.0: + version "2.0.24" + resolved "https://registry.yarnpkg.com/geolib/-/geolib-2.0.24.tgz#eb3d7fbc65f5ea3354a5af6054563ebe9f33e5f4" + integrity sha512-NR0AyYyEnGrFS9JvSFmmotQDxVCORJgDHdvBwSatxl5aHarOLMh3KuGI83bCvCfObjfoEiDe8Ung8GGLGAtthw== + +get-caller-file@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= + +get-stream@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-stream@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" + integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw== + dependencies: + pump "^3.0.0" + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + dependencies: + assert-plus "^1.0.0" + +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob-stream@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-6.1.0.tgz#7045c99413b3eb94888d83ab46d0b404cc7bdde4" + integrity sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ= + dependencies: + extend "^3.0.0" + glob "^7.1.1" + glob-parent "^3.1.0" + is-negated-glob "^1.0.0" + ordered-read-streams "^1.0.0" + pumpify "^1.3.5" + readable-stream "^2.1.5" + remove-trailing-separator "^1.0.1" + to-absolute-glob "^2.0.0" + unique-stream "^2.0.2" + +glob@^7.1.1, glob@^7.1.3: + version "7.1.5" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.5.tgz#6714c69bee20f3c3e64c4dd905553e532b40cdc0" + integrity sha512-J9dlskqUXK1OeTOYBEn5s8aMukWMwWfs+rPTn/jn50Ux4MNXVhubL1wu/j2t+H4NVI+cXEcCaYellqaPVGXNqQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-agent@^2.0.2: + version "2.1.5" + resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-2.1.5.tgz#0e9b8367f7068bb6fa360a8f920499e1d873762f" + integrity sha512-pYJjCxxNBzYxo6iNO62JZn8iCFVbvpiM0zE4w/G5hBNIvLjnvzIeCVQPMKc3aK8ju5L7Q8NNI/oBSosU0eeSYw== + dependencies: + boolean "^2.0.2" + core-js "^3.3.3" + es6-error "^4.1.1" + matcher "^2.0.0" + roarr "^2.14.2" + semver "^6.3.0" + serialize-error "^5.0.0" + +global-dirs@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" + integrity sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU= + dependencies: + ini "^1.3.4" + +global-tunnel-ng@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz#d03b5102dfde3a69914f5ee7d86761ca35d57d8f" + integrity sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg== + dependencies: + encodeurl "^1.0.2" + lodash "^4.17.10" + npm-conf "^1.1.3" + tunnel "^0.0.6" + +globalthis@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.0.tgz#c5fb98213a9b4595f59cf3e7074f141b4169daae" + integrity sha512-vcCAZTJ3r5Qcu5l8/2oyVdoFwxKgfYnMTR2vwWeux/NAVZK3PwcMaWkdUIn4GJbmKuRK7xcvDsLuK+CKcXyodg== + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + object-keys "^1.0.12" + +got@^9.6.0: + version "9.6.0" + resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" + integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== + dependencies: + "@sindresorhus/is" "^0.14.0" + "@szmarczak/http-timer" "^1.1.2" + cacheable-request "^6.0.0" + decompress-response "^3.3.0" + duplexer3 "^0.1.4" + get-stream "^4.1.0" + lowercase-keys "^1.0.1" + mimic-response "^1.0.1" + p-cancelable "^1.0.0" + to-readable-stream "^1.0.0" + url-parse-lax "^3.0.0" + +graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: + version "4.2.2" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.2.tgz#6f0952605d0140c1cfdb138ed005775b92d67b02" + integrity sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q== + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + +har-validator@~5.1.0: + version "5.1.3" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" + integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== + dependencies: + ajv "^6.5.5" + har-schema "^2.0.0" + +has-binary2@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d" + integrity sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw== + dependencies: + isarray "2.0.1" + +has-cors@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" + integrity sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk= + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= + +has-yarn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" + integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== + +hash-sum@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-2.0.0.tgz#81d01bb5de8ea4a214ad5d6ead1b523460b0b45a" + integrity sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg== + +header-stack@~0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/header-stack/-/header-stack-0.0.2.tgz#460d72b16d38652ce451e232536971b31e84d60f" + integrity sha1-Rg1ysW04ZSzkUeIyU2lxsx6E1g8= + dependencies: + bufferjs ">= 0.2.3" + bufferlist ">= 0.0.6" + stream-stack ">= 1.1.1" + +help-me@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/help-me/-/help-me-1.1.0.tgz#8f2d508d0600b4a456da2f086556e7e5c056a3c6" + integrity sha1-jy1QjQYAtKRW2i8IZVbn5cBWo8Y= + dependencies: + callback-stream "^1.0.2" + glob-stream "^6.1.0" + through2 "^2.0.1" + xtend "^4.0.0" + +hosted-git-info@^2.1.4, hosted-git-info@^2.7.1: + version "2.8.5" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.5.tgz#759cfcf2c4d156ade59b0b2dfabddc42a6b9c70c" + integrity sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg== + +htmlparser2@^3.9.1: + version "3.10.1" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" + integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== + dependencies: + domelementtype "^1.3.1" + domhandler "^2.3.0" + domutils "^1.5.1" + entities "^1.1.1" + inherits "^2.0.1" + readable-stream "^3.1.1" + +http-cache-semantics@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz#495704773277eeef6e43f9ab2c2c7d259dda25c5" + integrity sha512-TcIMG3qeVLgDr1TEd2XvHaTnMPwYQUQMIBLy+5pLSDKYFc7UIqj39w8EGzZkaxoLv/l2K8HaI0t5AVA+YYgUew== + +http-errors@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" + integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@1.7.3, http-errors@~1.7.2: + version "1.7.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +"http-parser-js@>=0.4.0 <0.4.11": + version "0.4.10" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.10.tgz#92c9c1374c35085f75db359ec56cc257cbb93fa4" + integrity sha1-ksnBN0w1CF912zWexWzCV8u5P6Q= + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +https-proxy-agent@2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.2.tgz#271ea8e90f836ac9f119daccd39c19ff7dfb0793" + integrity sha512-c8Ndjc9Bkpfx/vCJueCPy0jlP4ccCCSNDp8xwCZzPjKJUm+B+u9WX2x98Qx4n1PiMNTWo3D7KK5ifNV/yJyRzg== + dependencies: + agent-base "^4.3.0" + debug "^3.1.0" + +i18next@15.1.2: + version "15.1.2" + resolved "https://registry.yarnpkg.com/i18next/-/i18next-15.1.2.tgz#635b7bc688cf36620cab8fa1c3af97817a47f95a" + integrity sha512-98ELn/dqep00DQ/v1E1gpM21HNN6nqU3mS85mYKd9P7lXrhfUcuysPaa3HviKSFb3WPdjf7avuAST3P0dhNp/A== + dependencies: + "@babel/runtime" "^7.3.1" + +iconv-lite@0.4.24, iconv-lite@^0.4.4: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +iconv-lite@0.5.0, iconv-lite@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.5.0.tgz#59cdde0a2a297cc2aeb0c6445a195ee89f127550" + integrity sha512-NnEhI9hIEKHOzJ4f697DMz9IQEXr/MMJ5w64vN2/4Ai+wRnvV7SBrL0KLoRlwaKVghOc7LQ5YkPLuX146b6Ydw== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +ignore-walk@^3.0.1: + version "3.0.3" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" + integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw== + dependencies: + minimatch "^3.0.4" + +import-lazy@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" + integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +indexof@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +ini@^1.3.4, ini@~1.3.0: + version "1.3.5" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" + integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== + +ipaddr.js@1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.0.tgz#37df74e430a0e47550fe54a2defe30d8acd95f65" + integrity sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA== + +is-absolute@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" + integrity sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA== + dependencies: + is-relative "^1.0.0" + is-windows "^1.0.1" + +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== + dependencies: + ci-info "^2.0.0" + +is-extglob@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= + dependencies: + is-extglob "^2.1.0" + +is-installed-globally@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" + integrity sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA= + dependencies: + global-dirs "^0.1.0" + is-path-inside "^1.0.0" + +is-negated-glob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-negated-glob/-/is-negated-glob-1.0.0.tgz#6910bca5da8c95e784b5751b976cf5a10fee36d2" + integrity sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI= + +is-npm@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-3.0.0.tgz#ec9147bfb629c43f494cf67936a961edec7e8053" + integrity sha512-wsigDr1Kkschp2opC4G3yA6r9EgVA6NjRpWzIi9axXqeIaAATPRJc4uLujXe3Nd9uO8KoDyA4MD6aZSeXTADhA== + +is-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= + +is-path-inside@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" + integrity sha1-jvW33lBDej/cprToZe96pVy0gDY= + dependencies: + path-is-inside "^1.0.1" + +is-relative@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" + integrity sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA== + dependencies: + is-unc-path "^1.0.0" + +is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +is-unc-path@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" + integrity sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ== + dependencies: + unc-path-regex "^0.1.2" + +is-utf8@0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= + +is-windows@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +is-yarn-global@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" + integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + +isarray@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" + integrity sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4= + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isbinaryfile@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.2.tgz#bfc45642da645681c610cca831022e30af426488" + integrity sha512-C3FSxJdNrEr2F4z6uFtNzECDM5hXk+46fxaa+cwBe5/XrWSmzdG8DDgyjfX6/NRdBB21q2JXuRAzPCUs+fclnQ== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + +js-yaml@3.13.1, js-yaml@^3.13.1: + version "3.13.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" + integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + +json-buffer@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" + integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + +json-stringify-safe@5.0.1, json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + +json5@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.1.tgz#81b6cb04e9ba496f1c7005d07b4368a2638f90b6" + integrity sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ== + dependencies: + minimist "^1.2.0" + +jsonata@1.6.5: + version "1.6.5" + resolved "https://registry.yarnpkg.com/jsonata/-/jsonata-1.6.5.tgz#845d0497473e7a18e7fe7bd5a9ee8c88620b5db4" + integrity sha512-iRx9U6AkvsjrRdFf9MMbQmGVAL3bXVANR12vbVxjgXouMPU9VJQEcFnLWUCaW8IDmOzdxsaxK4Xe7SGlBYr5Bg== + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + optionalDependencies: + graceful-fs "^4.1.6" + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +keyv@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" + integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== + dependencies: + json-buffer "3.0.0" + +latest-version@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" + integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== + dependencies: + package-json "^6.3.0" + +lazy-val@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.4.tgz#882636a7245c2cfe6e0a4e3ba6c5d68a137e5c65" + integrity sha512-u93kb2fPbIrfzBuLjZE+w+fJbUUMhNDXxNmMfaqNgpfQf1CO5ZSe2LfsnBqVAk7i/2NF48OSoRj+Xe2VT+lE8Q== + +leven@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" + integrity sha1-wuep93IJTe6dNCAq6KzORoeHVYA= + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +lodash.assignin@^4.0.9: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.assignin/-/lodash.assignin-4.2.0.tgz#ba8df5fb841eb0a3e8044232b0e263a8dc6a28a2" + integrity sha1-uo31+4QesKPoBEIysOJjqNxqKKI= + +lodash.bind@^4.1.4: + version "4.2.1" + resolved "https://registry.yarnpkg.com/lodash.bind/-/lodash.bind-4.2.1.tgz#7ae3017e939622ac31b7d7d7dcb1b34db1690d35" + integrity sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU= + +lodash.defaults@^4.0.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" + integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw= + +lodash.filter@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.filter/-/lodash.filter-4.6.0.tgz#668b1d4981603ae1cc5a6fa760143e480b4c4ace" + integrity sha1-ZosdSYFgOuHMWm+nYBQ+SAtMSs4= + +lodash.flatten@^4.2.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" + integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8= + +lodash.foreach@^4.3.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53" + integrity sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM= + +lodash.map@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" + integrity sha1-dx7Hg540c9nEzeKLGTlMNWL09tM= + +lodash.merge@^4.4.0: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.pick@^4.2.1: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" + integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM= + +lodash.reduce@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.reduce/-/lodash.reduce-4.6.0.tgz#f1ab6b839299ad48f784abbf476596f03b914d3b" + integrity sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs= + +lodash.reject@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.reject/-/lodash.reject-4.6.0.tgz#80d6492dc1470864bbf583533b651f42a9f52415" + integrity sha1-gNZJLcFHCGS79YNTO2UfQqn1JBU= + +lodash.some@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" + integrity sha1-G7nzFO9ri63tE7VJFpsqlF62jk0= + +lodash@^4.17.10: + version "4.17.15" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" + integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== + +lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== + +lowercase-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== + +lru-cache@^4.0.1, lru-cache@^4.0.3: + version "4.1.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +make-dir@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" + integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== + dependencies: + pify "^3.0.0" + +matcher@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/matcher/-/matcher-2.0.0.tgz#85fe38d97670dbd2a46590cf099401e2ffb4755c" + integrity sha512-nlmfSlgHBFx36j/Pl/KQPbIaqE8Zf0TqmSMjsuddHDg6PMSVgmyW9HpkLs0o0M1n2GIZ/S2BZBLIww/xjhiGng== + dependencies: + escape-string-regexp "^2.0.0" + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + +media-typer@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-1.1.0.tgz#6ab74b8f2d3320f2064b2a87a38e7931ff3a5561" + integrity sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw== + +memorystore@1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/memorystore/-/memorystore-1.6.1.tgz#c1df4e6892f303a7782537a4e1a49e4ec1d8ed53" + integrity sha512-rYRjVukgBR9sptGI3IfpAjZc4SkupddhAenUhPTGprnqM8Qh863PxfXxXWlfvHpMIAkJCok28Bm7ZlOKB4U+MA== + dependencies: + debug "3.1.0" + lru-cache "^4.0.3" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + +mime-db@1.40.0: + version "1.40.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" + integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA== + +"mime-db@>= 1.40.0 < 2": + version "1.42.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.42.0.tgz#3e252907b4c7adb906597b4b65636272cf9e7bac" + integrity sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ== + +mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24: + version "2.1.24" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" + integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ== + dependencies: + mime-db "1.40.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mime@2.4.4, mime@^2.4.4: + version "2.4.4" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5" + integrity sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA== + +mimic-response@^1.0.0, mimic-response@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + +minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= + +minimist@^1.1.0, minimist@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= + +minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" + integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== + dependencies: + safe-buffer "^5.1.2" + yallist "^3.0.0" + +minizlib@^1.2.1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" + integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== + dependencies: + minipass "^2.9.0" + +mkdirp@0.5.1, mkdirp@^0.5.0, mkdirp@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= + dependencies: + minimist "0.0.8" + +moment-timezone@^0.5.x: + version "0.5.27" + resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.27.tgz#73adec8139b6fe30452e78f210f27b1f346b8877" + integrity sha512-EIKQs7h5sAsjhPCqN6ggx6cEbs94GK050254TIJySD1bzoM5JTYDwAU1IoVOeTOL6Gm27kYJ51/uuvq1kIlrbw== + dependencies: + moment ">= 2.9.0" + +"moment@>= 2.9.0": + version "2.24.0" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" + integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg== + +mqtt-packet@^5.6.0: + version "5.6.1" + resolved "https://registry.yarnpkg.com/mqtt-packet/-/mqtt-packet-5.6.1.tgz#8ecafce091f5af460664268a22b22091c8915f7b" + integrity sha512-eaF9rO2uFrIYEHomJxziuKTDkbWW5psLBaIGCazQSKqYsTaB3n4SpvJ1PexKaDBiPnMLPIFWBIiTYT3IfEJfww== + dependencies: + bl "^1.2.1" + inherits "^2.0.3" + process-nextick-args "^2.0.0" + safe-buffer "^5.1.0" + +mqtt@2.18.8: + version "2.18.8" + resolved "https://registry.yarnpkg.com/mqtt/-/mqtt-2.18.8.tgz#9d213ccab92151accfb21ee8c0860dc6866ab259" + integrity sha512-3h6oHlPY/yWwtC2J3geraYRtVVoRM6wdI+uchF4nvSSafXPZnaKqF8xnX+S22SU/FcgEAgockVIlOaAX3fkMpA== + dependencies: + commist "^1.0.0" + concat-stream "^1.6.2" + end-of-stream "^1.4.1" + es6-map "^0.1.5" + help-me "^1.0.1" + inherits "^2.0.3" + minimist "^1.2.0" + mqtt-packet "^5.6.0" + pump "^3.0.0" + readable-stream "^2.3.6" + reinterval "^1.1.0" + split2 "^2.1.1" + websocket-stream "^5.1.2" + xtend "^4.0.1" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + +ms@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +multer@1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/multer/-/multer-1.4.2.tgz#2f1f4d12dbaeeba74cb37e623f234bf4d3d2057a" + integrity sha512-xY8pX7V+ybyUpbYMxtjM9KAiD9ixtg5/JkeKUTD6xilfDv0vzzOFcCp4Ljb1UU3tSOM3VTZtKo63OmzOrGi3Cg== + dependencies: + append-field "^1.0.0" + busboy "^0.2.11" + concat-stream "^1.5.2" + mkdirp "^0.5.1" + object-assign "^4.1.1" + on-finished "^2.3.0" + type-is "^1.6.4" + xtend "^4.0.0" + +mustache@3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/mustache/-/mustache-3.0.2.tgz#35bb886a1e5baad0a8f192258fe9a904f711868c" + integrity sha512-64neoEgmozb8e/ecGBOSE+RfnevLSFzCI0UKPcrWmjv953/8fXhYO9+EQFtfbi6hwoFxcTA+Fp5mRiOiI9eTuA== + +nan@2.13.2: + version "2.13.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.13.2.tgz#f51dc7ae66ba7d5d55e1e6d4d8092e802c9aefe7" + integrity sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw== + +needle@^2.2.1: + version "2.4.0" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c" + integrity sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg== + dependencies: + debug "^3.2.6" + iconv-lite "^0.4.4" + sax "^1.2.4" + +negotiator@0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== + +next-tick@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" + integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= + +node-pre-gyp@0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149" + integrity sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A== + dependencies: + detect-libc "^1.0.2" + mkdirp "^0.5.1" + needle "^2.2.1" + nopt "^4.0.1" + npm-packlist "^1.1.6" + npmlog "^4.0.2" + rc "^1.2.7" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^4" + +node-red-contrib-play-audio@*: + version "2.3.2" + resolved "https://registry.yarnpkg.com/node-red-contrib-play-audio/-/node-red-contrib-play-audio-2.3.2.tgz#f84d10aa03758d42b28167d41bdc0b0d2f4267d2" + integrity sha512-/IgV7Skw3NBXNJ2KFqE6wzLJtPrfqBy9nKka0fCofA26eG0RXv0vjS1IpYa3QgQZD9YFMVIcbC0a9HlFK/wY+Q== + +node-red-contrib-web-worldmap@*: + version "2.1.4" + resolved "https://registry.yarnpkg.com/node-red-contrib-web-worldmap/-/node-red-contrib-web-worldmap-2.1.4.tgz#aedf1cdfc34f3a145b314b97260aea060be15764" + integrity sha512-xFzAVgjW+qg3syO0diWvQNtgxzJlxy8iLVy0nnJZssF6dC/tTU6e4rmJDDMkEoDz1XM6vEwhRzhgpHr9E5ak3Q== + dependencies: + cgi "0.3.1" + compression "^1.7.4" + express "^4.16.4" + sockjs "^0.3.19" + +node-red-dashboard@*: + version "2.17.1" + resolved "https://registry.yarnpkg.com/node-red-dashboard/-/node-red-dashboard-2.17.1.tgz#e029dcebb02efb0d1693fff3c8c7922213a623ad" + integrity sha512-Qffw6p2ZV10PMDNPFXvuC9CKUu+vv6MMiYcXRSG62yS+4qk11zvAODIW1XelOw9X1H9k7q9E4v0f1iWtfSjL+w== + dependencies: + compression "^1.7.4" + serve-static "^1.14.1" + socket.io "^2.2.0" + +node-red-node-base64@*: + version "0.1.3" + resolved "https://registry.yarnpkg.com/node-red-node-base64/-/node-red-node-base64-0.1.3.tgz#b3d6adb97f57959f91f6177ccdc6165593646ef0" + integrity sha512-0KlJDMur9tfnHwC7anlM9gYPjCMLsGVjRuvWSQssdGDibxIgpZDJ/0IuHIM3CAcEPaetlk4P0yj0XtH9Rgda0w== + +node-red-node-geofence@*: + version "0.1.2" + resolved "https://registry.yarnpkg.com/node-red-node-geofence/-/node-red-node-geofence-0.1.2.tgz#3cdc0f409ba62e06e281c1c66c51209d36c1ee37" + integrity sha512-uAjTT54ZATPi7yDr/sztxcFCWGP1rtN3UIyI8uVG2QxagoG31xqzrc6EN1YbYrx2U10bHI//JJfXk3A0RiR+OQ== + dependencies: + geolib "^2.0.0" + +node-red-node-random@*: + version "0.1.4" + resolved "https://registry.yarnpkg.com/node-red-node-random/-/node-red-node-random-0.1.4.tgz#543a6ce1f9137d59aa845857f1877e088dfd7f44" + integrity sha512-UKgX5+6HgRagXcfpjeMn4vyB+QYQfhBFS8oXx0UBScqOveHWqpp2ASX8LIJWQ2uHHvRq+Nisa+mvv6AELXqbRw== + +node-red-node-rbe@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/node-red-node-rbe/-/node-red-node-rbe-0.2.5.tgz#dd43f4efaa68b1d10609e289a8379d5a7afb8b52" + integrity sha512-WPwIOZIdDprgfqOe8bEun47wkFFc+5Uw/1w3O/kZn/kS2IpI1q+wijUDK+Hw8q4d8KgA58B30wh+10UvXzsPDA== + +node-red-node-smooth@*: + version "0.1.2" + resolved "https://registry.yarnpkg.com/node-red-node-smooth/-/node-red-node-smooth-0.1.2.tgz#0dc7ae9d235e41ac2a13709e53c2cd093ab4871a" + integrity sha512-IpEOSOvz7UvkiOFQN4kIiv1Z6sxrRgbILG6IFR0CD/e1m0cK4iRsXpTi1Lofr+eiVQ0HaKXuZ2zIayPAIEFm0w== + +node-red-node-tail@^0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/node-red-node-tail/-/node-red-node-tail-0.0.3.tgz#91f9d44a557bbf671cfe8be4001ae229fdf60d23" + integrity sha512-wEiT7bSeU9oVHPK7S+mHb3cR6cIf9l205wTiHzhnUAuoDJS+IdwQkkpFgKTYmkL4Py2LvqCU90h85YpQul7QFQ== + dependencies: + tail "^2.0.2" + +node-red@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/node-red/-/node-red-1.0.2.tgz#d9055901603b1067c5e0cc110fb1eac0c8338f18" + integrity sha512-QSyPpAGGVFgVlKyumWFd8j2hd420+sh8DSxlvAtatDVaIG3+MaAD3eDLg49HIwRyAhiROVS1XNWkqyq/H1/cBA== + dependencies: + "@node-red/editor-api" "1.0.2" + "@node-red/nodes" "1.0.2" + "@node-red/runtime" "1.0.2" + "@node-red/util" "1.0.2" + basic-auth "2.0.1" + bcryptjs "2.4.3" + express "4.17.1" + fs-extra "8.1.0" + node-red-node-rbe "^0.2.5" + node-red-node-tail "^0.0.3" + nopt "4.0.1" + semver "6.3.0" + optionalDependencies: + bcrypt "3.0.6" + +nopt@4.0.1, nopt@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= + dependencies: + abbrev "1" + osenv "^0.1.4" + +normalize-package-data@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-url@^4.1.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" + integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== + +npm-bundled@^1.0.1: + version "1.0.6" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd" + integrity sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g== + +npm-conf@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/npm-conf/-/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9" + integrity sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw== + dependencies: + config-chain "^1.1.11" + pify "^3.0.0" + +npm-packlist@^1.1.6: + version "1.4.6" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.6.tgz#53ba3ed11f8523079f1457376dd379ee4ea42ff4" + integrity sha512-u65uQdb+qwtGvEJh/DgQgW1Xg7sqeNbmxYyrvlNznaVTjV3E5P6F/EFjM+BVHXl7JJlsdG8A64M0XI8FI/IOlg== + dependencies: + ignore-walk "^3.0.1" + npm-bundled "^1.0.1" + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + dependencies: + path-key "^2.0.0" + +npmlog@^4.0.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +nth-check@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== + dependencies: + boolbase "~1.0.0" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +oauth2orize@1.11.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/oauth2orize/-/oauth2orize-1.11.0.tgz#793cef251d45ebdeac32ae40a8b6814faab1d483" + integrity sha1-eTzvJR1F696sMq5AqLaBT6qx1IM= + dependencies: + debug "2.x.x" + uid2 "0.0.x" + utils-merge "1.x.x" + +object-assign@^4, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-component@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" + integrity sha1-8MaapQ78lbhmwYb0AKM3acsvEpE= + +object-keys@^1.0.12: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +on-finished@^2.3.0, on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + +on-headers@1.0.2, on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +ordered-read-streams@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz#77c0cb37c41525d64166d990ffad7ec6a0e1363e" + integrity sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4= + dependencies: + readable-stream "^2.0.1" + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= + +os-tmpdir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + +osenv@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +p-cancelable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" + integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + +p-limit@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.1.tgz#aa07a788cc3151c939b5131f63570f0dd2009537" + integrity sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg== + dependencies: + p-try "^2.0.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +package-json@^6.3.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" + integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== + dependencies: + got "^9.6.0" + registry-auth-token "^4.0.0" + registry-url "^5.0.0" + semver "^6.2.0" + +parseqs@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" + integrity sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0= + dependencies: + better-assert "~1.0.0" + +parseuri@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" + integrity sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo= + dependencies: + better-assert "~1.0.0" + +parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +passport-http-bearer@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/passport-http-bearer/-/passport-http-bearer-1.0.1.tgz#147469ea3669e2a84c6167ef99dbb77e1f0098a8" + integrity sha1-FHRp6jZp4qhMYWfvmdu3fh8AmKg= + dependencies: + passport-strategy "1.x.x" + +passport-oauth2-client-password@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/passport-oauth2-client-password/-/passport-oauth2-client-password-0.1.2.tgz#4f378b678b92d16dbbd233a6c706520093e561ba" + integrity sha1-TzeLZ4uS0W270jOmxwZSAJPlYbo= + dependencies: + passport-strategy "1.x.x" + +passport-strategy@1.x.x: + version "1.0.0" + resolved "https://registry.yarnpkg.com/passport-strategy/-/passport-strategy-1.0.0.tgz#b5539aa8fc225a3d1ad179476ddf236b440f52e4" + integrity sha1-tVOaqPwiWj0a0XlHbd8ja0QPUuQ= + +passport@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/passport/-/passport-0.4.0.tgz#c5095691347bd5ad3b5e180238c3914d16f05811" + integrity sha1-xQlWkTR71a07XhgCOMORTRbwWBE= + dependencies: + passport-strategy "1.x.x" + pause "0.0.1" + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-is-inside@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= + +path-key@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + +path-parse@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + +pause@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/pause/-/pause-0.0.1.tgz#1d408b3fdb76923b9543d96fb4c9dfd535d9cb5d" + integrity sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10= + +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + +prepend-http@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" + integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= + +process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= + +proxy-addr@~2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.5.tgz#34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34" + integrity sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ== + dependencies: + forwarded "~0.1.2" + ipaddr.js "1.9.0" + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= + +psl@^1.1.24: + version "1.4.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.4.0.tgz#5dd26156cdb69fa1fdb8ab1991667d3f80ced7c2" + integrity sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw== + +pump@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pumpify@^1.3.5: + version "1.5.1" + resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" + integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== + dependencies: + duplexify "^3.6.0" + inherits "^2.0.3" + pump "^2.0.0" + +punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= + +punycode@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +qs@6.7.0: + version "6.7.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== + +qs@~6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== + +random-bytes@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/random-bytes/-/random-bytes-1.0.0.tgz#4f68a1dc0ae58bd3fb95848c30324db75d64360b" + integrity sha1-T2ih3Arli9P7lYSMMDJNt11kNgs= + +range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" + integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== + dependencies: + bytes "3.1.0" + http-errors "1.7.2" + iconv-lite "0.4.24" + unpipe "1.0.0" + +raw-body@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.1.tgz#30ac82f98bb5ae8c152e67149dac8d55153b168c" + integrity sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA== + dependencies: + bytes "3.1.0" + http-errors "1.7.3" + iconv-lite "0.4.24" + unpipe "1.0.0" + +rc@^1.2.7, rc@^1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +read-config-file@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/read-config-file/-/read-config-file-5.0.0.tgz#1487c983fae9c1b672d3acda5cac899a2d451f02" + integrity sha512-jIKUu+C84bfnKxyJ5j30CxCqgXWYjZLXuVE/NYlMEpeni+dhESgAeZOZd0JZbg1xTkMmnCdxksDoarkOyfEsOg== + dependencies: + dotenv "^8.0.0" + dotenv-expand "^5.1.0" + fs-extra "^8.1.0" + js-yaml "^3.13.1" + json5 "^2.1.0" + lazy-val "^1.0.4" + +readable-stream@1.1.x: + version "1.1.14" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk= + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +"readable-stream@> 1.0.0 < 3.0.0", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6: + version "2.3.6" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" + integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.1.1: + version "3.4.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc" + integrity sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +regenerator-runtime@^0.13.2: + version "0.13.3" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz#7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5" + integrity sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw== + +registry-auth-token@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.0.0.tgz#30e55961eec77379da551ea5c4cf43cbf03522be" + integrity sha512-lpQkHxd9UL6tb3k/aHAVfnVtn+Bcs9ob5InuFLLEDqSqeq+AljB8GZW9xY0x7F+xYwEcjKe07nyoxzEYz6yvkw== + dependencies: + rc "^1.2.8" + safe-buffer "^5.0.1" + +registry-url@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" + integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== + dependencies: + rc "^1.2.8" + +reinterval@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/reinterval/-/reinterval-1.1.0.tgz#3361ecfa3ca6c18283380dd0bb9546f390f5ece7" + integrity sha1-M2Hs+jymwYKDOA3Qu5VG85D17Oc= + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + +request@2.88.0: + version "2.88.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" + integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.0" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.4.3" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +resolve@^1.10.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6" + integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w== + dependencies: + path-parse "^1.0.6" + +responselike@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" + integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= + dependencies: + lowercase-keys "^1.0.0" + +retry@~0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.6.1.tgz#fdc90eed943fde11b893554b8cc63d0e899ba918" + integrity sha1-/ckO7ZQ/3hG4k1VLjMY9DombqRg= + +rimraf@^2.6.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +roarr@^2.14.2: + version "2.14.2" + resolved "https://registry.yarnpkg.com/roarr/-/roarr-2.14.2.tgz#49a51bfe1fd6a399c061f4e5a710e02da8b88ac7" + integrity sha512-ibqv70DCUhGVMfPe0JSUHBZ9PKLhxdk8VJ/Y2M7vVr+L4VakW1CdVTU9cJQBbM2STQa84CgBAzd7hJGcnALGeg== + dependencies: + boolean "^2.0.2" + detect-node "^2.0.4" + globalthis "^1.0.0" + json-stringify-safe "^5.0.1" + semver-compare "^1.0.0" + sprintf-js "^1.1.2" + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" + integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== + +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sanitize-filename@^1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz#755ebd752045931977e30b2025d340d7c9090378" + integrity sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg== + dependencies: + truncate-utf8-bytes "^1.0.0" + +sax@>=0.6.0, sax@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +semver-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" + integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= + +semver-diff@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" + integrity sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY= + dependencies: + semver "^5.0.3" + +"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.3.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@6.3.0, semver@^6.2.0, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +send@0.17.1: + version "0.17.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" + integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.7.2" + mime "1.6.0" + ms "2.1.1" + on-finished "~2.3.0" + range-parser "~1.2.1" + statuses "~1.5.0" + +serialize-error@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-5.0.0.tgz#a7ebbcdb03a5d71a6ed8461ffe0fc1a1afed62ac" + integrity sha512-/VtpuyzYf82mHYTtI4QKtwHa79vAdU5OQpNPAmE/0UDdlGT0ZxHwC+J6gXkw29wwoVI8fMPsfcVHOwXtUQYYQA== + dependencies: + type-fest "^0.8.0" + +serve-static@1.14.1, serve-static@^1.14.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" + integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.17.1" + +set-blocking@^2.0.0, set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + dependencies: + shebang-regex "^1.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= + +socket.io-adapter@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz#2a805e8a14d6372124dd9159ad4502f8cb07f06b" + integrity sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs= + +socket.io-client@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.3.0.tgz#14d5ba2e00b9bcd145ae443ab96b3f86cbcc1bb4" + integrity sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA== + dependencies: + backo2 "1.0.2" + base64-arraybuffer "0.1.5" + component-bind "1.0.0" + component-emitter "1.2.1" + debug "~4.1.0" + engine.io-client "~3.4.0" + has-binary2 "~1.0.2" + has-cors "1.1.0" + indexof "0.0.1" + object-component "0.0.3" + parseqs "0.0.5" + parseuri "0.0.5" + socket.io-parser "~3.3.0" + to-array "0.1.4" + +socket.io-parser@~3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.0.tgz#2b52a96a509fdf31440ba40fed6094c7d4f1262f" + integrity sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng== + dependencies: + component-emitter "1.2.1" + debug "~3.1.0" + isarray "2.0.1" + +socket.io-parser@~3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.4.0.tgz#370bb4a151df2f77ce3345ff55a7072cc6e9565a" + integrity sha512-/G/VOI+3DBp0+DJKW4KesGnQkQPFmUCbA/oO2QGT6CWxU7hLGWqU3tyuzeSK/dqcyeHsQg1vTe9jiZI8GU9SCQ== + dependencies: + component-emitter "1.2.1" + debug "~4.1.0" + isarray "2.0.1" + +socket.io@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.3.0.tgz#cd762ed6a4faeca59bc1f3e243c0969311eb73fb" + integrity sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg== + dependencies: + debug "~4.1.0" + engine.io "~3.4.0" + has-binary2 "~1.0.2" + socket.io-adapter "~1.1.0" + socket.io-client "2.3.0" + socket.io-parser "~3.4.0" + +sockjs@^0.3.19: + version "0.3.19" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.19.tgz#d976bbe800af7bd20ae08598d582393508993c0d" + integrity sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw== + dependencies: + faye-websocket "^0.10.0" + uuid "^3.0.1" + +source-map-support@^0.5.13: + version "0.5.13" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" + integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +spdx-correct@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" + integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" + integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA== + +spdx-expression-parse@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" + integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.5" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" + integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== + +split2@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/split2/-/split2-2.2.0.tgz#186b2575bcf83e85b7d18465756238ee4ee42493" + integrity sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw== + dependencies: + through2 "^2.0.2" + +sprintf-js@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" + integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +sshpk@^1.7.0: + version "1.16.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +stat-mode@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/stat-mode/-/stat-mode-0.3.0.tgz#69283b081f851582b328d2a4ace5f591ce52f54b" + integrity sha512-QjMLR0A3WwFY2aZdV0okfFEJB5TRjkggXZjxP3A1RsWsNHNu3YPv8btmtc6iCFZ0Rul3FE93OYogvhOUClU+ng== + +"statuses@>= 1.5.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +stream-shift@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" + integrity sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI= + +"stream-stack@>= 1.1.1", stream-stack@~1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/stream-stack/-/stream-stack-1.1.4.tgz#70846042bab0185008e509edfe1f77f9361cba69" + integrity sha1-cIRgQrqwGFAI5Qnt/h93+TYcumk= + +streamsearch@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" + integrity sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo= + +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +"string-width@^1.0.2 || 2", string-width@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string-width@^3.0.0, string-width@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + dependencies: + ansi-regex "^3.0.0" + +strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + +sumchecker@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-3.0.0.tgz#da5457b4605184575c76540e5e99cc777cb8ce4c" + integrity sha512-yreseuC/z4iaodVoq07XULEOO9p4jnQazO7mbrnDSvWAU/y2cbyIKs+gWJptfcGu9R+1l27K8Rkj0bfvqnBpgQ== + dependencies: + debug "^4.1.0" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +tail@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/tail/-/tail-2.0.3.tgz#37567adc4624a70b35f1d146c3376fa3d6ef7c04" + integrity sha512-s9NOGkLqqiDEtBttQZI7acLS8ycYK5sTlDwNjGnpXG9c8AWj0cfAtwEIzo/hVRMMiC5EYz+bXaJWC1u1u0GPpQ== + +tar@^4: + version "4.4.13" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" + integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== + dependencies: + chownr "^1.1.1" + fs-minipass "^1.2.5" + minipass "^2.8.6" + minizlib "^1.2.1" + mkdirp "^0.5.0" + safe-buffer "^5.1.2" + yallist "^3.0.3" + +temp-file@^3.3.4: + version "3.3.4" + resolved "https://registry.yarnpkg.com/temp-file/-/temp-file-3.3.4.tgz#73af868cd7cb7400a44e4bb03e653b2280ce2878" + integrity sha512-qSZ5W5q54iyGnP8cNl49RE0jTJc5CrzNocux5APD5yIxcgonoMuMSbsZfaZy8rTGCYo0Xz6ySVv3adagZ8gffg== + dependencies: + async-exit-hook "^2.0.1" + fs-extra "^8.1.0" + +term-size@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" + integrity sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk= + dependencies: + execa "^0.7.0" + +through2-filter@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-3.0.0.tgz#700e786df2367c2c88cd8aa5be4cf9c1e7831254" + integrity sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA== + dependencies: + through2 "~2.0.0" + xtend "~4.0.0" + +through2@^2.0.1, through2@^2.0.2, through2@~2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +to-absolute-glob@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz#1865f43d9e74b0822db9f145b78cff7d0f7c849b" + integrity sha1-GGX0PZ50sIItufFFt4z/fQ98hJs= + dependencies: + is-absolute "^1.0.0" + is-negated-glob "^1.0.0" + +to-array@0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" + integrity sha1-F+bBH3PdTz10zaek/zI46a2b+JA= + +to-readable-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" + integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== + +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + +tough-cookie@~2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" + integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ== + dependencies: + psl "^1.1.24" + punycode "^1.4.1" + +truncate-utf8-bytes@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b" + integrity sha1-QFkjkJWS1W94pYGENLC3hInKXys= + dependencies: + utf8-byte-length "^1.0.1" + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + dependencies: + safe-buffer "^5.0.1" + +tunnel@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" + integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + +type-fest@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1" + integrity sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ== + +type-fest@^0.8.0: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +type-is@^1.6.4, type-is@~1.6.17, type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +type@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" + integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + +uglify-js@3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.6.0.tgz#704681345c53a8b2079fb6cec294b05ead242ff5" + integrity sha512-W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg== + dependencies: + commander "~2.20.0" + source-map "~0.6.1" + +uid-safe@~2.1.5: + version "2.1.5" + resolved "https://registry.yarnpkg.com/uid-safe/-/uid-safe-2.1.5.tgz#2b3d5c7240e8fc2e58f8aa269e5ee49c0857bd3a" + integrity sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA== + dependencies: + random-bytes "~1.0.0" + +uid2@0.0.x: + version "0.0.3" + resolved "https://registry.yarnpkg.com/uid2/-/uid2-0.0.3.tgz#483126e11774df2f71b8b639dcd799c376162b82" + integrity sha1-SDEm4Rd03y9xuLY53NeZw3YWK4I= + +ultron@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" + integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og== + +unc-path-regex@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" + integrity sha1-5z3T17DXxe2G+6xrCufYxqadUPo= + +unique-stream@^2.0.2: + version "2.3.1" + resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.3.1.tgz#c65d110e9a4adf9a6c5948b28053d9a8d04cbeac" + integrity sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A== + dependencies: + json-stable-stringify-without-jsonify "^1.0.1" + through2-filter "^3.0.0" + +unique-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" + integrity sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo= + dependencies: + crypto-random-string "^1.0.0" + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + +update-notifier@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-3.0.1.tgz#78ecb68b915e2fd1be9f767f6e298ce87b736250" + integrity sha512-grrmrB6Zb8DUiyDIaeRTBCkgISYUgETNe7NglEbVsrLWXeESnlCSP50WfRSj/GmzMPl6Uchj24S/p80nP/ZQrQ== + dependencies: + boxen "^3.0.0" + chalk "^2.0.1" + configstore "^4.0.0" + has-yarn "^2.1.0" + import-lazy "^2.1.0" + is-ci "^2.0.0" + is-installed-globally "^0.1.0" + is-npm "^3.0.0" + is-yarn-global "^0.3.0" + latest-version "^5.0.0" + semver-diff "^2.0.0" + xdg-basedir "^3.0.0" + +uri-js@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + dependencies: + punycode "^2.1.0" + +url-parse-lax@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" + integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= + dependencies: + prepend-http "^2.0.0" + +utf8-byte-length@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61" + integrity sha1-9F8VDExm7uloGGUFq5P8u4rWv2E= + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +utils-merge@1.0.1, utils-merge@1.x.x: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + +uuid@^3.0.1, uuid@^3.3.2: + version "3.3.3" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866" + integrity sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ== + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +vary@^1, vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +websocket-driver@>=0.5.1: + version "0.7.3" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.3.tgz#a2d4e0d4f4f116f1e6297eba58b05d430100e9f9" + integrity sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg== + dependencies: + http-parser-js ">=0.4.0 <0.4.11" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" + integrity sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg== + +websocket-stream@^5.1.2: + version "5.5.0" + resolved "https://registry.yarnpkg.com/websocket-stream/-/websocket-stream-5.5.0.tgz#9827f2846fc0d2b4dca7aab8f92980b2548b868e" + integrity sha512-EXy/zXb9kNHI07TIMz1oIUIrPZxQRA8aeJ5XYg5ihV8K4kD1DuA+FY6R96HfdIHzlSzS8HiISAfrm+vVQkZBug== + dependencies: + duplexify "^3.5.1" + inherits "^2.0.1" + readable-stream "^2.3.3" + safe-buffer "^5.1.2" + ws "^3.2.0" + xtend "^4.0.0" + +when@3.7.8: + version "3.7.8" + resolved "https://registry.yarnpkg.com/when/-/when-3.7.8.tgz#c7130b6a7ea04693e842cdc9e7a1f2aa39a39f82" + integrity sha1-xxMLan6gRpPoQs3J56Hyqjmjn4I= + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + +which@^1.2.9: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +wide-align@^1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== + dependencies: + string-width "^1.0.2 || 2" + +widest-line@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc" + integrity sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA== + dependencies: + string-width "^2.1.1" + +wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== + dependencies: + ansi-styles "^3.2.0" + string-width "^3.0.0" + strip-ansi "^5.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +write-file-atomic@^2.0.0: + version "2.4.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" + integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + signal-exit "^3.0.2" + +ws@6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" + integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== + dependencies: + async-limiter "~1.0.0" + +ws@^3.2.0: + version "3.3.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" + integrity sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA== + dependencies: + async-limiter "~1.0.0" + safe-buffer "~5.1.0" + ultron "~1.1.0" + +ws@^7.1.2: + version "7.2.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.2.0.tgz#422eda8c02a4b5dba7744ba66eebbd84bcef0ec7" + integrity sha512-+SqNqFbwTm/0DC18KYzIsMTnEWpLwJsiasW/O17la4iDRRIO9uaHbvKiAS3AHgTiuuWerK/brj4O6MYZkei9xg== + dependencies: + async-limiter "^1.0.0" + +ws@~6.1.0: + version "6.1.4" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.4.tgz#5b5c8800afab925e94ccb29d153c8d02c1776ef9" + integrity sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA== + dependencies: + async-limiter "~1.0.0" + +xdg-basedir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" + integrity sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ= + +xml2js@0.4.19: + version "0.4.19" + resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7" + integrity sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q== + dependencies: + sax ">=0.6.0" + xmlbuilder "~9.0.1" + +xmlbuilder@~9.0.1: + version "9.0.7" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" + integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0= + +xmlhttprequest-ssl@~1.5.4: + version "1.5.5" + resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e" + integrity sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4= + +xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" + integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= + +yallist@^3.0.0, yallist@^3.0.3: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yargs-parser@^13.1.1: + version "13.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0" + integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs@^13.3.0: + version "13.3.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.0.tgz#4c657a55e07e5f2cf947f8a366567c04a0dedc83" + integrity sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA== + dependencies: + cliui "^5.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.1.1" + +yauzl@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005" + integrity sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU= + dependencies: + fd-slicer "~1.0.1" + +yeast@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" + integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk= From f5d54641e1b5bd743b71c3808731a6567b47d06e Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Sun, 3 Nov 2019 23:05:04 +0000 Subject: [PATCH 054/127] Update package.json --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index ae60d26..d5f8ff0 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ "scripts": { "pack": "electron-builder --dir", "dist": "electron-builder", + "release": "build", "postinstall": "electron-builder install-app-deps", "start": "electron main.js", "test": "echo \" Warning: no test specified \"" From 86c5dbf0c9580185db5f101387d94f7530a8889c Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Sun, 3 Nov 2019 23:09:24 +0000 Subject: [PATCH 055/127] Update package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d5f8ff0..ee9ea78 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "scripts": { "pack": "electron-builder --dir", "dist": "electron-builder", - "release": "build", + "release": "electron-builder build -p always", "postinstall": "electron-builder install-app-deps", "start": "electron main.js", "test": "echo \" Warning: no test specified \"" From 9ee8e99d6ba734b27fb0616caca253715adfcb64 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Sun, 3 Nov 2019 23:34:46 +0000 Subject: [PATCH 056/127] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 72a05d0..517188c 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Electron Node-RED [![GitHub version](https://badge.fury.io/gh/dceejay%2Felectron-node-red.svg)](https://badge.fury.io/gh/dceejay%2Felectron-node-red) -[![GitHub license](https://github.com/dceejay/electron-node-red/blob/master/LICENSE)](https://img.shields.io/github/license/dceejay/electron-node-red.svg) +[![GitHub license](https://img.shields.io/github/license/dceejay/electron-node-red.svg)](https://github.com/dceejay/electron-node-red/blob/master/LICENSE) This is an Electron template to embed [Node-RED](https://nodered.org) with a Dashboard generated by node-red-dashboard to create a native application. From bdf2fa72edd81f46c8e3e635c8a2fb3165678345 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Sun, 3 Nov 2019 23:38:05 +0000 Subject: [PATCH 057/127] Update package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ee9ea78..578d00d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "electron_node_red", - "version": "1.0.2", + "version": "1.0.2a", "description": "Electron Node-RED application starter kit for development", "main": "main.js", "scripts": { From cda3021aac91da4e5a5a4be7bbef3679e40f25d3 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Sun, 3 Nov 2019 23:38:39 +0000 Subject: [PATCH 058/127] Update package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 578d00d..e96c7a8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "electron_node_red", - "version": "1.0.2a", + "version": "1.0.2-1", "description": "Electron Node-RED application starter kit for development", "main": "main.js", "scripts": { From aedae4318868987728aec094e3a329d424f8e313 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Sun, 3 Nov 2019 23:49:57 +0000 Subject: [PATCH 059/127] Update package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index e96c7a8..ee9ea78 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "electron_node_red", - "version": "1.0.2-1", + "version": "1.0.2", "description": "Electron Node-RED application starter kit for development", "main": "main.js", "scripts": { From ef2bfd29a8f01107516626e4f7761df3caccf377 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Mon, 4 Nov 2019 00:08:43 +0000 Subject: [PATCH 060/127] Update package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ee9ea78..66ffbeb 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "homepage": "https://github.com/dceejay/electron-node-red#readme", "devDependencies": { "electron": "^7.0.1", - "electron-builder": "^21.2.0" + "electron-builder": "^22.1.0" }, "build": { "npmRebuild": false, From 8717b0b258b3a85dfe3f0488b9f83080882543c7 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Mon, 4 Nov 2019 08:35:40 +0000 Subject: [PATCH 061/127] Update yarn.lock --- yarn.lock | 146 +++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 117 insertions(+), 29 deletions(-) diff --git a/yarn.lock b/yarn.lock index 5bf1a92..87b9b38 100644 --- a/yarn.lock +++ b/yarn.lock @@ -144,7 +144,7 @@ dependencies: defer-to-connect "^1.0.1" -"@types/debug@^4.1.4": +"@types/debug@^4.1.4", "@types/debug@^4.1.5": version "4.1.5" resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.5.tgz#b14efa8852b7768d898906613c23f688713e02cd" integrity sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ== @@ -228,7 +228,40 @@ app-builder-bin@3.4.3: resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.4.3.tgz#58a74193eb882f029be6b7f0cd3f0c6805927a6b" integrity sha512-qMhayIwi3juerQEVJMQ76trObEbfQT0nhUdxZz9a26/3NLT3pE6awmQ8S1cEnrGugaaM5gYqR8OElcDezfmEsg== -app-builder-lib@21.2.0, app-builder-lib@~21.2.0: +app-builder-bin@3.4.4: + version "3.4.4" + resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.4.4.tgz#6f244edb7bd5e482defc472ef0c15692b569f211" + integrity sha512-Xib+wgdK+8zZhbZr5pma3pNB23Y4JRY5Yt6h8peou6MTFSQzXdIkqalh/ezy9SMLuS43S4b0s7jTVAmUs8WVmA== + +app-builder-lib@22.1.0: + version "22.1.0" + resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.1.0.tgz#6df869d882406f34b4b02cab4c3ddb7926e420ec" + integrity sha512-jDTfWsVS/MePO4FexqiSQcsWM9Yfr81ETIYbmVbKmW05o0dn9k1DvMOMoLb0kTLQpW+pWBVvGMAOPfk68HnBrg== + dependencies: + "7zip-bin" "~5.0.3" + "@develar/schema-utils" "~2.1.0" + async-exit-hook "^2.0.1" + bluebird-lst "^1.0.9" + builder-util "22.1.0" + builder-util-runtime "8.4.0" + chromium-pickle-js "^0.2.0" + debug "^4.1.1" + ejs "^2.7.1" + electron-publish "22.1.0" + fs-extra "^8.1.0" + hosted-git-info "^3.0.0" + is-ci "^2.0.0" + isbinaryfile "^4.0.2" + js-yaml "^3.13.1" + lazy-val "^1.0.4" + minimatch "^3.0.4" + normalize-package-data "^2.5.0" + read-config-file "5.0.0" + sanitize-filename "^1.6.3" + semver "^6.3.0" + temp-file "^3.3.4" + +app-builder-lib@~21.2.0: version "21.2.0" resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-21.2.0.tgz#fa1d1604601431e2c3476857e9b9b61d33ad26cc" integrity sha512-aOX/nv77/Bti6NymJDg7p9T067xD8m1ipIEJR7B4Mm1GsJWpMm9PZdXtCRiMNRjHtQS5KIljT0g17781y6qn5A== @@ -483,6 +516,14 @@ builder-util-runtime@8.3.0: debug "^4.1.1" sax "^1.2.4" +builder-util-runtime@8.4.0: + version "8.4.0" + resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.4.0.tgz#3163fffc078e6b8f3dd5b6eb12a8345573590682" + integrity sha512-CJB/eKfPf2vHrkmirF5eicVnbDCkMBbwd5tRYlTlgud16zFeqD7QmrVUAOEXdnsrcNkiLg9dbuUsQKtl/AwsYQ== + dependencies: + debug "^4.1.1" + sax "^1.2.4" + builder-util@21.2.0, builder-util@~21.2.0: version "21.2.0" resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-21.2.0.tgz#aba721190e4e841009d9fb4b88f1130ed616522f" @@ -502,6 +543,25 @@ builder-util@21.2.0, builder-util@~21.2.0: stat-mode "^0.3.0" temp-file "^3.3.4" +builder-util@22.1.0, builder-util@~22.1.0: + version "22.1.0" + resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-22.1.0.tgz#2b33145d053778e95389d5aee659256ebdb1c2ca" + integrity sha512-BPvpWvxQ5XOzm2WepIgmOAyo2IyaM/Bd1LJmeTYy5CtknNAtxgmAPQJfCHCikMKKQA4Obz/KYecXQiGpGJ2ThA== + dependencies: + "7zip-bin" "~5.0.3" + "@types/debug" "^4.1.5" + app-builder-bin "3.4.4" + bluebird-lst "^1.0.9" + builder-util-runtime "8.4.0" + chalk "^2.4.2" + debug "^4.1.1" + fs-extra "^8.1.0" + is-ci "^2.0.0" + js-yaml "^3.13.1" + source-map-support "^0.5.13" + stat-mode "^0.3.0" + temp-file "^3.3.4" + busboy@^0.2.11: version "0.2.14" resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.2.14.tgz#6c2a622efcf47c57bbbe1e2a9c37ad36c7925453" @@ -1066,29 +1126,29 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -ejs@^2.6.2: +ejs@^2.6.2, ejs@^2.7.1: version "2.7.1" resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.1.tgz#5b5ab57f718b79d4aca9254457afecd36fa80228" integrity sha512-kS/gEPzZs3Y1rRsbGX4UOSjtP/CeJP0CxSNZHYxGfVM/VgLcv0ZqM7C45YyTj2DI2g7+P9Dd24C+IMIg6D0nYQ== -electron-builder@^21.2.0: - version "21.2.0" - resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-21.2.0.tgz#b68ec4def713fc0b8602654ce842f972432f50c5" - integrity sha512-x8EXrqFbAb2L3N22YlGar3dGh8vwptbB3ovo3OF6K7NTpcsmM2zEoJv7GhFyX73rNzSG2HaWpXwGAtOp2JWiEw== +electron-builder@^22.1.0: + version "22.1.0" + resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.1.0.tgz#65b23411e3c39a83b52743ed18980b97f8314d50" + integrity sha512-uu2W9BLG38D0i2PG6dHupmOYc+q/TRL+Ztf8xitqK+2Quq33PFbeN0ipfySuVEDg4I6whDRBOgxBEWwnUYqZZQ== dependencies: - app-builder-lib "21.2.0" + app-builder-lib "22.1.0" bluebird-lst "^1.0.9" - builder-util "21.2.0" - builder-util-runtime "8.3.0" + builder-util "22.1.0" + builder-util-runtime "8.4.0" chalk "^2.4.2" dmg-builder "21.2.0" fs-extra "^8.1.0" is-ci "^2.0.0" lazy-val "^1.0.4" read-config-file "5.0.0" - sanitize-filename "^1.6.2" + sanitize-filename "^1.6.3" update-notifier "^3.0.1" - yargs "^13.3.0" + yargs "^14.0.0" electron-publish@21.2.0: version "21.2.0" @@ -1103,6 +1163,19 @@ electron-publish@21.2.0: lazy-val "^1.0.4" mime "^2.4.4" +electron-publish@22.1.0: + version "22.1.0" + resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.1.0.tgz#730ee3801e47acdbb1c81ed7fc4ebc6b30d2a8aa" + integrity sha512-jHjMCaL2dFU+iOq8wW568F59+DW1jFJGT3vc2xqm9iXyZ8gWlQ+NVve4bq9HZG7m4iNqWbGw9StmZcOzmIBxMQ== + dependencies: + bluebird-lst "^1.0.9" + builder-util "~22.1.0" + builder-util-runtime "8.4.0" + chalk "^2.4.2" + fs-extra "^8.1.0" + lazy-val "^1.0.4" + mime "^2.4.4" + electron@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/electron/-/electron-7.0.1.tgz#6da2c07aa0513d3d156b5b027f317e0959261d43" @@ -1702,6 +1775,13 @@ hosted-git-info@^2.1.4, hosted-git-info@^2.7.1: resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.5.tgz#759cfcf2c4d156ade59b0b2dfabddc42a6b9c70c" integrity sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg== +hosted-git-info@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.2.tgz#8b7e3bd114b59b51786f8bade0f39ddc80275a97" + integrity sha512-ezZMWtHXm7Eb7Rq4Mwnx2vs79WUx2QmRg3+ZqeGroKzfDO+EprOcgRPYghsOP9JuYBfK18VojmRTGCg8Ma+ktw== + dependencies: + lru-cache "^5.1.1" + htmlparser2@^3.9.1: version "3.10.1" resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" @@ -2154,6 +2234,13 @@ lru-cache@^4.0.1, lru-cache@^4.0.3: pseudomap "^1.0.2" yallist "^2.1.2" +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + make-dir@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" @@ -2384,9 +2471,9 @@ node-pre-gyp@0.12.0: tar "^4" node-red-contrib-play-audio@*: - version "2.3.2" - resolved "https://registry.yarnpkg.com/node-red-contrib-play-audio/-/node-red-contrib-play-audio-2.3.2.tgz#f84d10aa03758d42b28167d41bdc0b0d2f4267d2" - integrity sha512-/IgV7Skw3NBXNJ2KFqE6wzLJtPrfqBy9nKka0fCofA26eG0RXv0vjS1IpYa3QgQZD9YFMVIcbC0a9HlFK/wY+Q== + version "2.4.0" + resolved "https://registry.yarnpkg.com/node-red-contrib-play-audio/-/node-red-contrib-play-audio-2.4.0.tgz#2b06021bf38705f0be050bca65e7663c73dfae2e" + integrity sha512-wI5d0M8FZoIECBL8KOb4DDSTs5/Y8INZgZom+zJCMVjmWbDbK9aP5OeK7xKJXSbFHA00jlva5IfNrr/z1tA5yw== node-red-contrib-web-worldmap@*: version "2.1.4" @@ -2408,9 +2495,9 @@ node-red-dashboard@*: socket.io "^2.2.0" node-red-node-base64@*: - version "0.1.3" - resolved "https://registry.yarnpkg.com/node-red-node-base64/-/node-red-node-base64-0.1.3.tgz#b3d6adb97f57959f91f6177ccdc6165593646ef0" - integrity sha512-0KlJDMur9tfnHwC7anlM9gYPjCMLsGVjRuvWSQssdGDibxIgpZDJ/0IuHIM3CAcEPaetlk4P0yj0XtH9Rgda0w== + version "0.2.0" + resolved "https://registry.yarnpkg.com/node-red-node-base64/-/node-red-node-base64-0.2.0.tgz#f14a0e44a0533cd08e66fd68356757167f7466d6" + integrity sha512-IqGJ+nA6g2DdejVsGg3t90139CdzMEpP8jNhiywQm8W/LDM1yNU64RvMh2ECi3T0GHMVdglWCWJETSCYlC/19Q== node-red-node-geofence@*: version "0.1.2" @@ -3028,7 +3115,7 @@ safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sanitize-filename@^1.6.2: +sanitize-filename@^1.6.2, sanitize-filename@^1.6.3: version "1.6.3" resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz#755ebd752045931977e30b2025d340d7c9090378" integrity sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg== @@ -3783,25 +3870,26 @@ yallist@^2.1.2: resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= -yallist@^3.0.0, yallist@^3.0.3: +yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: version "3.1.1" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== -yargs-parser@^13.1.1: - version "13.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0" - integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ== +yargs-parser@^15.0.0: + version "15.0.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-15.0.0.tgz#cdd7a97490ec836195f59f3f4dbe5ea9e8f75f08" + integrity sha512-xLTUnCMc4JhxrPEPUYD5IBR1mWCK/aT6+RJ/K29JY2y1vD+FhtgKK0AXRWvI262q3QSffAQuTouFIKUuHX89wQ== dependencies: camelcase "^5.0.0" decamelize "^1.2.0" -yargs@^13.3.0: - version "13.3.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.0.tgz#4c657a55e07e5f2cf947f8a366567c04a0dedc83" - integrity sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA== +yargs@^14.0.0: + version "14.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-14.2.0.tgz#f116a9242c4ed8668790b40759b4906c276e76c3" + integrity sha512-/is78VKbKs70bVZH7w4YaZea6xcJWOAwkhbR0CFuZBmYtfTYF0xjGJF43AYd8g2Uii1yJwmS5GR2vBmrc32sbg== dependencies: cliui "^5.0.0" + decamelize "^1.2.0" find-up "^3.0.0" get-caller-file "^2.0.1" require-directory "^2.1.1" @@ -3810,7 +3898,7 @@ yargs@^13.3.0: string-width "^3.0.0" which-module "^2.0.0" y18n "^4.0.0" - yargs-parser "^13.1.1" + yargs-parser "^15.0.0" yauzl@2.4.1: version "2.4.1" From 4f4be978b532ee8d3fe5ed51fd48a9a0e80c32fa Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Fri, 8 Nov 2019 23:28:17 +0000 Subject: [PATCH 062/127] bump electron version - add dmg installl bgnd --- build/background.png | Bin 0 -> 16649 bytes package.json | 5 +++-- yarn.lock | 8 ++++---- 3 files changed, 7 insertions(+), 6 deletions(-) create mode 100644 build/background.png diff --git a/build/background.png b/build/background.png new file mode 100644 index 0000000000000000000000000000000000000000..07192720f89e632443f3b5a58839b3231d739857 GIT binary patch literal 16649 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 HM^FD3Wy=|R literal 0 HcmV?d00001 diff --git a/package.json b/package.json index 66ffbeb..5970570 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ }, "homepage": "https://github.com/dceejay/electron-node-red#readme", "devDependencies": { - "electron": "^7.0.1", + "electron": "^7.1.1", "electron-builder": "^22.1.0" }, "build": { @@ -50,7 +50,8 @@ "productName": "Node-RED", "copyright": "Copyright © 2019 D.Conway-Jones", "mac": { - "category": "public.app-category.developer-tools" + "category": "public.app-category.developer-tools", + "target": "dmg" }, "linux": { "target": [ diff --git a/yarn.lock b/yarn.lock index 87b9b38..adb7738 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1176,10 +1176,10 @@ electron-publish@22.1.0: lazy-val "^1.0.4" mime "^2.4.4" -electron@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/electron/-/electron-7.0.1.tgz#6da2c07aa0513d3d156b5b027f317e0959261d43" - integrity sha512-eMFoZIO0+eOAE9FyNC/f0Vp8l/sJziTMK+axEt2XIpGCagom1IZgUKPGwmHUcftZCX5lNKh+Tv53T0GcNnNTKQ== +electron@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/electron/-/electron-7.1.1.tgz#98be17d850e64689a09ab6dd1e437b36307f2fcf" + integrity sha512-NJPv4SuMJlRUtXBd/Ey9XKSLOZ4+hxsOrHHPXwrBQNNdeZesoSrTMgPymee/FwMRtrSt0Pz8NccEZUu/pxmbhQ== dependencies: "@electron/get" "^1.0.1" "@types/node" "^12.0.12" From c6193b3926cfb65e36e63ac08106c00554fcfcd8 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Thu, 14 Nov 2019 00:36:33 +0000 Subject: [PATCH 063/127] Add dev menu when in dev mode Fix about panel --- main.js | 33 ++++++++++++++++++++++++++++++++- package.json | 1 + yarn.lock | 5 +++++ 3 files changed, 38 insertions(+), 1 deletion(-) diff --git a/main.js b/main.js index bb49e8e..6c028d5 100755 --- a/main.js +++ b/main.js @@ -19,6 +19,7 @@ const nrIcon = "nodered.png" // Icon for the app in root dir (usually 256 //const listenPort = "18880"; // fix it if you like const listenPort = parseInt(Math.random()*16383+49152) // or random ephemeral port +const pkg = require('./package.json'); const os = require('os'); const fs = require('fs'); const url = require('url'); @@ -26,6 +27,7 @@ const path = require('path'); const http = require('http'); const express = require("express"); const electron = require('electron'); +const isDev = require('electron-is-dev'); const {app, Menu} = electron; const ipc = electron.ipcMain; @@ -205,11 +207,31 @@ if (!allowLoadSave) { template[0].submenu.splice(0,2); } // Top and tail menu on Mac if (process.platform === 'darwin') { template[0].submenu.unshift({ type: 'separator' }); - template[0].submenu.unshift({ role: 'about' }); + template[0].submenu.unshift({ label: "About Node-RED", selector: "orderFrontStandardAboutPanel:" }); template[0].submenu.unshift({ type: 'separator' }); template[0].submenu.unshift({ type: 'separator' }); } +// Add Dev menu if in dev mode +if (isDev) { + template.push({ + label: 'Development', + submenu: [ + { label: 'Reload', accelerator: 'CmdOrCtrl+R', + click (item, focusedWindow) { + if (focusedWindow) focusedWindow.reload() + } + }, + { label: 'Toggle Developer Tools', + accelerator: process.platform === 'darwin' ? 'Alt+Command+I' : 'Ctrl+Shift+I', + click (item, focusedWindow) { + if (focusedWindow) focusedWindow.webContents.toggleDevTools() + } + } + ] + }) +} + let fileName = ""; function saveFlow() { dialog.showSaveDialog({ @@ -355,6 +377,15 @@ app.on('activate', function() { } }); +if (process.platform === 'darwin') { + app.setAboutPanelOptions({ + applicationName: pkg.productName, + version: pkg.version, + copyright: "Copyright © 2019, D Conway-Jones.", + credits: "Node-RED and other components are copyright the JS Foundation and other contributors." + }); +} + // Start the Node-RED runtime, then load the inital dashboard page RED.start().then(function() { server.listen(listenPort,"localhost",function() { diff --git a/package.json b/package.json index 5970570..6228288 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "url": "git+https://github.com/dceejay/electron-node-red.git" }, "dependencies": { + "electron-is-dev": "*", "express": "^4.17.1", "node-red": "1.0.2", "node-red-contrib-play-audio": "*", diff --git a/yarn.lock b/yarn.lock index adb7738..d6b3bca 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1150,6 +1150,11 @@ electron-builder@^22.1.0: update-notifier "^3.0.1" yargs "^14.0.0" +electron-is-dev@*: + version "1.1.0" + resolved "https://registry.yarnpkg.com/electron-is-dev/-/electron-is-dev-1.1.0.tgz#b15a2a600bdc48a51a857d460e05f15b19a2522c" + integrity sha512-Z1qA/1oHNowGtSBIcWk0pcLEqYT/j+13xUw/MYOrBUOL4X7VN0i0KCTf5SqyvMPmW5pSPKbo28wkxMxzZ20YnQ== + electron-publish@21.2.0: version "21.2.0" resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-21.2.0.tgz#cc225cb46aa62e74b899f2f7299b396c9802387d" From 578cf32dd81ea5191b89a70cb8fe870fa5cd4485 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Thu, 14 Nov 2019 21:37:47 +0000 Subject: [PATCH 064/127] slight tidy --- .gitignore | 1 + README.md | 2 +- main.js | 7 +- yarn.lock | 3918 ---------------------------------------------------- 4 files changed, 6 insertions(+), 3922 deletions(-) delete mode 100644 yarn.lock diff --git a/.gitignore b/.gitignore index 5b2381a..746b5a9 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,7 @@ node_modules *win32-x64* *.back .config.json.backup +.electronflow* *.backup logs *.log diff --git a/README.md b/README.md index 517188c..0697b99 100644 --- a/README.md +++ b/README.md @@ -72,7 +72,7 @@ This is very useful if you need to build for Windows on a Mac as the electron-bu While developing and testing you can just run your app locally by running ```bash -npm start +yarn start ``` from within the project folder. diff --git a/main.js b/main.js index 6c028d5..60ac631 100755 --- a/main.js +++ b/main.js @@ -3,17 +3,18 @@ // Some settings you can edit easily -const editable = true; // Set this to false to create a run only application - no editor/no console +const editable = true; // set this to false to create a run only application - no editor/no console const allowLoadSave = false; // set to true to allow import and export of flow file const showMap = false; // set to true to add Worldmap to the menu const kioskMode = false; // set to true to start in kiosk mode let flowfile = 'electronflow.json'; // default Flows file name - loaded at start -const urldash = "/ui/#/0"; // Start on the dashboard page +const urldash = "/ui/#/0"; // url for the dashboard page const urledit = "/red"; // url for the editor page const urlconsole = "/console.htm"; // url for the console page const urlmap = "/worldmap"; // url for the worldmap const nrIcon = "nodered.png" // Icon for the app in root dir (usually 256x256) +const urlStart = urldash; // Start on this page // TCP port to use //const listenPort = "18880"; // fix it if you like @@ -327,7 +328,7 @@ function createWindow() { //if (process.platform !== 'darwin') { mainWindow.setAutoHideMenuBar(true); } mainWindow.webContents.on('did-get-response-details', function(event, status, newURL, originalURL, httpResponseCode) { - if ((httpResponseCode == 404) && (newURL == ("http://localhost:"+listenPort+urldash))) { + if ((httpResponseCode == 404) && (newURL == ("http://localhost:"+listenPort+urlStart))) { setTimeout(mainWindow.webContents.reload, 250); } }); diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index d6b3bca..0000000 --- a/yarn.lock +++ /dev/null @@ -1,3918 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"7zip-bin@~5.0.3": - version "5.0.3" - resolved "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-5.0.3.tgz#bc5b5532ecafd923a61f2fb097e3b108c0106a3f" - integrity sha512-GLyWIFBbGvpKPGo55JyRZAo4lVbnBiD52cKlw/0Vt+wnmKvWJkpZvsjVoaIolyBXDeAQKSicRtqFNPem9w0WYA== - -"@babel/runtime@^7.3.1": - version "7.6.3" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.6.3.tgz#935122c74c73d2240cafd32ddb5fc2a6cd35cf1f" - integrity sha512-kq6anf9JGjW8Nt5rYfEuGRaEAaH1mkv3Bbu6rYvLOpPh/RusSJXuKPEAoZ7L7gybZkchE8+NV5g9vKF4AGAtsA== - dependencies: - regenerator-runtime "^0.13.2" - -"@develar/schema-utils@~2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@develar/schema-utils/-/schema-utils-2.1.0.tgz#eceb1695bfbed6f6bb84666d5d3abe5e1fd54e17" - integrity sha512-qjCqB4ctMig9Gz5bd6lkdFr3bO6arOdQqptdBSpF1ZpCnjofieCciEzkoS9ujY9cMGyllYSCSmBJ3x9OKHXzoA== - dependencies: - ajv "^6.1.0" - ajv-keywords "^3.1.0" - -"@electron/get@^1.0.1": - version "1.6.0" - resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.6.0.tgz#3e1437fa0f436ce9d4e0c27a4c330835ae6d74ed" - integrity sha512-xuvAzbN9iBApfAMvW0hKUpxHR5wPVbG9RaoSTbpu/WaHISDu0MVfMWYhfeU0X730CpBV0G2RkLgwAs9WDan3GA== - dependencies: - debug "^4.1.1" - env-paths "^2.2.0" - fs-extra "^8.1.0" - got "^9.6.0" - sanitize-filename "^1.6.2" - sumchecker "^3.0.0" - optionalDependencies: - global-agent "^2.0.2" - global-tunnel-ng "^2.7.1" - -"@node-red/editor-api@1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@node-red/editor-api/-/editor-api-1.0.2.tgz#531eeb211f681ee16b7b7570b12f8b6da11a5088" - integrity sha512-yUvTU5b7gDL35NIC2qC54NY0uuIAewVzcPWsc+Rbjy9YpY1DUD2Gt5Ub9gR2QPWYtVPG4zSPOBtPhZEcZvBSxQ== - dependencies: - "@node-red/editor-client" "1.0.2" - "@node-red/util" "1.0.2" - bcryptjs "2.4.3" - body-parser "1.19.0" - clone "2.1.2" - cors "2.8.5" - express "4.17.1" - express-session "1.16.2" - memorystore "1.6.1" - mime "2.4.4" - mustache "3.0.2" - oauth2orize "1.11.0" - passport "0.4.0" - passport-http-bearer "1.0.1" - passport-oauth2-client-password "0.1.2" - when "3.7.8" - ws "6.2.1" - optionalDependencies: - bcrypt "3.0.6" - -"@node-red/editor-client@1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@node-red/editor-client/-/editor-client-1.0.2.tgz#b8be4123a8d959b2c2b49c42e646741e7744a4cf" - integrity sha512-BhgzwWjxjrQJnZC/BMIZvco4H5ksZl+qh+3hy40ReDrNpp8xSc3mDIFoB785CZrYBtFMhasE2q0kqdYuNKE/Zw== - -"@node-red/nodes@1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@node-red/nodes/-/nodes-1.0.2.tgz#07a0be99cf14ac7bfa22ed8c3f006dc8991461ab" - integrity sha512-o5N0FZnLAEd1lF2ArLGoETosukFVI+nPTHWKUOoSd069eLuaS262BOTbbnk/oY4H2DEWQzjGZ2KKBItWlhbpXQ== - dependencies: - ajv "6.10.2" - body-parser "1.19.0" - cheerio "0.22.0" - content-type "1.0.4" - cookie "0.4.0" - cookie-parser "1.4.4" - cors "2.8.5" - cron "1.7.1" - denque "1.4.1" - fs-extra "8.1.0" - fs.notify "0.0.4" - hash-sum "2.0.0" - https-proxy-agent "2.2.2" - iconv-lite "0.5.0" - is-utf8 "0.2.1" - js-yaml "3.13.1" - media-typer "1.1.0" - mqtt "2.18.8" - multer "1.4.2" - mustache "3.0.2" - on-headers "1.0.2" - raw-body "2.4.1" - request "2.88.0" - ws "6.2.1" - xml2js "0.4.19" - -"@node-red/registry@1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@node-red/registry/-/registry-1.0.2.tgz#8584ae3207748a92acdabdacff797276c66ed8ee" - integrity sha512-i6TZvVriini0732IN2DVMofkG8RmiaLKpkHaP1aRceHvweDQB4yorcQsPDxqU+uiJo3lQlc1oB5j13X3mdq8DQ== - dependencies: - "@node-red/util" "1.0.2" - semver "6.3.0" - uglify-js "3.6.0" - when "3.7.8" - -"@node-red/runtime@1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@node-red/runtime/-/runtime-1.0.2.tgz#1746f7afb4d04bdff9f7eeea2e942482bdbf30e4" - integrity sha512-YMKu5HA4WWYdf2PinysONiEFkmoz+PHD4u9ormREBXPr4iCWmZ2+XqL4QRGAc/RA8FJQ8liCr2rLDUvAuSSVOQ== - dependencies: - "@node-red/registry" "1.0.2" - "@node-red/util" "1.0.2" - clone "2.1.2" - express "4.17.1" - fs-extra "8.1.0" - json-stringify-safe "5.0.1" - when "3.7.8" - -"@node-red/util@1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@node-red/util/-/util-1.0.2.tgz#742e7b307b95782440962a92e75badd1ea2f3124" - integrity sha512-DwaS8ZDcIFcMUQCWpMEVt38Pr6H2JBCeghZEs5v6nH+pnemUi1x6Mi+CSvwywVc4WN4uzGhVr8dWxFh1Q6/iEQ== - dependencies: - clone "2.1.2" - i18next "15.1.2" - json-stringify-safe "5.0.1" - jsonata "1.6.5" - when "3.7.8" - -"@sindresorhus/is@^0.14.0": - version "0.14.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" - integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== - -"@szmarczak/http-timer@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" - integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== - dependencies: - defer-to-connect "^1.0.1" - -"@types/debug@^4.1.4", "@types/debug@^4.1.5": - version "4.1.5" - resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.5.tgz#b14efa8852b7768d898906613c23f688713e02cd" - integrity sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ== - -"@types/node@^12.0.12": - version "12.11.7" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.11.7.tgz#57682a9771a3f7b09c2497f28129a0462966524a" - integrity sha512-JNbGaHFCLwgHn/iCckiGSOZ1XYHsKFwREtzPwSGCVld1SGhOlmZw2D4ZI94HQCrBHbADzW9m4LER/8olJTRGHA== - -abbrev@1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" - integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== - -accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: - version "1.3.7" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" - integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== - dependencies: - mime-types "~2.1.24" - negotiator "0.6.2" - -after@0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" - integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8= - -agent-base@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee" - integrity sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg== - dependencies: - es6-promisify "^5.0.0" - -ajv-keywords@^3.1.0: - version "3.4.1" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" - integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== - -ajv@6.10.2, ajv@^6.1.0, ajv@^6.5.5: - version "6.10.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" - integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw== - dependencies: - fast-deep-equal "^2.0.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ansi-align@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" - integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw== - dependencies: - string-width "^3.0.0" - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= - -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= - -ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== - -ansi-styles@^3.2.0, ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -app-builder-bin@3.4.3: - version "3.4.3" - resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.4.3.tgz#58a74193eb882f029be6b7f0cd3f0c6805927a6b" - integrity sha512-qMhayIwi3juerQEVJMQ76trObEbfQT0nhUdxZz9a26/3NLT3pE6awmQ8S1cEnrGugaaM5gYqR8OElcDezfmEsg== - -app-builder-bin@3.4.4: - version "3.4.4" - resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.4.4.tgz#6f244edb7bd5e482defc472ef0c15692b569f211" - integrity sha512-Xib+wgdK+8zZhbZr5pma3pNB23Y4JRY5Yt6h8peou6MTFSQzXdIkqalh/ezy9SMLuS43S4b0s7jTVAmUs8WVmA== - -app-builder-lib@22.1.0: - version "22.1.0" - resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.1.0.tgz#6df869d882406f34b4b02cab4c3ddb7926e420ec" - integrity sha512-jDTfWsVS/MePO4FexqiSQcsWM9Yfr81ETIYbmVbKmW05o0dn9k1DvMOMoLb0kTLQpW+pWBVvGMAOPfk68HnBrg== - dependencies: - "7zip-bin" "~5.0.3" - "@develar/schema-utils" "~2.1.0" - async-exit-hook "^2.0.1" - bluebird-lst "^1.0.9" - builder-util "22.1.0" - builder-util-runtime "8.4.0" - chromium-pickle-js "^0.2.0" - debug "^4.1.1" - ejs "^2.7.1" - electron-publish "22.1.0" - fs-extra "^8.1.0" - hosted-git-info "^3.0.0" - is-ci "^2.0.0" - isbinaryfile "^4.0.2" - js-yaml "^3.13.1" - lazy-val "^1.0.4" - minimatch "^3.0.4" - normalize-package-data "^2.5.0" - read-config-file "5.0.0" - sanitize-filename "^1.6.3" - semver "^6.3.0" - temp-file "^3.3.4" - -app-builder-lib@~21.2.0: - version "21.2.0" - resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-21.2.0.tgz#fa1d1604601431e2c3476857e9b9b61d33ad26cc" - integrity sha512-aOX/nv77/Bti6NymJDg7p9T067xD8m1ipIEJR7B4Mm1GsJWpMm9PZdXtCRiMNRjHtQS5KIljT0g17781y6qn5A== - dependencies: - "7zip-bin" "~5.0.3" - "@develar/schema-utils" "~2.1.0" - async-exit-hook "^2.0.1" - bluebird-lst "^1.0.9" - builder-util "21.2.0" - builder-util-runtime "8.3.0" - chromium-pickle-js "^0.2.0" - debug "^4.1.1" - ejs "^2.6.2" - electron-publish "21.2.0" - fs-extra "^8.1.0" - hosted-git-info "^2.7.1" - is-ci "^2.0.0" - isbinaryfile "^4.0.2" - js-yaml "^3.13.1" - lazy-val "^1.0.4" - minimatch "^3.0.4" - normalize-package-data "^2.5.0" - read-config-file "5.0.0" - sanitize-filename "^1.6.2" - semver "^6.3.0" - temp-file "^3.3.4" - -append-field@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/append-field/-/append-field-1.0.0.tgz#1e3440e915f0b1203d23748e78edd7b9b5b43e56" - integrity sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY= - -aproba@^1.0.3: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== - -are-we-there-yet@~1.1.2: - version "1.1.5" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" - integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== - dependencies: - delegates "^1.0.0" - readable-stream "^2.0.6" - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= - -arraybuffer.slice@~0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" - integrity sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog== - -asn1@~0.2.3: - version "0.2.4" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" - integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= - -async-exit-hook@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/async-exit-hook/-/async-exit-hook-2.0.1.tgz#8bd8b024b0ec9b1c01cccb9af9db29bd717dfaf3" - integrity sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw== - -async-limiter@^1.0.0, async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== - -async@~0.1.22: - version "0.1.22" - resolved "https://registry.yarnpkg.com/async/-/async-0.1.22.tgz#0fc1aaa088a0e3ef0ebe2d8831bab0dcf8845061" - integrity sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE= - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= - -aws4@^1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" - integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ== - -backo2@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" - integrity sha1-MasayLEpNjRj41s+u2n038+6eUc= - -balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= - -base64-arraybuffer@0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" - integrity sha1-c5JncZI7Whl0etZmqlzUv5xunOg= - -base64id@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" - integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== - -basic-auth@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-2.0.1.tgz#b998279bf47ce38344b4f3cf916d4679bbf51e3a" - integrity sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg== - dependencies: - safe-buffer "5.1.2" - -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= - dependencies: - tweetnacl "^0.14.3" - -bcrypt@3.0.6: - version "3.0.6" - resolved "https://registry.yarnpkg.com/bcrypt/-/bcrypt-3.0.6.tgz#f607846df62d27e60d5e795612c4f67d70206eb2" - integrity sha512-taA5bCTfXe7FUjKroKky9EXpdhkVvhE5owfxfLYodbrAR1Ul3juLmIQmIQBK4L9a5BuUcE6cqmwT+Da20lF9tg== - dependencies: - nan "2.13.2" - node-pre-gyp "0.12.0" - -bcryptjs@2.4.3: - version "2.4.3" - resolved "https://registry.yarnpkg.com/bcryptjs/-/bcryptjs-2.4.3.tgz#9ab5627b93e60621ff7cdac5da9733027df1d0cb" - integrity sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms= - -better-assert@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" - integrity sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI= - dependencies: - callsite "1.0.0" - -bl@^1.2.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.2.tgz#a160911717103c07410cef63ef51b397c025af9c" - integrity sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA== - dependencies: - readable-stream "^2.3.5" - safe-buffer "^5.1.1" - -blob@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683" - integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig== - -bluebird-lst@^1.0.9: - version "1.0.9" - resolved "https://registry.yarnpkg.com/bluebird-lst/-/bluebird-lst-1.0.9.tgz#a64a0e4365658b9ab5fe875eb9dfb694189bb41c" - integrity sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw== - dependencies: - bluebird "^3.5.5" - -bluebird@^3.5.5: - version "3.7.1" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.1.tgz#df70e302b471d7473489acf26a93d63b53f874de" - integrity sha512-DdmyoGCleJnkbp3nkbxTLJ18rjDsE4yCggEwKNXkeV123sPNfOCYeDoeuOY+F2FrSjO1YXcTU+dsy96KMy+gcg== - -body-parser@1.19.0: - version "1.19.0" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" - integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== - dependencies: - bytes "3.1.0" - content-type "~1.0.4" - debug "2.6.9" - depd "~1.1.2" - http-errors "1.7.2" - iconv-lite "0.4.24" - on-finished "~2.3.0" - qs "6.7.0" - raw-body "2.4.0" - type-is "~1.6.17" - -boolbase@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= - -boolean@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/boolean/-/boolean-2.0.2.tgz#f272d09a1a9372b080ddfe948232145d224c12b7" - integrity sha512-ymsbJQlux/uogyEWfsXJUYzuyoOzPyp6NvEV71s6/ptQR7ptKO9uHF+WZL2GRATDeN52EFhNyrIu+exNZKh3Cw== - -boxen@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-3.2.0.tgz#fbdff0de93636ab4450886b6ff45b92d098f45eb" - integrity sha512-cU4J/+NodM3IHdSL2yN8bqYqnmlBTidDR4RC7nJs61ZmtGz8VZzM3HLQX0zY5mrSmPtR3xWwsq2jOUQqFZN8+A== - dependencies: - ansi-align "^3.0.0" - camelcase "^5.3.1" - chalk "^2.4.2" - cli-boxes "^2.2.0" - string-width "^3.0.0" - term-size "^1.2.0" - type-fest "^0.3.0" - widest-line "^2.0.0" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -buffer-from@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== - -"bufferjs@>= 0.2.3": - version "3.0.1" - resolved "https://registry.yarnpkg.com/bufferjs/-/bufferjs-3.0.1.tgz#0692e829cb10a10550e647390b035eb06c38e8ef" - integrity sha1-BpLoKcsQoQVQ5kc5CwNesGw46O8= - -"bufferlist@>= 0.0.6": - version "0.1.0" - resolved "https://registry.yarnpkg.com/bufferlist/-/bufferlist-0.1.0.tgz#42bef2d89573b40fa1086bb39e0f5310170d1ddd" - integrity sha1-Qr7y2JVztA+hCGuzng9TEBcNHd0= - -builder-util-runtime@8.3.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.3.0.tgz#f5fac9139af6facf42a21fbe4d3aebed88fda33e" - integrity sha512-CSOdsYqf4RXIHh1HANPbrZHlZ9JQJXSuDDloblZPcWQVN62inyYoTQuSmY3KrgefME2Sv3Kn2MxHvbGQHRf8Iw== - dependencies: - debug "^4.1.1" - sax "^1.2.4" - -builder-util-runtime@8.4.0: - version "8.4.0" - resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.4.0.tgz#3163fffc078e6b8f3dd5b6eb12a8345573590682" - integrity sha512-CJB/eKfPf2vHrkmirF5eicVnbDCkMBbwd5tRYlTlgud16zFeqD7QmrVUAOEXdnsrcNkiLg9dbuUsQKtl/AwsYQ== - dependencies: - debug "^4.1.1" - sax "^1.2.4" - -builder-util@21.2.0, builder-util@~21.2.0: - version "21.2.0" - resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-21.2.0.tgz#aba721190e4e841009d9fb4b88f1130ed616522f" - integrity sha512-Nd6CUb6YgDY8EXAXEIegx+1kzKqyFQ5ZM5BoYkeunAlwz/zDJoH1UCyULjoS5wQe5czNClFQy07zz2bzYD0Z4A== - dependencies: - "7zip-bin" "~5.0.3" - "@types/debug" "^4.1.4" - app-builder-bin "3.4.3" - bluebird-lst "^1.0.9" - builder-util-runtime "8.3.0" - chalk "^2.4.2" - debug "^4.1.1" - fs-extra "^8.1.0" - is-ci "^2.0.0" - js-yaml "^3.13.1" - source-map-support "^0.5.13" - stat-mode "^0.3.0" - temp-file "^3.3.4" - -builder-util@22.1.0, builder-util@~22.1.0: - version "22.1.0" - resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-22.1.0.tgz#2b33145d053778e95389d5aee659256ebdb1c2ca" - integrity sha512-BPvpWvxQ5XOzm2WepIgmOAyo2IyaM/Bd1LJmeTYy5CtknNAtxgmAPQJfCHCikMKKQA4Obz/KYecXQiGpGJ2ThA== - dependencies: - "7zip-bin" "~5.0.3" - "@types/debug" "^4.1.5" - app-builder-bin "3.4.4" - bluebird-lst "^1.0.9" - builder-util-runtime "8.4.0" - chalk "^2.4.2" - debug "^4.1.1" - fs-extra "^8.1.0" - is-ci "^2.0.0" - js-yaml "^3.13.1" - source-map-support "^0.5.13" - stat-mode "^0.3.0" - temp-file "^3.3.4" - -busboy@^0.2.11: - version "0.2.14" - resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.2.14.tgz#6c2a622efcf47c57bbbe1e2a9c37ad36c7925453" - integrity sha1-bCpiLvz0fFe7vh4qnDetNseSVFM= - dependencies: - dicer "0.2.5" - readable-stream "1.1.x" - -bytes@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" - integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= - -bytes@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" - integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== - -cacheable-request@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" - integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== - dependencies: - clone-response "^1.0.2" - get-stream "^5.1.0" - http-cache-semantics "^4.0.0" - keyv "^3.0.0" - lowercase-keys "^2.0.0" - normalize-url "^4.1.0" - responselike "^1.0.2" - -callback-stream@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/callback-stream/-/callback-stream-1.1.0.tgz#4701a51266f06e06eaa71fc17233822d875f4908" - integrity sha1-RwGlEmbwbgbqpx/BcjOCLYdfSQg= - dependencies: - inherits "^2.0.1" - readable-stream "> 1.0.0 < 3.0.0" - -callsite@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" - integrity sha1-KAOY5dZkvXQDi28JBRU+borxvCA= - -camelcase@^5.0.0, camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= - -cgi@0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/cgi/-/cgi-0.3.1.tgz#8751da64a1cf1849d11056318b760d1acfba47dc" - integrity sha1-h1HaZKHPGEnREFYxi3YNGs+6R9w= - dependencies: - debug "2" - extend "~2.0.0" - header-stack "~0.0.2" - stream-stack "~1.1.1" - -chalk@^2.0.1, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -cheerio@0.22.0: - version "0.22.0" - resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e" - integrity sha1-qbqoYKP5tZWmuBsahocxIe06Jp4= - dependencies: - css-select "~1.2.0" - dom-serializer "~0.1.0" - entities "~1.1.1" - htmlparser2 "^3.9.1" - lodash.assignin "^4.0.9" - lodash.bind "^4.1.4" - lodash.defaults "^4.0.1" - lodash.filter "^4.4.0" - lodash.flatten "^4.2.0" - lodash.foreach "^4.3.0" - lodash.map "^4.4.0" - lodash.merge "^4.4.0" - lodash.pick "^4.2.1" - lodash.reduce "^4.4.0" - lodash.reject "^4.4.0" - lodash.some "^4.4.0" - -chownr@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.3.tgz#42d837d5239688d55f303003a508230fa6727142" - integrity sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw== - -chromium-pickle-js@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz#04a106672c18b085ab774d983dfa3ea138f22205" - integrity sha1-BKEGZywYsIWrd02YPfo+oTjyIgU= - -ci-info@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" - integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== - -cli-boxes@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.0.tgz#538ecae8f9c6ca508e3c3c95b453fe93cb4c168d" - integrity sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w== - -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== - dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" - -clone-response@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" - integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= - dependencies: - mimic-response "^1.0.0" - -clone@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" - integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= - -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - -combined-stream@^1.0.6, combined-stream@~1.0.6: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -commander@~2.20.0: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -commist@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/commist/-/commist-1.1.0.tgz#17811ec6978f6c15ee4de80c45c9beb77cee35d5" - integrity sha512-rraC8NXWOEjhADbZe9QBNzLAN5Q3fsTPQtBV+fEVj6xKIgDgNiEVE6ZNfHpZOqfQ21YUzfVNUXLOEZquYvQPPg== - dependencies: - leven "^2.1.0" - minimist "^1.1.0" - -component-bind@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" - integrity sha1-AMYIq33Nk4l8AAllGx06jh5zu9E= - -component-emitter@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" - integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= - -component-inherit@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" - integrity sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM= - -compressible@~2.0.16: - version "2.0.17" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.17.tgz#6e8c108a16ad58384a977f3a482ca20bff2f38c1" - integrity sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw== - dependencies: - mime-db ">= 1.40.0 < 2" - -compression@^1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" - integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== - dependencies: - accepts "~1.3.5" - bytes "3.0.0" - compressible "~2.0.16" - debug "2.6.9" - on-headers "~1.0.2" - safe-buffer "5.1.2" - vary "~1.1.2" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -concat-stream@1.6.2, concat-stream@^1.5.2, concat-stream@^1.6.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -config-chain@^1.1.11: - version "1.1.12" - resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" - integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== - dependencies: - ini "^1.3.4" - proto-list "~1.2.1" - -configstore@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-4.0.0.tgz#5933311e95d3687efb592c528b922d9262d227e7" - integrity sha512-CmquAXFBocrzaSM8mtGPMM/HiWmyIpr4CcJl/rgY2uCObZ/S7cKU0silxslqJejl+t/T9HS8E0PUNQD81JGUEQ== - dependencies: - dot-prop "^4.1.0" - graceful-fs "^4.1.2" - make-dir "^1.0.0" - unique-string "^1.0.0" - write-file-atomic "^2.0.0" - xdg-basedir "^3.0.0" - -console-control-strings@^1.0.0, console-control-strings@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= - -content-disposition@0.5.3: - version "0.5.3" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" - integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== - dependencies: - safe-buffer "5.1.2" - -content-type@1.0.4, content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== - -cookie-parser@1.4.4: - version "1.4.4" - resolved "https://registry.yarnpkg.com/cookie-parser/-/cookie-parser-1.4.4.tgz#e6363de4ea98c3def9697b93421c09f30cf5d188" - integrity sha512-lo13tqF3JEtFO7FyA49CqbhaFkskRJ0u/UAiINgrIXeRCY41c88/zxtrECl8AKH3B0hj9q10+h3Kt8I7KlW4tw== - dependencies: - cookie "0.3.1" - cookie-signature "1.0.6" - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= - -cookie@0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" - integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s= - -cookie@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" - integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== - -core-js@^3.3.3: - version "3.3.4" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.3.4.tgz#6b0a23392958317bfb46e40b090529a923add669" - integrity sha512-BtibooaAmSOptGLRccsuX/dqgPtXwNgqcvYA6kOTTMzonRxZ+pJS4e+6mvVutESfXMeTnK8m3M+aBu3bkJbR+w== - -core-util-is@1.0.2, core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= - -cors@2.8.5: - version "2.8.5" - resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" - integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== - dependencies: - object-assign "^4" - vary "^1" - -cron@1.7.1: - version "1.7.1" - resolved "https://registry.yarnpkg.com/cron/-/cron-1.7.1.tgz#e85ee9df794d1bc6579896ee382053c3ce33778f" - integrity sha512-gmMB/pJcqUVs/NklR1sCGlNYM7TizEw+1gebz20BMc/8bTm/r7QUp3ZPSPlG8Z5XRlvb7qhjEjq/+bdIfUCL2A== - dependencies: - moment-timezone "^0.5.x" - -cross-spawn@^5.0.1: - version "5.1.0" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" - integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= - dependencies: - lru-cache "^4.0.1" - shebang-command "^1.2.0" - which "^1.2.9" - -crypto-random-string@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" - integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4= - -css-select@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" - integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg= - dependencies: - boolbase "~1.0.0" - css-what "2.1" - domutils "1.5.1" - nth-check "~1.0.1" - -css-what@2.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" - integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== - -d@1, d@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" - integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== - dependencies: - es5-ext "^0.10.50" - type "^1.0.1" - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= - dependencies: - assert-plus "^1.0.0" - -debug@2, debug@2.6.9, debug@2.x.x: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@3.1.0, debug@~3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" - integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== - dependencies: - ms "2.0.0" - -debug@^3.1.0, debug@^3.2.6: - version "3.2.6" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" - integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== - dependencies: - ms "^2.1.1" - -debug@^4.1.0, debug@^4.1.1, debug@~4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== - dependencies: - ms "^2.1.1" - -decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - -decompress-response@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" - integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= - dependencies: - mimic-response "^1.0.0" - -deep-extend@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== - -defer-to-connect@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.0.2.tgz#4bae758a314b034ae33902b5aac25a8dd6a8633e" - integrity sha512-k09hcQcTDY+cwgiwa6PYKLm3jlagNzQ+RSvhjzESOGOx+MNOuXkxTfEvPrO1IOQ81tArCFYQgi631clB70RpQw== - -define-properties@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= - -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= - -denque@1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/denque/-/denque-1.4.1.tgz#6744ff7641c148c3f8a69c307e51235c1f4a37cf" - integrity sha512-OfzPuSZKGcgr96rf1oODnfjqBFmr1DVoc/TrItj3Ohe0Ah1C5WX5Baquw/9U9KovnQ88EqmJbD66rKYUQYN1tQ== - -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= - -depd@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== - -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= - -detect-libc@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= - -detect-node@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" - integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== - -dicer@0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/dicer/-/dicer-0.2.5.tgz#5996c086bb33218c812c090bddc09cd12facb70f" - integrity sha1-WZbAhrszIYyBLAkL3cCc0S+stw8= - dependencies: - readable-stream "1.1.x" - streamsearch "0.1.2" - -dmg-builder@21.2.0: - version "21.2.0" - resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-21.2.0.tgz#a9c883557cacb9abdb66c7133b30fe921c1a3ba7" - integrity sha512-9cJEclnGy7EyKFCoHDYDf54pub/t92CQapyiUxU0w9Bj2vUvfoDagP1PMiX4XD5rPp96141h9A+QN0OB4VgvQg== - dependencies: - app-builder-lib "~21.2.0" - bluebird-lst "^1.0.9" - builder-util "~21.2.0" - fs-extra "^8.1.0" - iconv-lite "^0.5.0" - js-yaml "^3.13.1" - sanitize-filename "^1.6.2" - -dom-serializer@0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.1.tgz#13650c850daffea35d8b626a4cfc4d3a17643fdb" - integrity sha512-sK3ujri04WyjwQXVoK4PU3y8ula1stq10GJZpqHIUgoGZdsGzAGu65BnU3d08aTVSvO7mGPZUc0wTEDL+qGE0Q== - dependencies: - domelementtype "^2.0.1" - entities "^2.0.0" - -dom-serializer@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" - integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA== - dependencies: - domelementtype "^1.3.0" - entities "^1.1.1" - -domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" - integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== - -domelementtype@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" - integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== - -domhandler@^2.3.0: - version "2.4.2" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" - integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== - dependencies: - domelementtype "1" - -domutils@1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" - integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8= - dependencies: - dom-serializer "0" - domelementtype "1" - -domutils@^1.5.1: - version "1.7.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" - integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== - dependencies: - dom-serializer "0" - domelementtype "1" - -dot-prop@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" - integrity sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ== - dependencies: - is-obj "^1.0.0" - -dotenv-expand@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" - integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== - -dotenv@^8.0.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" - integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== - -duplexer3@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" - integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= - -duplexify@^3.5.1, duplexify@^3.6.0: - version "3.7.1" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" - integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== - dependencies: - end-of-stream "^1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= - -ejs@^2.6.2, ejs@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.1.tgz#5b5ab57f718b79d4aca9254457afecd36fa80228" - integrity sha512-kS/gEPzZs3Y1rRsbGX4UOSjtP/CeJP0CxSNZHYxGfVM/VgLcv0ZqM7C45YyTj2DI2g7+P9Dd24C+IMIg6D0nYQ== - -electron-builder@^22.1.0: - version "22.1.0" - resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.1.0.tgz#65b23411e3c39a83b52743ed18980b97f8314d50" - integrity sha512-uu2W9BLG38D0i2PG6dHupmOYc+q/TRL+Ztf8xitqK+2Quq33PFbeN0ipfySuVEDg4I6whDRBOgxBEWwnUYqZZQ== - dependencies: - app-builder-lib "22.1.0" - bluebird-lst "^1.0.9" - builder-util "22.1.0" - builder-util-runtime "8.4.0" - chalk "^2.4.2" - dmg-builder "21.2.0" - fs-extra "^8.1.0" - is-ci "^2.0.0" - lazy-val "^1.0.4" - read-config-file "5.0.0" - sanitize-filename "^1.6.3" - update-notifier "^3.0.1" - yargs "^14.0.0" - -electron-is-dev@*: - version "1.1.0" - resolved "https://registry.yarnpkg.com/electron-is-dev/-/electron-is-dev-1.1.0.tgz#b15a2a600bdc48a51a857d460e05f15b19a2522c" - integrity sha512-Z1qA/1oHNowGtSBIcWk0pcLEqYT/j+13xUw/MYOrBUOL4X7VN0i0KCTf5SqyvMPmW5pSPKbo28wkxMxzZ20YnQ== - -electron-publish@21.2.0: - version "21.2.0" - resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-21.2.0.tgz#cc225cb46aa62e74b899f2f7299b396c9802387d" - integrity sha512-mWavuoWJe87iaeKd0I24dNWIaR+0yRzshjNVqGyK019H766fsPWl3caQJnVKFaEyrZRP397v4JZVG0e7s16AxA== - dependencies: - bluebird-lst "^1.0.9" - builder-util "~21.2.0" - builder-util-runtime "8.3.0" - chalk "^2.4.2" - fs-extra "^8.1.0" - lazy-val "^1.0.4" - mime "^2.4.4" - -electron-publish@22.1.0: - version "22.1.0" - resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.1.0.tgz#730ee3801e47acdbb1c81ed7fc4ebc6b30d2a8aa" - integrity sha512-jHjMCaL2dFU+iOq8wW568F59+DW1jFJGT3vc2xqm9iXyZ8gWlQ+NVve4bq9HZG7m4iNqWbGw9StmZcOzmIBxMQ== - dependencies: - bluebird-lst "^1.0.9" - builder-util "~22.1.0" - builder-util-runtime "8.4.0" - chalk "^2.4.2" - fs-extra "^8.1.0" - lazy-val "^1.0.4" - mime "^2.4.4" - -electron@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/electron/-/electron-7.1.1.tgz#98be17d850e64689a09ab6dd1e437b36307f2fcf" - integrity sha512-NJPv4SuMJlRUtXBd/Ey9XKSLOZ4+hxsOrHHPXwrBQNNdeZesoSrTMgPymee/FwMRtrSt0Pz8NccEZUu/pxmbhQ== - dependencies: - "@electron/get" "^1.0.1" - "@types/node" "^12.0.12" - extract-zip "^1.0.3" - -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - -encodeurl@^1.0.2, encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= - -end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -engine.io-client@~3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.4.0.tgz#82a642b42862a9b3f7a188f41776b2deab643700" - integrity sha512-a4J5QO2k99CM2a0b12IznnyQndoEvtA4UAldhGzKqnHf42I3Qs2W5SPnDvatZRcMaNZs4IevVicBPayxYt6FwA== - dependencies: - component-emitter "1.2.1" - component-inherit "0.0.3" - debug "~4.1.0" - engine.io-parser "~2.2.0" - has-cors "1.1.0" - indexof "0.0.1" - parseqs "0.0.5" - parseuri "0.0.5" - ws "~6.1.0" - xmlhttprequest-ssl "~1.5.4" - yeast "0.1.2" - -engine.io-parser@~2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.2.0.tgz#312c4894f57d52a02b420868da7b5c1c84af80ed" - integrity sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w== - dependencies: - after "0.8.2" - arraybuffer.slice "~0.0.7" - base64-arraybuffer "0.1.5" - blob "0.0.5" - has-binary2 "~1.0.2" - -engine.io@~3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.4.0.tgz#3a962cc4535928c252759a00f98519cb46c53ff3" - integrity sha512-XCyYVWzcHnK5cMz7G4VTu2W7zJS7SM1QkcelghyIk/FmobWBtXE7fwhBusEKvCSqc3bMh8fNFMlUkCKTFRxH2w== - dependencies: - accepts "~1.3.4" - base64id "2.0.0" - cookie "0.3.1" - debug "~4.1.0" - engine.io-parser "~2.2.0" - ws "^7.1.2" - -entities@^1.1.1, entities@~1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" - integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== - -entities@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4" - integrity sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw== - -env-paths@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.0.tgz#cdca557dc009152917d6166e2febe1f039685e43" - integrity sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA== - -es5-ext@^0.10.35, es5-ext@^0.10.50, es5-ext@^0.10.51, es5-ext@~0.10.14: - version "0.10.51" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.51.tgz#ed2d7d9d48a12df86e0299287e93a09ff478842f" - integrity sha512-oRpWzM2WcLHVKpnrcyB7OW8j/s67Ba04JCm0WnNv3RiABSvs7mrQlutB8DBv793gKcp0XENR8Il8WxGTlZ73gQ== - dependencies: - es6-iterator "~2.0.3" - es6-symbol "~3.1.1" - next-tick "^1.0.0" - -es6-error@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" - integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== - -es6-iterator@~2.0.1, es6-iterator@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" - integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= - dependencies: - d "1" - es5-ext "^0.10.35" - es6-symbol "^3.1.1" - -es6-map@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" - integrity sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA= - dependencies: - d "1" - es5-ext "~0.10.14" - es6-iterator "~2.0.1" - es6-set "~0.1.5" - es6-symbol "~3.1.1" - event-emitter "~0.3.5" - -es6-promise@^4.0.3: - version "4.2.8" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" - integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== - -es6-promisify@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" - integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM= - dependencies: - es6-promise "^4.0.3" - -es6-set@~0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" - integrity sha1-0rPsXU2ADO2BjbU40ol02wpzzLE= - dependencies: - d "1" - es5-ext "~0.10.14" - es6-iterator "~2.0.1" - es6-symbol "3.1.1" - event-emitter "~0.3.5" - -es6-symbol@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" - integrity sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc= - dependencies: - d "1" - es5-ext "~0.10.14" - -es6-symbol@^3.1.1, es6-symbol@~3.1.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.2.tgz#859fdd34f32e905ff06d752e7171ddd4444a7ed1" - integrity sha512-/ZypxQsArlv+KHpGvng52/Iz8by3EQPxhmbuz8yFG89N/caTFBSbcXONDw0aMjy827gQg26XAjP4uXFvnfINmQ== - dependencies: - d "^1.0.1" - es5-ext "^0.10.51" - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= - -event-emitter@~0.3.5: - version "0.3.5" - resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" - integrity sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk= - dependencies: - d "1" - es5-ext "~0.10.14" - -execa@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" - integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= - dependencies: - cross-spawn "^5.0.1" - get-stream "^3.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -express-session@1.16.2: - version "1.16.2" - resolved "https://registry.yarnpkg.com/express-session/-/express-session-1.16.2.tgz#59f36d7770e94872d19b163b6708a2d16aa6848c" - integrity sha512-oy0sRsdw6n93E9wpCNWKRnSsxYnSDX9Dnr9mhZgqUEEorzcq5nshGYSZ4ZReHFhKQ80WI5iVUUSPW7u3GaKauw== - dependencies: - cookie "0.3.1" - cookie-signature "1.0.6" - debug "2.6.9" - depd "~2.0.0" - on-headers "~1.0.2" - parseurl "~1.3.3" - safe-buffer "5.1.2" - uid-safe "~2.1.5" - -express@4.17.1, express@^4.16.4, express@^4.17.1: - version "4.17.1" - resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" - integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== - dependencies: - accepts "~1.3.7" - array-flatten "1.1.1" - body-parser "1.19.0" - content-disposition "0.5.3" - content-type "~1.0.4" - cookie "0.4.0" - cookie-signature "1.0.6" - debug "2.6.9" - depd "~1.1.2" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "~1.1.2" - fresh "0.5.2" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "~2.3.0" - parseurl "~1.3.3" - path-to-regexp "0.1.7" - proxy-addr "~2.0.5" - qs "6.7.0" - range-parser "~1.2.1" - safe-buffer "5.1.2" - send "0.17.1" - serve-static "1.14.1" - setprototypeof "1.1.1" - statuses "~1.5.0" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - -extend@^3.0.0, extend@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -extend@~2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-2.0.2.tgz#1b74985400171b85554894459c978de6ef453ab7" - integrity sha512-AgFD4VU+lVLP6vjnlNfF7OeInLTyeyckCNPEsuxz1vi786UuK/nk6ynPuhn/h+Ju9++TQyr5EpLRI14fc1QtTQ== - -extract-zip@^1.0.3: - version "1.6.7" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.7.tgz#a840b4b8af6403264c8db57f4f1a74333ef81fe9" - integrity sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k= - dependencies: - concat-stream "1.6.2" - debug "2.6.9" - mkdirp "0.5.1" - yauzl "2.4.1" - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= - -extsprintf@^1.2.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" - integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= - -fast-deep-equal@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" - integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= - -fast-json-stable-stringify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" - integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= - -faye-websocket@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" - integrity sha1-TkkvjQTftviQA1B/btvy1QHnxvQ= - dependencies: - websocket-driver ">=0.5.1" - -fd-slicer@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" - integrity sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU= - dependencies: - pend "~1.2.0" - -finalhandler@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" - integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.3" - statuses "~1.5.0" - unpipe "~1.0.0" - -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= - -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -forwarded@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" - integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= - -fs-extra@8.1.0, fs-extra@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-minipass@^1.2.5: - version "1.2.7" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" - integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== - dependencies: - minipass "^2.6.0" - -fs.notify@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/fs.notify/-/fs.notify-0.0.4.tgz#63284d45a34b52ce60088a6ddbec5b776d3c013d" - integrity sha1-YyhNRaNLUs5gCIpt2+xbd208AT0= - dependencies: - async "~0.1.22" - retry "~0.6.0" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -gauge@~2.7.3: - version "2.7.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" - integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= - dependencies: - aproba "^1.0.3" - console-control-strings "^1.0.0" - has-unicode "^2.0.0" - object-assign "^4.1.0" - signal-exit "^3.0.0" - string-width "^1.0.1" - strip-ansi "^3.0.1" - wide-align "^1.1.0" - -geolib@^2.0.0: - version "2.0.24" - resolved "https://registry.yarnpkg.com/geolib/-/geolib-2.0.24.tgz#eb3d7fbc65f5ea3354a5af6054563ebe9f33e5f4" - integrity sha512-NR0AyYyEnGrFS9JvSFmmotQDxVCORJgDHdvBwSatxl5aHarOLMh3KuGI83bCvCfObjfoEiDe8Ung8GGLGAtthw== - -get-caller-file@^2.0.1: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" - integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= - -get-stream@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - -get-stream@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" - integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw== - dependencies: - pump "^3.0.0" - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= - dependencies: - assert-plus "^1.0.0" - -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - -glob-stream@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-6.1.0.tgz#7045c99413b3eb94888d83ab46d0b404cc7bdde4" - integrity sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ= - dependencies: - extend "^3.0.0" - glob "^7.1.1" - glob-parent "^3.1.0" - is-negated-glob "^1.0.0" - ordered-read-streams "^1.0.0" - pumpify "^1.3.5" - readable-stream "^2.1.5" - remove-trailing-separator "^1.0.1" - to-absolute-glob "^2.0.0" - unique-stream "^2.0.2" - -glob@^7.1.1, glob@^7.1.3: - version "7.1.5" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.5.tgz#6714c69bee20f3c3e64c4dd905553e532b40cdc0" - integrity sha512-J9dlskqUXK1OeTOYBEn5s8aMukWMwWfs+rPTn/jn50Ux4MNXVhubL1wu/j2t+H4NVI+cXEcCaYellqaPVGXNqQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -global-agent@^2.0.2: - version "2.1.5" - resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-2.1.5.tgz#0e9b8367f7068bb6fa360a8f920499e1d873762f" - integrity sha512-pYJjCxxNBzYxo6iNO62JZn8iCFVbvpiM0zE4w/G5hBNIvLjnvzIeCVQPMKc3aK8ju5L7Q8NNI/oBSosU0eeSYw== - dependencies: - boolean "^2.0.2" - core-js "^3.3.3" - es6-error "^4.1.1" - matcher "^2.0.0" - roarr "^2.14.2" - semver "^6.3.0" - serialize-error "^5.0.0" - -global-dirs@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" - integrity sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU= - dependencies: - ini "^1.3.4" - -global-tunnel-ng@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz#d03b5102dfde3a69914f5ee7d86761ca35d57d8f" - integrity sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg== - dependencies: - encodeurl "^1.0.2" - lodash "^4.17.10" - npm-conf "^1.1.3" - tunnel "^0.0.6" - -globalthis@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.0.tgz#c5fb98213a9b4595f59cf3e7074f141b4169daae" - integrity sha512-vcCAZTJ3r5Qcu5l8/2oyVdoFwxKgfYnMTR2vwWeux/NAVZK3PwcMaWkdUIn4GJbmKuRK7xcvDsLuK+CKcXyodg== - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - object-keys "^1.0.12" - -got@^9.6.0: - version "9.6.0" - resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" - integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== - dependencies: - "@sindresorhus/is" "^0.14.0" - "@szmarczak/http-timer" "^1.1.2" - cacheable-request "^6.0.0" - decompress-response "^3.3.0" - duplexer3 "^0.1.4" - get-stream "^4.1.0" - lowercase-keys "^1.0.1" - mimic-response "^1.0.1" - p-cancelable "^1.0.0" - to-readable-stream "^1.0.0" - url-parse-lax "^3.0.0" - -graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: - version "4.2.2" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.2.tgz#6f0952605d0140c1cfdb138ed005775b92d67b02" - integrity sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q== - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= - -har-validator@~5.1.0: - version "5.1.3" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" - integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== - dependencies: - ajv "^6.5.5" - har-schema "^2.0.0" - -has-binary2@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d" - integrity sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw== - dependencies: - isarray "2.0.1" - -has-cors@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" - integrity sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk= - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - -has-unicode@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= - -has-yarn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" - integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== - -hash-sum@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-2.0.0.tgz#81d01bb5de8ea4a214ad5d6ead1b523460b0b45a" - integrity sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg== - -header-stack@~0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/header-stack/-/header-stack-0.0.2.tgz#460d72b16d38652ce451e232536971b31e84d60f" - integrity sha1-Rg1ysW04ZSzkUeIyU2lxsx6E1g8= - dependencies: - bufferjs ">= 0.2.3" - bufferlist ">= 0.0.6" - stream-stack ">= 1.1.1" - -help-me@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/help-me/-/help-me-1.1.0.tgz#8f2d508d0600b4a456da2f086556e7e5c056a3c6" - integrity sha1-jy1QjQYAtKRW2i8IZVbn5cBWo8Y= - dependencies: - callback-stream "^1.0.2" - glob-stream "^6.1.0" - through2 "^2.0.1" - xtend "^4.0.0" - -hosted-git-info@^2.1.4, hosted-git-info@^2.7.1: - version "2.8.5" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.5.tgz#759cfcf2c4d156ade59b0b2dfabddc42a6b9c70c" - integrity sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg== - -hosted-git-info@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.2.tgz#8b7e3bd114b59b51786f8bade0f39ddc80275a97" - integrity sha512-ezZMWtHXm7Eb7Rq4Mwnx2vs79WUx2QmRg3+ZqeGroKzfDO+EprOcgRPYghsOP9JuYBfK18VojmRTGCg8Ma+ktw== - dependencies: - lru-cache "^5.1.1" - -htmlparser2@^3.9.1: - version "3.10.1" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" - integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== - dependencies: - domelementtype "^1.3.1" - domhandler "^2.3.0" - domutils "^1.5.1" - entities "^1.1.1" - inherits "^2.0.1" - readable-stream "^3.1.1" - -http-cache-semantics@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz#495704773277eeef6e43f9ab2c2c7d259dda25c5" - integrity sha512-TcIMG3qeVLgDr1TEd2XvHaTnMPwYQUQMIBLy+5pLSDKYFc7UIqj39w8EGzZkaxoLv/l2K8HaI0t5AVA+YYgUew== - -http-errors@1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" - integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -http-errors@1.7.3, http-errors@~1.7.2: - version "1.7.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" - integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== - dependencies: - depd "~1.1.2" - inherits "2.0.4" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -"http-parser-js@>=0.4.0 <0.4.11": - version "0.4.10" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.10.tgz#92c9c1374c35085f75db359ec56cc257cbb93fa4" - integrity sha1-ksnBN0w1CF912zWexWzCV8u5P6Q= - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -https-proxy-agent@2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.2.tgz#271ea8e90f836ac9f119daccd39c19ff7dfb0793" - integrity sha512-c8Ndjc9Bkpfx/vCJueCPy0jlP4ccCCSNDp8xwCZzPjKJUm+B+u9WX2x98Qx4n1PiMNTWo3D7KK5ifNV/yJyRzg== - dependencies: - agent-base "^4.3.0" - debug "^3.1.0" - -i18next@15.1.2: - version "15.1.2" - resolved "https://registry.yarnpkg.com/i18next/-/i18next-15.1.2.tgz#635b7bc688cf36620cab8fa1c3af97817a47f95a" - integrity sha512-98ELn/dqep00DQ/v1E1gpM21HNN6nqU3mS85mYKd9P7lXrhfUcuysPaa3HviKSFb3WPdjf7avuAST3P0dhNp/A== - dependencies: - "@babel/runtime" "^7.3.1" - -iconv-lite@0.4.24, iconv-lite@^0.4.4: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -iconv-lite@0.5.0, iconv-lite@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.5.0.tgz#59cdde0a2a297cc2aeb0c6445a195ee89f127550" - integrity sha512-NnEhI9hIEKHOzJ4f697DMz9IQEXr/MMJ5w64vN2/4Ai+wRnvV7SBrL0KLoRlwaKVghOc7LQ5YkPLuX146b6Ydw== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -ignore-walk@^3.0.1: - version "3.0.3" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" - integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw== - dependencies: - minimatch "^3.0.4" - -import-lazy@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" - integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - -indexof@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" - integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= - -ini@^1.3.4, ini@~1.3.0: - version "1.3.5" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" - integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== - -ipaddr.js@1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.0.tgz#37df74e430a0e47550fe54a2defe30d8acd95f65" - integrity sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA== - -is-absolute@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" - integrity sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA== - dependencies: - is-relative "^1.0.0" - is-windows "^1.0.1" - -is-ci@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" - integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== - dependencies: - ci-info "^2.0.0" - -is-extglob@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= - -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= - dependencies: - is-extglob "^2.1.0" - -is-installed-globally@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" - integrity sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA= - dependencies: - global-dirs "^0.1.0" - is-path-inside "^1.0.0" - -is-negated-glob@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-negated-glob/-/is-negated-glob-1.0.0.tgz#6910bca5da8c95e784b5751b976cf5a10fee36d2" - integrity sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI= - -is-npm@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-3.0.0.tgz#ec9147bfb629c43f494cf67936a961edec7e8053" - integrity sha512-wsigDr1Kkschp2opC4G3yA6r9EgVA6NjRpWzIi9axXqeIaAATPRJc4uLujXe3Nd9uO8KoDyA4MD6aZSeXTADhA== - -is-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" - integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= - -is-path-inside@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" - integrity sha1-jvW33lBDej/cprToZe96pVy0gDY= - dependencies: - path-is-inside "^1.0.1" - -is-relative@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" - integrity sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA== - dependencies: - is-unc-path "^1.0.0" - -is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= - -is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= - -is-unc-path@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" - integrity sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ== - dependencies: - unc-path-regex "^0.1.2" - -is-utf8@0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" - integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= - -is-windows@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -is-yarn-global@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" - integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== - -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= - -isarray@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" - integrity sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4= - -isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -isbinaryfile@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.2.tgz#bfc45642da645681c610cca831022e30af426488" - integrity sha512-C3FSxJdNrEr2F4z6uFtNzECDM5hXk+46fxaa+cwBe5/XrWSmzdG8DDgyjfX6/NRdBB21q2JXuRAzPCUs+fclnQ== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= - -js-yaml@3.13.1, js-yaml@^3.13.1: - version "3.13.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" - integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= - -json-buffer@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" - integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= - -json-stringify-safe@5.0.1, json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= - -json5@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.1.tgz#81b6cb04e9ba496f1c7005d07b4368a2638f90b6" - integrity sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ== - dependencies: - minimist "^1.2.0" - -jsonata@1.6.5: - version "1.6.5" - resolved "https://registry.yarnpkg.com/jsonata/-/jsonata-1.6.5.tgz#845d0497473e7a18e7fe7bd5a9ee8c88620b5db4" - integrity sha512-iRx9U6AkvsjrRdFf9MMbQmGVAL3bXVANR12vbVxjgXouMPU9VJQEcFnLWUCaW8IDmOzdxsaxK4Xe7SGlBYr5Bg== - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= - optionalDependencies: - graceful-fs "^4.1.6" - -jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.2.3" - verror "1.10.0" - -keyv@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" - integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== - dependencies: - json-buffer "3.0.0" - -latest-version@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" - integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== - dependencies: - package-json "^6.3.0" - -lazy-val@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.4.tgz#882636a7245c2cfe6e0a4e3ba6c5d68a137e5c65" - integrity sha512-u93kb2fPbIrfzBuLjZE+w+fJbUUMhNDXxNmMfaqNgpfQf1CO5ZSe2LfsnBqVAk7i/2NF48OSoRj+Xe2VT+lE8Q== - -leven@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" - integrity sha1-wuep93IJTe6dNCAq6KzORoeHVYA= - -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - -lodash.assignin@^4.0.9: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.assignin/-/lodash.assignin-4.2.0.tgz#ba8df5fb841eb0a3e8044232b0e263a8dc6a28a2" - integrity sha1-uo31+4QesKPoBEIysOJjqNxqKKI= - -lodash.bind@^4.1.4: - version "4.2.1" - resolved "https://registry.yarnpkg.com/lodash.bind/-/lodash.bind-4.2.1.tgz#7ae3017e939622ac31b7d7d7dcb1b34db1690d35" - integrity sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU= - -lodash.defaults@^4.0.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" - integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw= - -lodash.filter@^4.4.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.filter/-/lodash.filter-4.6.0.tgz#668b1d4981603ae1cc5a6fa760143e480b4c4ace" - integrity sha1-ZosdSYFgOuHMWm+nYBQ+SAtMSs4= - -lodash.flatten@^4.2.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" - integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8= - -lodash.foreach@^4.3.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53" - integrity sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM= - -lodash.map@^4.4.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" - integrity sha1-dx7Hg540c9nEzeKLGTlMNWL09tM= - -lodash.merge@^4.4.0: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -lodash.pick@^4.2.1: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" - integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM= - -lodash.reduce@^4.4.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.reduce/-/lodash.reduce-4.6.0.tgz#f1ab6b839299ad48f784abbf476596f03b914d3b" - integrity sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs= - -lodash.reject@^4.4.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.reject/-/lodash.reject-4.6.0.tgz#80d6492dc1470864bbf583533b651f42a9f52415" - integrity sha1-gNZJLcFHCGS79YNTO2UfQqn1JBU= - -lodash.some@^4.4.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" - integrity sha1-G7nzFO9ri63tE7VJFpsqlF62jk0= - -lodash@^4.17.10: - version "4.17.15" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" - integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== - -lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" - integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== - -lowercase-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" - integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== - -lru-cache@^4.0.1, lru-cache@^4.0.3: - version "4.1.5" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" - integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - -make-dir@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" - integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== - dependencies: - pify "^3.0.0" - -matcher@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/matcher/-/matcher-2.0.0.tgz#85fe38d97670dbd2a46590cf099401e2ffb4755c" - integrity sha512-nlmfSlgHBFx36j/Pl/KQPbIaqE8Zf0TqmSMjsuddHDg6PMSVgmyW9HpkLs0o0M1n2GIZ/S2BZBLIww/xjhiGng== - dependencies: - escape-string-regexp "^2.0.0" - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= - -media-typer@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-1.1.0.tgz#6ab74b8f2d3320f2064b2a87a38e7931ff3a5561" - integrity sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw== - -memorystore@1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/memorystore/-/memorystore-1.6.1.tgz#c1df4e6892f303a7782537a4e1a49e4ec1d8ed53" - integrity sha512-rYRjVukgBR9sptGI3IfpAjZc4SkupddhAenUhPTGprnqM8Qh863PxfXxXWlfvHpMIAkJCok28Bm7ZlOKB4U+MA== - dependencies: - debug "3.1.0" - lru-cache "^4.0.3" - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= - -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= - -mime-db@1.40.0: - version "1.40.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" - integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA== - -"mime-db@>= 1.40.0 < 2": - version "1.42.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.42.0.tgz#3e252907b4c7adb906597b4b65636272cf9e7bac" - integrity sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ== - -mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24: - version "2.1.24" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" - integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ== - dependencies: - mime-db "1.40.0" - -mime@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -mime@2.4.4, mime@^2.4.4: - version "2.4.4" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5" - integrity sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA== - -mimic-response@^1.0.0, mimic-response@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" - integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== - -minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= - -minimist@^1.1.0, minimist@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= - -minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" - integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== - dependencies: - safe-buffer "^5.1.2" - yallist "^3.0.0" - -minizlib@^1.2.1: - version "1.3.3" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" - integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== - dependencies: - minipass "^2.9.0" - -mkdirp@0.5.1, mkdirp@^0.5.0, mkdirp@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= - dependencies: - minimist "0.0.8" - -moment-timezone@^0.5.x: - version "0.5.27" - resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.27.tgz#73adec8139b6fe30452e78f210f27b1f346b8877" - integrity sha512-EIKQs7h5sAsjhPCqN6ggx6cEbs94GK050254TIJySD1bzoM5JTYDwAU1IoVOeTOL6Gm27kYJ51/uuvq1kIlrbw== - dependencies: - moment ">= 2.9.0" - -"moment@>= 2.9.0": - version "2.24.0" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" - integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg== - -mqtt-packet@^5.6.0: - version "5.6.1" - resolved "https://registry.yarnpkg.com/mqtt-packet/-/mqtt-packet-5.6.1.tgz#8ecafce091f5af460664268a22b22091c8915f7b" - integrity sha512-eaF9rO2uFrIYEHomJxziuKTDkbWW5psLBaIGCazQSKqYsTaB3n4SpvJ1PexKaDBiPnMLPIFWBIiTYT3IfEJfww== - dependencies: - bl "^1.2.1" - inherits "^2.0.3" - process-nextick-args "^2.0.0" - safe-buffer "^5.1.0" - -mqtt@2.18.8: - version "2.18.8" - resolved "https://registry.yarnpkg.com/mqtt/-/mqtt-2.18.8.tgz#9d213ccab92151accfb21ee8c0860dc6866ab259" - integrity sha512-3h6oHlPY/yWwtC2J3geraYRtVVoRM6wdI+uchF4nvSSafXPZnaKqF8xnX+S22SU/FcgEAgockVIlOaAX3fkMpA== - dependencies: - commist "^1.0.0" - concat-stream "^1.6.2" - end-of-stream "^1.4.1" - es6-map "^0.1.5" - help-me "^1.0.1" - inherits "^2.0.3" - minimist "^1.2.0" - mqtt-packet "^5.6.0" - pump "^3.0.0" - readable-stream "^2.3.6" - reinterval "^1.1.0" - split2 "^2.1.1" - websocket-stream "^5.1.2" - xtend "^4.0.1" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" - integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== - -ms@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -multer@1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/multer/-/multer-1.4.2.tgz#2f1f4d12dbaeeba74cb37e623f234bf4d3d2057a" - integrity sha512-xY8pX7V+ybyUpbYMxtjM9KAiD9ixtg5/JkeKUTD6xilfDv0vzzOFcCp4Ljb1UU3tSOM3VTZtKo63OmzOrGi3Cg== - dependencies: - append-field "^1.0.0" - busboy "^0.2.11" - concat-stream "^1.5.2" - mkdirp "^0.5.1" - object-assign "^4.1.1" - on-finished "^2.3.0" - type-is "^1.6.4" - xtend "^4.0.0" - -mustache@3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/mustache/-/mustache-3.0.2.tgz#35bb886a1e5baad0a8f192258fe9a904f711868c" - integrity sha512-64neoEgmozb8e/ecGBOSE+RfnevLSFzCI0UKPcrWmjv953/8fXhYO9+EQFtfbi6hwoFxcTA+Fp5mRiOiI9eTuA== - -nan@2.13.2: - version "2.13.2" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.13.2.tgz#f51dc7ae66ba7d5d55e1e6d4d8092e802c9aefe7" - integrity sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw== - -needle@^2.2.1: - version "2.4.0" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c" - integrity sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg== - dependencies: - debug "^3.2.6" - iconv-lite "^0.4.4" - sax "^1.2.4" - -negotiator@0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" - integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== - -next-tick@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" - integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= - -node-pre-gyp@0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149" - integrity sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A== - dependencies: - detect-libc "^1.0.2" - mkdirp "^0.5.1" - needle "^2.2.1" - nopt "^4.0.1" - npm-packlist "^1.1.6" - npmlog "^4.0.2" - rc "^1.2.7" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^4" - -node-red-contrib-play-audio@*: - version "2.4.0" - resolved "https://registry.yarnpkg.com/node-red-contrib-play-audio/-/node-red-contrib-play-audio-2.4.0.tgz#2b06021bf38705f0be050bca65e7663c73dfae2e" - integrity sha512-wI5d0M8FZoIECBL8KOb4DDSTs5/Y8INZgZom+zJCMVjmWbDbK9aP5OeK7xKJXSbFHA00jlva5IfNrr/z1tA5yw== - -node-red-contrib-web-worldmap@*: - version "2.1.4" - resolved "https://registry.yarnpkg.com/node-red-contrib-web-worldmap/-/node-red-contrib-web-worldmap-2.1.4.tgz#aedf1cdfc34f3a145b314b97260aea060be15764" - integrity sha512-xFzAVgjW+qg3syO0diWvQNtgxzJlxy8iLVy0nnJZssF6dC/tTU6e4rmJDDMkEoDz1XM6vEwhRzhgpHr9E5ak3Q== - dependencies: - cgi "0.3.1" - compression "^1.7.4" - express "^4.16.4" - sockjs "^0.3.19" - -node-red-dashboard@*: - version "2.17.1" - resolved "https://registry.yarnpkg.com/node-red-dashboard/-/node-red-dashboard-2.17.1.tgz#e029dcebb02efb0d1693fff3c8c7922213a623ad" - integrity sha512-Qffw6p2ZV10PMDNPFXvuC9CKUu+vv6MMiYcXRSG62yS+4qk11zvAODIW1XelOw9X1H9k7q9E4v0f1iWtfSjL+w== - dependencies: - compression "^1.7.4" - serve-static "^1.14.1" - socket.io "^2.2.0" - -node-red-node-base64@*: - version "0.2.0" - resolved "https://registry.yarnpkg.com/node-red-node-base64/-/node-red-node-base64-0.2.0.tgz#f14a0e44a0533cd08e66fd68356757167f7466d6" - integrity sha512-IqGJ+nA6g2DdejVsGg3t90139CdzMEpP8jNhiywQm8W/LDM1yNU64RvMh2ECi3T0GHMVdglWCWJETSCYlC/19Q== - -node-red-node-geofence@*: - version "0.1.2" - resolved "https://registry.yarnpkg.com/node-red-node-geofence/-/node-red-node-geofence-0.1.2.tgz#3cdc0f409ba62e06e281c1c66c51209d36c1ee37" - integrity sha512-uAjTT54ZATPi7yDr/sztxcFCWGP1rtN3UIyI8uVG2QxagoG31xqzrc6EN1YbYrx2U10bHI//JJfXk3A0RiR+OQ== - dependencies: - geolib "^2.0.0" - -node-red-node-random@*: - version "0.1.4" - resolved "https://registry.yarnpkg.com/node-red-node-random/-/node-red-node-random-0.1.4.tgz#543a6ce1f9137d59aa845857f1877e088dfd7f44" - integrity sha512-UKgX5+6HgRagXcfpjeMn4vyB+QYQfhBFS8oXx0UBScqOveHWqpp2ASX8LIJWQ2uHHvRq+Nisa+mvv6AELXqbRw== - -node-red-node-rbe@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/node-red-node-rbe/-/node-red-node-rbe-0.2.5.tgz#dd43f4efaa68b1d10609e289a8379d5a7afb8b52" - integrity sha512-WPwIOZIdDprgfqOe8bEun47wkFFc+5Uw/1w3O/kZn/kS2IpI1q+wijUDK+Hw8q4d8KgA58B30wh+10UvXzsPDA== - -node-red-node-smooth@*: - version "0.1.2" - resolved "https://registry.yarnpkg.com/node-red-node-smooth/-/node-red-node-smooth-0.1.2.tgz#0dc7ae9d235e41ac2a13709e53c2cd093ab4871a" - integrity sha512-IpEOSOvz7UvkiOFQN4kIiv1Z6sxrRgbILG6IFR0CD/e1m0cK4iRsXpTi1Lofr+eiVQ0HaKXuZ2zIayPAIEFm0w== - -node-red-node-tail@^0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/node-red-node-tail/-/node-red-node-tail-0.0.3.tgz#91f9d44a557bbf671cfe8be4001ae229fdf60d23" - integrity sha512-wEiT7bSeU9oVHPK7S+mHb3cR6cIf9l205wTiHzhnUAuoDJS+IdwQkkpFgKTYmkL4Py2LvqCU90h85YpQul7QFQ== - dependencies: - tail "^2.0.2" - -node-red@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/node-red/-/node-red-1.0.2.tgz#d9055901603b1067c5e0cc110fb1eac0c8338f18" - integrity sha512-QSyPpAGGVFgVlKyumWFd8j2hd420+sh8DSxlvAtatDVaIG3+MaAD3eDLg49HIwRyAhiROVS1XNWkqyq/H1/cBA== - dependencies: - "@node-red/editor-api" "1.0.2" - "@node-red/nodes" "1.0.2" - "@node-red/runtime" "1.0.2" - "@node-red/util" "1.0.2" - basic-auth "2.0.1" - bcryptjs "2.4.3" - express "4.17.1" - fs-extra "8.1.0" - node-red-node-rbe "^0.2.5" - node-red-node-tail "^0.0.3" - nopt "4.0.1" - semver "6.3.0" - optionalDependencies: - bcrypt "3.0.6" - -nopt@4.0.1, nopt@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" - integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= - dependencies: - abbrev "1" - osenv "^0.1.4" - -normalize-package-data@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-url@^4.1.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" - integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== - -npm-bundled@^1.0.1: - version "1.0.6" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd" - integrity sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g== - -npm-conf@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/npm-conf/-/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9" - integrity sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw== - dependencies: - config-chain "^1.1.11" - pify "^3.0.0" - -npm-packlist@^1.1.6: - version "1.4.6" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.6.tgz#53ba3ed11f8523079f1457376dd379ee4ea42ff4" - integrity sha512-u65uQdb+qwtGvEJh/DgQgW1Xg7sqeNbmxYyrvlNznaVTjV3E5P6F/EFjM+BVHXl7JJlsdG8A64M0XI8FI/IOlg== - dependencies: - ignore-walk "^3.0.1" - npm-bundled "^1.0.1" - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= - dependencies: - path-key "^2.0.0" - -npmlog@^4.0.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" - integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== - dependencies: - are-we-there-yet "~1.1.2" - console-control-strings "~1.1.0" - gauge "~2.7.3" - set-blocking "~2.0.0" - -nth-check@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" - integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== - dependencies: - boolbase "~1.0.0" - -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= - -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - -oauth2orize@1.11.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/oauth2orize/-/oauth2orize-1.11.0.tgz#793cef251d45ebdeac32ae40a8b6814faab1d483" - integrity sha1-eTzvJR1F696sMq5AqLaBT6qx1IM= - dependencies: - debug "2.x.x" - uid2 "0.0.x" - utils-merge "1.x.x" - -object-assign@^4, object-assign@^4.1.0, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - -object-component@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" - integrity sha1-8MaapQ78lbhmwYb0AKM3acsvEpE= - -object-keys@^1.0.12: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -on-finished@^2.3.0, on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= - dependencies: - ee-first "1.1.1" - -on-headers@1.0.2, on-headers@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" - integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== - -once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -ordered-read-streams@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz#77c0cb37c41525d64166d990ffad7ec6a0e1363e" - integrity sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4= - dependencies: - readable-stream "^2.0.1" - -os-homedir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= - -os-tmpdir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= - -osenv@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" - integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.0" - -p-cancelable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" - integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= - -p-limit@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.1.tgz#aa07a788cc3151c939b5131f63570f0dd2009537" - integrity sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg== - dependencies: - p-try "^2.0.0" - -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== - dependencies: - p-limit "^2.0.0" - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -package-json@^6.3.0: - version "6.5.0" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" - integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== - dependencies: - got "^9.6.0" - registry-auth-token "^4.0.0" - registry-url "^5.0.0" - semver "^6.2.0" - -parseqs@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" - integrity sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0= - dependencies: - better-assert "~1.0.0" - -parseuri@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" - integrity sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo= - dependencies: - better-assert "~1.0.0" - -parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - -passport-http-bearer@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/passport-http-bearer/-/passport-http-bearer-1.0.1.tgz#147469ea3669e2a84c6167ef99dbb77e1f0098a8" - integrity sha1-FHRp6jZp4qhMYWfvmdu3fh8AmKg= - dependencies: - passport-strategy "1.x.x" - -passport-oauth2-client-password@0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/passport-oauth2-client-password/-/passport-oauth2-client-password-0.1.2.tgz#4f378b678b92d16dbbd233a6c706520093e561ba" - integrity sha1-TzeLZ4uS0W270jOmxwZSAJPlYbo= - dependencies: - passport-strategy "1.x.x" - -passport-strategy@1.x.x: - version "1.0.0" - resolved "https://registry.yarnpkg.com/passport-strategy/-/passport-strategy-1.0.0.tgz#b5539aa8fc225a3d1ad179476ddf236b440f52e4" - integrity sha1-tVOaqPwiWj0a0XlHbd8ja0QPUuQ= - -passport@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/passport/-/passport-0.4.0.tgz#c5095691347bd5ad3b5e180238c3914d16f05811" - integrity sha1-xQlWkTR71a07XhgCOMORTRbwWBE= - dependencies: - passport-strategy "1.x.x" - pause "0.0.1" - -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -path-is-inside@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= - -path-key@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= - -path-parse@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== - -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= - -pause@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/pause/-/pause-0.0.1.tgz#1d408b3fdb76923b9543d96fb4c9dfd535d9cb5d" - integrity sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10= - -pend@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" - integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= - -prepend-http@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" - integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= - -process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -proto-list@~1.2.1: - version "1.2.4" - resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" - integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= - -proxy-addr@~2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.5.tgz#34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34" - integrity sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ== - dependencies: - forwarded "~0.1.2" - ipaddr.js "1.9.0" - -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= - -psl@^1.1.24: - version "1.4.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.4.0.tgz#5dd26156cdb69fa1fdb8ab1991667d3f80ced7c2" - integrity sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw== - -pump@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" - integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pumpify@^1.3.5: - version "1.5.1" - resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" - integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== - dependencies: - duplexify "^3.6.0" - inherits "^2.0.3" - pump "^2.0.0" - -punycode@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= - -punycode@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -qs@6.7.0: - version "6.7.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" - integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== - -qs@~6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== - -random-bytes@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/random-bytes/-/random-bytes-1.0.0.tgz#4f68a1dc0ae58bd3fb95848c30324db75d64360b" - integrity sha1-T2ih3Arli9P7lYSMMDJNt11kNgs= - -range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" - integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== - dependencies: - bytes "3.1.0" - http-errors "1.7.2" - iconv-lite "0.4.24" - unpipe "1.0.0" - -raw-body@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.1.tgz#30ac82f98bb5ae8c152e67149dac8d55153b168c" - integrity sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA== - dependencies: - bytes "3.1.0" - http-errors "1.7.3" - iconv-lite "0.4.24" - unpipe "1.0.0" - -rc@^1.2.7, rc@^1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - -read-config-file@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/read-config-file/-/read-config-file-5.0.0.tgz#1487c983fae9c1b672d3acda5cac899a2d451f02" - integrity sha512-jIKUu+C84bfnKxyJ5j30CxCqgXWYjZLXuVE/NYlMEpeni+dhESgAeZOZd0JZbg1xTkMmnCdxksDoarkOyfEsOg== - dependencies: - dotenv "^8.0.0" - dotenv-expand "^5.1.0" - fs-extra "^8.1.0" - js-yaml "^3.13.1" - json5 "^2.1.0" - lazy-val "^1.0.4" - -readable-stream@1.1.x: - version "1.1.14" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" - integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk= - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -"readable-stream@> 1.0.0 < 3.0.0", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6: - version "2.3.6" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" - integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@^3.1.1: - version "3.4.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc" - integrity sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -regenerator-runtime@^0.13.2: - version "0.13.3" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz#7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5" - integrity sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw== - -registry-auth-token@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.0.0.tgz#30e55961eec77379da551ea5c4cf43cbf03522be" - integrity sha512-lpQkHxd9UL6tb3k/aHAVfnVtn+Bcs9ob5InuFLLEDqSqeq+AljB8GZW9xY0x7F+xYwEcjKe07nyoxzEYz6yvkw== - dependencies: - rc "^1.2.8" - safe-buffer "^5.0.1" - -registry-url@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" - integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== - dependencies: - rc "^1.2.8" - -reinterval@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/reinterval/-/reinterval-1.1.0.tgz#3361ecfa3ca6c18283380dd0bb9546f390f5ece7" - integrity sha1-M2Hs+jymwYKDOA3Qu5VG85D17Oc= - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= - -request@2.88.0: - version "2.88.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" - integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.0" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.4.3" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - -resolve@^1.10.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6" - integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w== - dependencies: - path-parse "^1.0.6" - -responselike@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" - integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= - dependencies: - lowercase-keys "^1.0.0" - -retry@~0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.6.1.tgz#fdc90eed943fde11b893554b8cc63d0e899ba918" - integrity sha1-/ckO7ZQ/3hG4k1VLjMY9DombqRg= - -rimraf@^2.6.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -roarr@^2.14.2: - version "2.14.2" - resolved "https://registry.yarnpkg.com/roarr/-/roarr-2.14.2.tgz#49a51bfe1fd6a399c061f4e5a710e02da8b88ac7" - integrity sha512-ibqv70DCUhGVMfPe0JSUHBZ9PKLhxdk8VJ/Y2M7vVr+L4VakW1CdVTU9cJQBbM2STQa84CgBAzd7hJGcnALGeg== - dependencies: - boolean "^2.0.2" - detect-node "^2.0.4" - globalthis "^1.0.0" - json-stringify-safe "^5.0.1" - semver-compare "^1.0.0" - sprintf-js "^1.1.2" - -safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" - integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== - -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sanitize-filename@^1.6.2, sanitize-filename@^1.6.3: - version "1.6.3" - resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz#755ebd752045931977e30b2025d340d7c9090378" - integrity sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg== - dependencies: - truncate-utf8-bytes "^1.0.0" - -sax@>=0.6.0, sax@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== - -semver-compare@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" - integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= - -semver-diff@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" - integrity sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY= - dependencies: - semver "^5.0.3" - -"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.3.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@6.3.0, semver@^6.2.0, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -send@0.17.1: - version "0.17.1" - resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" - integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== - dependencies: - debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "~1.7.2" - mime "1.6.0" - ms "2.1.1" - on-finished "~2.3.0" - range-parser "~1.2.1" - statuses "~1.5.0" - -serialize-error@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-5.0.0.tgz#a7ebbcdb03a5d71a6ed8461ffe0fc1a1afed62ac" - integrity sha512-/VtpuyzYf82mHYTtI4QKtwHa79vAdU5OQpNPAmE/0UDdlGT0ZxHwC+J6gXkw29wwoVI8fMPsfcVHOwXtUQYYQA== - dependencies: - type-fest "^0.8.0" - -serve-static@1.14.1, serve-static@^1.14.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" - integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.17.1" - -set-blocking@^2.0.0, set-blocking@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - -setprototypeof@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" - integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= - dependencies: - shebang-regex "^1.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= - -signal-exit@^3.0.0, signal-exit@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" - integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= - -socket.io-adapter@~1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz#2a805e8a14d6372124dd9159ad4502f8cb07f06b" - integrity sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs= - -socket.io-client@2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.3.0.tgz#14d5ba2e00b9bcd145ae443ab96b3f86cbcc1bb4" - integrity sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA== - dependencies: - backo2 "1.0.2" - base64-arraybuffer "0.1.5" - component-bind "1.0.0" - component-emitter "1.2.1" - debug "~4.1.0" - engine.io-client "~3.4.0" - has-binary2 "~1.0.2" - has-cors "1.1.0" - indexof "0.0.1" - object-component "0.0.3" - parseqs "0.0.5" - parseuri "0.0.5" - socket.io-parser "~3.3.0" - to-array "0.1.4" - -socket.io-parser@~3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.0.tgz#2b52a96a509fdf31440ba40fed6094c7d4f1262f" - integrity sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng== - dependencies: - component-emitter "1.2.1" - debug "~3.1.0" - isarray "2.0.1" - -socket.io-parser@~3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.4.0.tgz#370bb4a151df2f77ce3345ff55a7072cc6e9565a" - integrity sha512-/G/VOI+3DBp0+DJKW4KesGnQkQPFmUCbA/oO2QGT6CWxU7hLGWqU3tyuzeSK/dqcyeHsQg1vTe9jiZI8GU9SCQ== - dependencies: - component-emitter "1.2.1" - debug "~4.1.0" - isarray "2.0.1" - -socket.io@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.3.0.tgz#cd762ed6a4faeca59bc1f3e243c0969311eb73fb" - integrity sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg== - dependencies: - debug "~4.1.0" - engine.io "~3.4.0" - has-binary2 "~1.0.2" - socket.io-adapter "~1.1.0" - socket.io-client "2.3.0" - socket.io-parser "~3.4.0" - -sockjs@^0.3.19: - version "0.3.19" - resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.19.tgz#d976bbe800af7bd20ae08598d582393508993c0d" - integrity sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw== - dependencies: - faye-websocket "^0.10.0" - uuid "^3.0.1" - -source-map-support@^0.5.13: - version "0.5.13" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" - integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.6.0, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -spdx-correct@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" - integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" - integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA== - -spdx-expression-parse@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" - integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.5" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" - integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== - -split2@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/split2/-/split2-2.2.0.tgz#186b2575bcf83e85b7d18465756238ee4ee42493" - integrity sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw== - dependencies: - through2 "^2.0.2" - -sprintf-js@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" - integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - -sshpk@^1.7.0: - version "1.16.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" - integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -stat-mode@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/stat-mode/-/stat-mode-0.3.0.tgz#69283b081f851582b328d2a4ace5f591ce52f54b" - integrity sha512-QjMLR0A3WwFY2aZdV0okfFEJB5TRjkggXZjxP3A1RsWsNHNu3YPv8btmtc6iCFZ0Rul3FE93OYogvhOUClU+ng== - -"statuses@>= 1.5.0 < 2", statuses@~1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= - -stream-shift@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" - integrity sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI= - -"stream-stack@>= 1.1.1", stream-stack@~1.1.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/stream-stack/-/stream-stack-1.1.4.tgz#70846042bab0185008e509edfe1f77f9361cba69" - integrity sha1-cIRgQrqwGFAI5Qnt/h93+TYcumk= - -streamsearch@0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" - integrity sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo= - -string-width@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -"string-width@^1.0.2 || 2", string-width@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -string-width@^3.0.0, string-width@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= - dependencies: - ansi-regex "^3.0.0" - -strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= - -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= - -sumchecker@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-3.0.0.tgz#da5457b4605184575c76540e5e99cc777cb8ce4c" - integrity sha512-yreseuC/z4iaodVoq07XULEOO9p4jnQazO7mbrnDSvWAU/y2cbyIKs+gWJptfcGu9R+1l27K8Rkj0bfvqnBpgQ== - dependencies: - debug "^4.1.0" - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -tail@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/tail/-/tail-2.0.3.tgz#37567adc4624a70b35f1d146c3376fa3d6ef7c04" - integrity sha512-s9NOGkLqqiDEtBttQZI7acLS8ycYK5sTlDwNjGnpXG9c8AWj0cfAtwEIzo/hVRMMiC5EYz+bXaJWC1u1u0GPpQ== - -tar@^4: - version "4.4.13" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" - integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== - dependencies: - chownr "^1.1.1" - fs-minipass "^1.2.5" - minipass "^2.8.6" - minizlib "^1.2.1" - mkdirp "^0.5.0" - safe-buffer "^5.1.2" - yallist "^3.0.3" - -temp-file@^3.3.4: - version "3.3.4" - resolved "https://registry.yarnpkg.com/temp-file/-/temp-file-3.3.4.tgz#73af868cd7cb7400a44e4bb03e653b2280ce2878" - integrity sha512-qSZ5W5q54iyGnP8cNl49RE0jTJc5CrzNocux5APD5yIxcgonoMuMSbsZfaZy8rTGCYo0Xz6ySVv3adagZ8gffg== - dependencies: - async-exit-hook "^2.0.1" - fs-extra "^8.1.0" - -term-size@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" - integrity sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk= - dependencies: - execa "^0.7.0" - -through2-filter@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-3.0.0.tgz#700e786df2367c2c88cd8aa5be4cf9c1e7831254" - integrity sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA== - dependencies: - through2 "~2.0.0" - xtend "~4.0.0" - -through2@^2.0.1, through2@^2.0.2, through2@~2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - -to-absolute-glob@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz#1865f43d9e74b0822db9f145b78cff7d0f7c849b" - integrity sha1-GGX0PZ50sIItufFFt4z/fQ98hJs= - dependencies: - is-absolute "^1.0.0" - is-negated-glob "^1.0.0" - -to-array@0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" - integrity sha1-F+bBH3PdTz10zaek/zI46a2b+JA= - -to-readable-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" - integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== - -toidentifier@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" - integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== - -tough-cookie@~2.4.3: - version "2.4.3" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" - integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ== - dependencies: - psl "^1.1.24" - punycode "^1.4.1" - -truncate-utf8-bytes@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b" - integrity sha1-QFkjkJWS1W94pYGENLC3hInKXys= - dependencies: - utf8-byte-length "^1.0.1" - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= - dependencies: - safe-buffer "^5.0.1" - -tunnel@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" - integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= - -type-fest@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1" - integrity sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ== - -type-fest@^0.8.0: - version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== - -type-is@^1.6.4, type-is@~1.6.17, type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - -type@^1.0.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" - integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= - -uglify-js@3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.6.0.tgz#704681345c53a8b2079fb6cec294b05ead242ff5" - integrity sha512-W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg== - dependencies: - commander "~2.20.0" - source-map "~0.6.1" - -uid-safe@~2.1.5: - version "2.1.5" - resolved "https://registry.yarnpkg.com/uid-safe/-/uid-safe-2.1.5.tgz#2b3d5c7240e8fc2e58f8aa269e5ee49c0857bd3a" - integrity sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA== - dependencies: - random-bytes "~1.0.0" - -uid2@0.0.x: - version "0.0.3" - resolved "https://registry.yarnpkg.com/uid2/-/uid2-0.0.3.tgz#483126e11774df2f71b8b639dcd799c376162b82" - integrity sha1-SDEm4Rd03y9xuLY53NeZw3YWK4I= - -ultron@~1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" - integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og== - -unc-path-regex@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" - integrity sha1-5z3T17DXxe2G+6xrCufYxqadUPo= - -unique-stream@^2.0.2: - version "2.3.1" - resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.3.1.tgz#c65d110e9a4adf9a6c5948b28053d9a8d04cbeac" - integrity sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A== - dependencies: - json-stable-stringify-without-jsonify "^1.0.1" - through2-filter "^3.0.0" - -unique-string@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" - integrity sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo= - dependencies: - crypto-random-string "^1.0.0" - -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= - -update-notifier@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-3.0.1.tgz#78ecb68b915e2fd1be9f767f6e298ce87b736250" - integrity sha512-grrmrB6Zb8DUiyDIaeRTBCkgISYUgETNe7NglEbVsrLWXeESnlCSP50WfRSj/GmzMPl6Uchj24S/p80nP/ZQrQ== - dependencies: - boxen "^3.0.0" - chalk "^2.0.1" - configstore "^4.0.0" - has-yarn "^2.1.0" - import-lazy "^2.1.0" - is-ci "^2.0.0" - is-installed-globally "^0.1.0" - is-npm "^3.0.0" - is-yarn-global "^0.3.0" - latest-version "^5.0.0" - semver-diff "^2.0.0" - xdg-basedir "^3.0.0" - -uri-js@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" - integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== - dependencies: - punycode "^2.1.0" - -url-parse-lax@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" - integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= - dependencies: - prepend-http "^2.0.0" - -utf8-byte-length@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61" - integrity sha1-9F8VDExm7uloGGUFq5P8u4rWv2E= - -util-deprecate@^1.0.1, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -utils-merge@1.0.1, utils-merge@1.x.x: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= - -uuid@^3.0.1, uuid@^3.3.2: - version "3.3.3" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866" - integrity sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ== - -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -vary@^1, vary@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -websocket-driver@>=0.5.1: - version "0.7.3" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.3.tgz#a2d4e0d4f4f116f1e6297eba58b05d430100e9f9" - integrity sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg== - dependencies: - http-parser-js ">=0.4.0 <0.4.11" - safe-buffer ">=5.1.0" - websocket-extensions ">=0.1.1" - -websocket-extensions@>=0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" - integrity sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg== - -websocket-stream@^5.1.2: - version "5.5.0" - resolved "https://registry.yarnpkg.com/websocket-stream/-/websocket-stream-5.5.0.tgz#9827f2846fc0d2b4dca7aab8f92980b2548b868e" - integrity sha512-EXy/zXb9kNHI07TIMz1oIUIrPZxQRA8aeJ5XYg5ihV8K4kD1DuA+FY6R96HfdIHzlSzS8HiISAfrm+vVQkZBug== - dependencies: - duplexify "^3.5.1" - inherits "^2.0.1" - readable-stream "^2.3.3" - safe-buffer "^5.1.2" - ws "^3.2.0" - xtend "^4.0.0" - -when@3.7.8: - version "3.7.8" - resolved "https://registry.yarnpkg.com/when/-/when-3.7.8.tgz#c7130b6a7ea04693e842cdc9e7a1f2aa39a39f82" - integrity sha1-xxMLan6gRpPoQs3J56Hyqjmjn4I= - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= - -which@^1.2.9: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -wide-align@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" - integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== - dependencies: - string-width "^1.0.2 || 2" - -widest-line@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc" - integrity sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA== - dependencies: - string-width "^2.1.1" - -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^5.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -write-file-atomic@^2.0.0: - version "2.4.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" - integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== - dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - signal-exit "^3.0.2" - -ws@6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" - integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== - dependencies: - async-limiter "~1.0.0" - -ws@^3.2.0: - version "3.3.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" - integrity sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA== - dependencies: - async-limiter "~1.0.0" - safe-buffer "~5.1.0" - ultron "~1.1.0" - -ws@^7.1.2: - version "7.2.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.2.0.tgz#422eda8c02a4b5dba7744ba66eebbd84bcef0ec7" - integrity sha512-+SqNqFbwTm/0DC18KYzIsMTnEWpLwJsiasW/O17la4iDRRIO9uaHbvKiAS3AHgTiuuWerK/brj4O6MYZkei9xg== - dependencies: - async-limiter "^1.0.0" - -ws@~6.1.0: - version "6.1.4" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.4.tgz#5b5c8800afab925e94ccb29d153c8d02c1776ef9" - integrity sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA== - dependencies: - async-limiter "~1.0.0" - -xdg-basedir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" - integrity sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ= - -xml2js@0.4.19: - version "0.4.19" - resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7" - integrity sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q== - dependencies: - sax ">=0.6.0" - xmlbuilder "~9.0.1" - -xmlbuilder@~9.0.1: - version "9.0.7" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" - integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0= - -xmlhttprequest-ssl@~1.5.4: - version "1.5.5" - resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e" - integrity sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4= - -xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -y18n@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" - integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== - -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= - -yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - -yargs-parser@^15.0.0: - version "15.0.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-15.0.0.tgz#cdd7a97490ec836195f59f3f4dbe5ea9e8f75f08" - integrity sha512-xLTUnCMc4JhxrPEPUYD5IBR1mWCK/aT6+RJ/K29JY2y1vD+FhtgKK0AXRWvI262q3QSffAQuTouFIKUuHX89wQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs@^14.0.0: - version "14.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-14.2.0.tgz#f116a9242c4ed8668790b40759b4906c276e76c3" - integrity sha512-/is78VKbKs70bVZH7w4YaZea6xcJWOAwkhbR0CFuZBmYtfTYF0xjGJF43AYd8g2Uii1yJwmS5GR2vBmrc32sbg== - dependencies: - cliui "^5.0.0" - decamelize "^1.2.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^15.0.0" - -yauzl@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005" - integrity sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU= - dependencies: - fd-slicer "~1.0.1" - -yeast@0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" - integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk= From 307d06ded438c1027a004d272762dc817eb310a0 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Fri, 15 Nov 2019 23:33:40 +0000 Subject: [PATCH 065/127] move some options to package.json section --- .gitignore | 1 + README.md | 6 ++++-- main.js | 45 +++++++++++++++++++++++++-------------------- package.json | 11 ++++++++++- 4 files changed, 40 insertions(+), 23 deletions(-) diff --git a/.gitignore b/.gitignore index 746b5a9..efdc8c3 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ node_modules *.backup logs *.log +yarn.lock diff --git a/README.md b/README.md index 0697b99..1a8ce45 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,9 @@ This is an Electron template to embed [Node-RED](https://nodered.org) with a Das This is not intended to be a useful tool as-is, but as a base for you to create your own versions. You will need to edit the `main.js` to suit your application and update the `package.json` file to include your own required nodes and dependencies. -At the top of `main.js` are a couple of flags you can switch to turn off editing, allow loading of a different flow file (and save as), and add the worldmap to the menu. Again these are only there to show you possibilities. Have fun. +There are several simple switches that can be set in the `NRelectron` section of +the `package.json` file. More significant modifications will require modification +of the `main.js` file. Have fun. ## Configuring the project for building @@ -65,7 +67,7 @@ These can be changed by editing the build section of the `package.json` file, se Electron-builder has a pre-configured Docker image that can help you build cross platform images if you like Docker - again read [their docs](https://www.electron.build/multi-platform-build#build-electron-app-using-docker-on-a-local-machine). -This is very useful if you need to build for Windows on a Mac as the electron-builder invokes wine which is only 32-bit and so can't be run under Catalina. +This is very useful if you need to build for Windows on a Mac as the electron-builder invokes **wine** which is only 32-bit and so can't be run under Catalina. ## Developing and Testing - Running locally diff --git a/main.js b/main.js index 60ac631..ad4da67 100755 --- a/main.js +++ b/main.js @@ -1,26 +1,31 @@ 'use strict'; +const pkg = require('./package.json'); +let options; +if (pkg.hasOwnProperty("NRelectron")) { options = pkg["NRelectron"] } -// Some settings you can edit easily - -const editable = true; // set this to false to create a run only application - no editor/no console -const allowLoadSave = false; // set to true to allow import and export of flow file -const showMap = false; // set to true to add Worldmap to the menu -const kioskMode = false; // set to true to start in kiosk mode +// Some settings you can edit if you don't set them in package.json +console.log(options) +const editable = options.editable || true; // set this to false to create a run only application - no editor/no console +const allowLoadSave = options.allowLoadSave || false; // set to true to allow import and export of flow file +const showMap = options.showMap || false; // set to true to add Worldmap to the menu +const kioskMode = options.kioskMode || false; // set to true to start in kiosk mode +let flowfile = options.flowFile || 'electronflow.json'; // default Flows file name - loaded at start -let flowfile = 'electronflow.json'; // default Flows file name - loaded at start const urldash = "/ui/#/0"; // url for the dashboard page const urledit = "/red"; // url for the editor page const urlconsole = "/console.htm"; // url for the console page const urlmap = "/worldmap"; // url for the worldmap const nrIcon = "nodered.png" // Icon for the app in root dir (usually 256x256) -const urlStart = urldash; // Start on this page +let urlStart; // Start on this page +if (options.start.toLowerCase() === "editor") { urlStart = urledit; } +else if (options.start.toLowerCase() === "map") { urlStart = urlmap; } +else { urlStart = urldash; } // TCP port to use //const listenPort = "18880"; // fix it if you like const listenPort = parseInt(Math.random()*16383+49152) // or random ephemeral port -const pkg = require('./package.json'); const os = require('os'); const fs = require('fs'); const url = require('url'); @@ -208,7 +213,7 @@ if (!allowLoadSave) { template[0].submenu.splice(0,2); } // Top and tail menu on Mac if (process.platform === 'darwin') { template[0].submenu.unshift({ type: 'separator' }); - template[0].submenu.unshift({ label: "About Node-RED", selector: "orderFrontStandardAboutPanel:" }); + template[0].submenu.unshift({ label: "About "+options.productName||"Node-RED Electron", selector: "orderFrontStandardAboutPanel:" }); template[0].submenu.unshift({ type: 'separator' }); template[0].submenu.unshift({ type: 'separator' }); } @@ -337,15 +342,15 @@ function createWindow() { // console.log("FINISHED LOAD",a); // }); - mainWindow.webContents.on("new-window", function(e, url, frameName, disposition, options) { + mainWindow.webContents.on("new-window", function(e, url, frameName, disposition, option) { // if a child window opens... modify any other options such as width/height, etc // in this case make the child overlap the parent exactly... //console.log("NEW WINDOW",url); var w = mainWindow.getBounds(); - options.x = w.x; - options.y = w.y; - options.width = w.width; - options.height = w.height; + option.x = w.x; + option.y = w.y; + option.width = w.width; + option.height = w.height; }) mainWindow.on('closed', () => { @@ -374,15 +379,15 @@ app.on('activate', function() { // dock icon is clicked and there are no other windows open. if (mainWindow === null) { createWindow(); - mainWindow.loadURL("http://localhost:"+listenPort+urldash); + mainWindow.loadURL("http://localhost:"+listenPort+urlStart); } }); if (process.platform === 'darwin') { app.setAboutPanelOptions({ - applicationName: pkg.productName, - version: pkg.version, - copyright: "Copyright © 2019, D Conway-Jones.", + applicationVersion: pkg.version, + version: pkg.dependencies["node-red"], + copyright: "Copyright © 2019, "+pkg.author.name, credits: "Node-RED and other components are copyright the JS Foundation and other contributors." }); } @@ -390,6 +395,6 @@ if (process.platform === 'darwin') { // Start the Node-RED runtime, then load the inital dashboard page RED.start().then(function() { server.listen(listenPort,"localhost",function() { - mainWindow.loadURL("http://localhost:"+listenPort+urldash); + mainWindow.loadURL("http://localhost:"+listenPort+urlStart); }); }); \ No newline at end of file diff --git a/package.json b/package.json index 6228288..159316f 100644 --- a/package.json +++ b/package.json @@ -45,10 +45,19 @@ "electron": "^7.1.1", "electron-builder": "^22.1.0" }, + "NRelectron": { + "productName": "Node-RED Electron", + "editable": true, + "allowLoadSave": false, + "showMap": false, + "kioskMode": false, + "flowFile": "electronflow.json", + "start": "dashboard" + }, "build": { "npmRebuild": false, "appId": "com.electron.node-red", - "productName": "Node-RED", + "productName": "Node-RED Electron", "copyright": "Copyright © 2019 D.Conway-Jones", "mac": { "category": "public.app-category.developer-tools", From ee36d87cbdeeecb65f089c860747f35202a945ca Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Fri, 15 Nov 2019 23:43:30 +0000 Subject: [PATCH 066/127] Update .travis.yml --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 58fffdf..8dc0cb9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -21,6 +21,7 @@ cache: script: - | + npm i -g yarn if [ "$TRAVIS_OS_NAME" == "linux" ]; then docker run --rm \ --env-file <(env | grep -vE '\r|\n' | grep -iE 'DEBUG|NODE_|ELECTRON_|YARN_|NPM_|CI|CIRCLE|TRAVIS_TAG|TRAVIS|TRAVIS_REPO_|TRAVIS_BUILD_|TRAVIS_BRANCH|TRAVIS_PULL_REQUEST_|APPVEYOR_|CSC_|GH_|GITHUB_|BT_|AWS_|STRIP|BUILD_') \ @@ -37,4 +38,4 @@ before_cache: branches: except: - - "/^v\\d+\\.\\d+\\.\\d+$/" \ No newline at end of file + - "/^v\\d+\\.\\d+\\.\\d+$/" From 524b278c1bec323916e6a8d4ef96f88a303ca666 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Sat, 16 Nov 2019 00:15:10 +0000 Subject: [PATCH 067/127] Update package.json --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index 159316f..595fede 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,6 @@ "start": "dashboard" }, "build": { - "npmRebuild": false, "appId": "com.electron.node-red", "productName": "Node-RED Electron", "copyright": "Copyright © 2019 D.Conway-Jones", From ef04bf5e87aa28c16b9a8c546757889f1d7e73ec Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Sat, 16 Nov 2019 00:32:30 +0000 Subject: [PATCH 068/127] Update package.json --- package.json | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 595fede..7a0b5d5 100644 --- a/package.json +++ b/package.json @@ -64,8 +64,15 @@ }, "linux": { "target": [ - "deb", - "rpm" + "rpm", + "apk", + { + "target": "deb", + "arch": [ + "x64", + "armv7l" + ] + } ], "synopsis": "Node-RED Low Code development", "category": "Development" From 1ec358a1105e450b669252a9cf186aa99bd459ab Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Sat, 16 Nov 2019 23:44:59 +0000 Subject: [PATCH 069/127] Don't auto hide View menu on windows and Linux --- .gitignore | 13 +++++-------- dockbuild => dockerbuilder | 2 +- electronflow.json | 2 +- main.js | 9 +++++---- 4 files changed, 12 insertions(+), 14 deletions(-) rename dockbuild => dockerbuilder (91%) diff --git a/.gitignore b/.gitignore index efdc8c3..2c41b3f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,18 +1,15 @@ dist/* lib/* -package-lock.json node_modules +logs .config.json -.flows.json.backup +.electronflow* .sessions.json *darwin-x64* *linux-x64* *win32-x64* -*.back -.config.json.backup -.electronflow* -*.backup -logs +*.back* *.log -yarn.lock +*lock* +*error* diff --git a/dockbuild b/dockerbuilder similarity index 91% rename from dockbuild rename to dockerbuilder index 8cd9c3e..5a961be 100755 --- a/dockbuild +++ b/dockerbuilder @@ -1 +1 @@ -docker run --rm -ti --env-file <(env | grep -iE 'DEBUG|NODE_|ELECTRON_|YARN_|NPM_|CI|CIRCLE|TRAVIS_TAG|TRAVIS|TRAVIS_REPO_|TRAVIS_BUILD_|TRAVIS_BRANCH|TRAVIS_PULL_REQUEST_|APPVEYOR_|CSC_|GH_|GITHUB_|BT_|AWS_|STRIP|BUILD_') --env ELECTRON_CACHE="/root/.cache/electron" --env ELECTRON_BUILDER_CACHE="/root/.cache/electron-builder" -v ${PWD}:/project -v ${PWD##*/}-node-modules:/project/node_modules -v ~/.cache/electron:/root/.cache/electron -v ~/.cache/electron-builder:/root/.cache/electron-builder electronuserland/builder:wine && yarn && yarn dist +docker run --rm -ti --env-file <(env | grep -iE 'DEBUG|NODE_|ELECTRON_|YARN_|NPM_|CI|CIRCLE|TRAVIS_TAG|TRAVIS|TRAVIS_REPO_|TRAVIS_BUILD_|TRAVIS_BRANCH|TRAVIS_PULL_REQUEST_|APPVEYOR_|CSC_|GH_|GITHUB_|BT_|AWS_|STRIP|BUILD_') --env ELECTRON_CACHE="/root/.cache/electron" --env ELECTRON_BUILDER_CACHE="/root/.cache/electron-builder" -v ${PWD}:/project -v ${PWD##*/}-node-modules:/project/node_modules -v ~/.cache/electron:/root/.cache/electron -v ~/.cache/electron-builder:/root/.cache/electron-builder electronuserland/builder:wine diff --git a/electronflow.json b/electronflow.json index 7e2201c..d8fbe3c 100644 --- a/electronflow.json +++ b/electronflow.json @@ -1 +1 @@ -[{"id":"41f61d2.fbe09e4","type":"tab","label":"Flow 1"},{"id":"52a903f3.ad56fc","type":"ui_tab","z":"41f61d2.fbe09e4","name":"Home","icon":"dashboard"},{"id":"30e652f.d9de3ae","type":"ui_group","z":"41f61d2.fbe09e4","name":"Panel 2","tab":"52a903f3.ad56fc","order":5,"disp":true,"width":"6"},{"id":"a8ecb9.c60f4348","type":"ui_group","z":"41f61d2.fbe09e4","name":"Introduction","tab":"52a903f3.ad56fc","order":1,"disp":false,"width":"4","collapse":false},{"id":"bbdf3e02.e8fee","type":"ui_group","z":"41f61d2.fbe09e4","name":"Panel 1","tab":"52a903f3.ad56fc","order":2,"disp":true,"width":"6"},{"id":"d9ba26fa.6d2b18","type":"ui_base","theme":{"name":"theme-light","lightTheme":{"default":"#0094CE","baseColor":"#8e0d17","baseFont":"Gill Sans,Geneva,sans-serif","edited":true,"reset":false},"darkTheme":{"default":"#097479","baseColor":"#097479","baseFont":"Helvetica Neue","edited":false},"customTheme":{"name":"Untitled Theme 1","default":"#4B7930","baseColor":"#4B7930","baseFont":"Helvetica Neue"},"themeState":{"base-color":{"default":"#0094CE","value":"#d80005","edited":true},"page-titlebar-backgroundColor":{"value":"#8e0d17","edited":false},"page-backgroundColor":{"value":"#fafafa","edited":false},"page-sidebar-backgroundColor":{"value":"#000000","edited":false},"group-textColor":{"value":"#d41322","edited":false},"group-borderColor":{"value":"#ffffff","edited":false},"group-backgroundColor":{"value":"#ffffff","edited":false},"widget-textColor":{"value":"#111111","edited":false},"widget-backgroundColor":{"value":"#8e0d17","edited":false},"widget-borderColor":{"value":"#ffffff","edited":false},"base-font":{"value":"Gill Sans,Geneva,sans-serif"}}},"site":{"name":"Node-RED Dashboard","hideToolbar":"false","allowSwipe":"false","dateFormat":"DD/MM/YYYY","sizes":{"sx":48,"sy":48,"gx":6,"gy":6,"cx":6,"cy":6,"px":0,"py":0}}},{"id":"87356b62.92e3d8","type":"ui_group","z":"","name":"Text to Speech","tab":"52a903f3.ad56fc","order":3,"disp":true,"width":"6"},{"id":"c75ad4f0.0cede8","type":"ui_group","z":"","name":"Map","tab":"52a903f3.ad56fc","order":4,"disp":true,"width":"6"},{"id":"189cf871.681118","type":"ui_template","z":"41f61d2.fbe09e4","group":"a8ecb9.c60f4348","name":"Welcome","order":1,"width":"4","height":"9","format":"

Welcome to the Node-RED Dashboard

\n

On the right you will see a graph and a gauge logging data from the sliders underneath.

\n

There is also an example of embedding a small map.

","storeOutMessages":false,"fwdInMessages":false,"templateScope":"local","x":93,"y":45,"wires":[[]]},{"id":"9f19ee5c.beaef","type":"ui_chart","z":"41f61d2.fbe09e4","name":"","group":"bbdf3e02.e8fee","order":1,"width":"0","height":"0","label":"","chartType":"line","xformat":"HH:mm:ss","interpolate":"basis","nodata":"No Data","dot":false,"ymin":"0","ymax":"100","removeOlder":1,"removeOlderPoints":"","removeOlderUnit":"60","cutout":"","colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"outputs":2,"x":270,"y":200,"wires":[[],[]]},{"id":"799d9318.fd385c","type":"ui_gauge","z":"41f61d2.fbe09e4","name":"","group":"30e652f.d9de3ae","order":2,"width":"","height":"","gtype":"gage","title":"Title","label":"gauge","format":"{{value}}","min":0,"max":"100","colors":["#00b500","#e6e600","#ca3838"],"x":270,"y":140,"wires":[]},{"id":"6f18b200.666a4","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"87356b62.92e3d8","order":2,"width":0,"height":0,"label":"press to talk","color":"","bgcolor":"","icon":"fa-volume-up","payload":"Hello to Jason Isaacs","payloadType":"str","topic":"","x":110,"y":320,"wires":[["f897d7c2.467a58"]]},{"id":"f897d7c2.467a58","type":"ui_audio","z":"41f61d2.fbe09e4","name":"","group":"30e652f.d9de3ae","voice":"0","x":300,"y":320,"wires":[]},{"id":"da0f7e67.0d38a","type":"ui_slider","z":"41f61d2.fbe09e4","name":"","label":"slider","group":"30e652f.d9de3ae","order":4,"width":0,"height":0,"passthru":true,"topic":"","min":0,"max":"100","step":1,"x":90,"y":140,"wires":[["799d9318.fd385c","219da65f.e0b0da"]]},{"id":"eabf2bd7.f4e0c8","type":"ui_slider","z":"41f61d2.fbe09e4","name":"","label":"slider","group":"bbdf3e02.e8fee","order":4,"width":0,"height":0,"passthru":true,"topic":"","min":0,"max":"100","step":1,"x":130,"y":200,"wires":[["9f19ee5c.beaef","ccee40e3.c1618"]]},{"id":"45508d88.744a54","type":"function","z":"41f61d2.fbe09e4","name":"","func":"// create random position\nvar lat = 51 + Math.random() * 0.2;\nvar lon = -1.45 + Math.random() * 0.2;\nmsg.payload={lat:lat, lon:lon, name:\"Jason\", icon:\"male\", url:\"IBM link\"};\nreturn msg;","outputs":1,"noerr":0,"x":290,"y":400,"wires":[["f76b15b1.dd27a8"]]},{"id":"6ca8cfc2.e0bce","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"c75ad4f0.0cede8","order":1,"width":0,"height":0,"passthru":false,"label":"Where's Jason ?","color":"","bgcolor":"#910000","icon":"fa-male","payload":"","payloadType":"str","topic":"","x":110,"y":400,"wires":[["45508d88.744a54"]]},{"id":"219da65f.e0b0da","type":"debug","z":"41f61d2.fbe09e4","name":"","active":true,"tosidebar":true,"console":true,"tostatus":false,"complete":"payload","x":300,"y":100,"wires":[]},{"id":"ccee40e3.c1618","type":"debug","z":"41f61d2.fbe09e4","name":"","active":true,"tosidebar":true,"console":true,"tostatus":false,"complete":"payload","targetType":"msg","x":300,"y":260,"wires":[]},{"id":"1c597308.3cfc0d","type":"worldmap in","z":"41f61d2.fbe09e4","name":"worldmap in","path":"","events":"","x":110,"y":480,"wires":[["7d6cb82c.3f3ea8"]]},{"id":"7d6cb82c.3f3ea8","type":"debug","z":"41f61d2.fbe09e4","name":"","active":true,"tosidebar":false,"console":true,"tostatus":false,"complete":"payload","x":350,"y":480,"wires":[]},{"id":"762cecef.af00d4","type":"inject","z":"41f61d2.fbe09e4","name":"","topic":"","payload":"26","payloadType":"num","repeat":"","crontab":"","once":true,"onceDelay":"2","x":90,"y":260,"wires":[["eabf2bd7.f4e0c8"]]},{"id":"f76b15b1.dd27a8","type":"ui_worldmap","z":"41f61d2.fbe09e4","group":"c75ad4f0.0cede8","order":1,"width":"6","height":"7","name":"","lat":"51.17","lon":"-1.4","zoom":"","layer":"","cluster":"","maxage":"","usermenu":"hide","layers":"hide","panit":"false","panlock":"false","zoomlock":"false","hiderightclick":"true","coords":"none","showgrid":"false","path":"/worldmap","x":440,"y":400,"wires":[]}] \ No newline at end of file +[{"id":"41f61d2.fbe09e4","type":"tab","label":"Flow 1"},{"id":"52a903f3.ad56fc","type":"ui_tab","z":"41f61d2.fbe09e4","name":"Home","icon":"dashboard"},{"id":"30e652f.d9de3ae","type":"ui_group","z":"41f61d2.fbe09e4","name":"Panel 2","tab":"52a903f3.ad56fc","order":5,"disp":true,"width":"6"},{"id":"a8ecb9.c60f4348","type":"ui_group","z":"41f61d2.fbe09e4","name":"Introduction","tab":"52a903f3.ad56fc","order":1,"disp":false,"width":"4","collapse":false},{"id":"bbdf3e02.e8fee","type":"ui_group","z":"41f61d2.fbe09e4","name":"Panel 1","tab":"52a903f3.ad56fc","order":2,"disp":true,"width":"6"},{"id":"d9ba26fa.6d2b18","type":"ui_base","theme":{"name":"theme-light","lightTheme":{"default":"#0094CE","baseColor":"#8e0d17","baseFont":"Gill Sans,Geneva,sans-serif","edited":true,"reset":false},"darkTheme":{"default":"#097479","baseColor":"#097479","baseFont":"Helvetica Neue","edited":false},"customTheme":{"name":"Untitled Theme 1","default":"#4B7930","baseColor":"#4B7930","baseFont":"Helvetica Neue"},"themeState":{"base-color":{"default":"#0094CE","value":"#d80005","edited":true},"page-titlebar-backgroundColor":{"value":"#8e0d17","edited":false},"page-backgroundColor":{"value":"#fafafa","edited":false},"page-sidebar-backgroundColor":{"value":"#000000","edited":false},"group-textColor":{"value":"#d41322","edited":false},"group-borderColor":{"value":"#ffffff","edited":false},"group-backgroundColor":{"value":"#ffffff","edited":false},"widget-textColor":{"value":"#111111","edited":false},"widget-backgroundColor":{"value":"#8e0d17","edited":false},"widget-borderColor":{"value":"#ffffff","edited":false},"base-font":{"value":"Gill Sans,Geneva,sans-serif"}}},"site":{"name":"Node-RED Dashboard","hideToolbar":"false","allowSwipe":"false","dateFormat":"DD/MM/YYYY","sizes":{"sx":48,"sy":48,"gx":6,"gy":6,"cx":6,"cy":6,"px":0,"py":0}}},{"id":"87356b62.92e3d8","type":"ui_group","z":"","name":"Text to Speech","tab":"52a903f3.ad56fc","order":3,"disp":true,"width":"6"},{"id":"c75ad4f0.0cede8","type":"ui_group","z":"","name":"Map","tab":"52a903f3.ad56fc","order":4,"disp":true,"width":"6"},{"id":"189cf871.681118","type":"ui_template","z":"41f61d2.fbe09e4","group":"a8ecb9.c60f4348","name":"Welcome","order":1,"width":"4","height":"9","format":"

Welcome to the Node-RED Dashboard

\n

On the right you will see a graph and a gauge logging data from the sliders underneath.

\n

There is also an example of embedding a small map.

","storeOutMessages":false,"fwdInMessages":false,"templateScope":"local","x":100,"y":60,"wires":[[]]},{"id":"9f19ee5c.beaef","type":"ui_chart","z":"41f61d2.fbe09e4","name":"","group":"bbdf3e02.e8fee","order":1,"width":"0","height":"0","label":"","chartType":"line","xformat":"HH:mm:ss","interpolate":"basis","nodata":"No Data","dot":false,"ymin":"0","ymax":"100","removeOlder":1,"removeOlderPoints":"","removeOlderUnit":"60","cutout":"","colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"outputs":2,"x":270,"y":200,"wires":[[],[]]},{"id":"799d9318.fd385c","type":"ui_gauge","z":"41f61d2.fbe09e4","name":"","group":"30e652f.d9de3ae","order":2,"width":"","height":"","gtype":"gage","title":"Title","label":"gauge","format":"{{value}}","min":0,"max":"100","colors":["#00b500","#e6e600","#ca3838"],"x":270,"y":140,"wires":[]},{"id":"6f18b200.666a4","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"87356b62.92e3d8","order":2,"width":0,"height":0,"label":"press to talk","color":"","bgcolor":"","icon":"fa-volume-up","payload":"Hello to Jason Isaacs","payloadType":"str","topic":"","x":110,"y":320,"wires":[["f897d7c2.467a58"]]},{"id":"f897d7c2.467a58","type":"ui_audio","z":"41f61d2.fbe09e4","name":"","group":"30e652f.d9de3ae","voice":"0","x":300,"y":320,"wires":[]},{"id":"da0f7e67.0d38a","type":"ui_slider","z":"41f61d2.fbe09e4","name":"","label":"slider","group":"30e652f.d9de3ae","order":4,"width":0,"height":0,"passthru":true,"topic":"","min":0,"max":"100","step":1,"x":90,"y":140,"wires":[["799d9318.fd385c","219da65f.e0b0da"]]},{"id":"eabf2bd7.f4e0c8","type":"ui_slider","z":"41f61d2.fbe09e4","name":"","label":"slider","group":"bbdf3e02.e8fee","order":4,"width":0,"height":0,"passthru":true,"topic":"","min":0,"max":"100","step":1,"x":130,"y":200,"wires":[["9f19ee5c.beaef","ccee40e3.c1618"]]},{"id":"45508d88.744a54","type":"function","z":"41f61d2.fbe09e4","name":"","func":"// create random position\nvar lat = 51 + Math.random() * 0.2;\nvar lon = -1.45 + Math.random() * 0.2;\nmsg.payload={lat:lat, lon:lon, name:\"Jason\", icon:\"male\", url:\"IBM link\"};\nreturn msg;","outputs":1,"noerr":0,"x":290,"y":400,"wires":[["f76b15b1.dd27a8"]]},{"id":"6ca8cfc2.e0bce","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"c75ad4f0.0cede8","order":1,"width":0,"height":0,"passthru":false,"label":"Where's Jason ?","color":"","bgcolor":"#910000","icon":"fa-male","payload":"","payloadType":"str","topic":"","x":110,"y":400,"wires":[["45508d88.744a54"]]},{"id":"219da65f.e0b0da","type":"debug","z":"41f61d2.fbe09e4","name":"","active":true,"tosidebar":true,"console":true,"tostatus":false,"complete":"payload","x":300,"y":100,"wires":[]},{"id":"ccee40e3.c1618","type":"debug","z":"41f61d2.fbe09e4","name":"","active":true,"tosidebar":true,"console":true,"tostatus":false,"complete":"payload","targetType":"msg","x":300,"y":260,"wires":[]},{"id":"1c597308.3cfc0d","type":"worldmap in","z":"41f61d2.fbe09e4","name":"worldmap in","path":"","events":"","x":110,"y":480,"wires":[["7d6cb82c.3f3ea8"]]},{"id":"7d6cb82c.3f3ea8","type":"debug","z":"41f61d2.fbe09e4","name":"","active":true,"tosidebar":false,"console":true,"tostatus":false,"complete":"payload","x":350,"y":480,"wires":[]},{"id":"762cecef.af00d4","type":"inject","z":"41f61d2.fbe09e4","name":"","topic":"","payload":"26","payloadType":"num","repeat":"","crontab":"","once":true,"onceDelay":"2","x":90,"y":260,"wires":[["eabf2bd7.f4e0c8"]]},{"id":"f76b15b1.dd27a8","type":"ui_worldmap","z":"41f61d2.fbe09e4","group":"c75ad4f0.0cede8","order":1,"width":"6","height":"7","name":"","lat":"51.17","lon":"-1.4","zoom":"","layer":"","cluster":"","maxage":"","usermenu":"hide","layers":"hide","panit":"false","panlock":"false","zoomlock":"false","hiderightclick":"true","coords":"none","showgrid":"false","path":"/worldmap","x":440,"y":400,"wires":[]}] \ No newline at end of file diff --git a/main.js b/main.js index ad4da67..b4e73a3 100755 --- a/main.js +++ b/main.js @@ -5,7 +5,7 @@ let options; if (pkg.hasOwnProperty("NRelectron")) { options = pkg["NRelectron"] } // Some settings you can edit if you don't set them in package.json -console.log(options) +//console.log(options) const editable = options.editable || true; // set this to false to create a run only application - no editor/no console const allowLoadSave = options.allowLoadSave || false; // set to true to allow import and export of flow file const showMap = options.showMap || false; // set to true to add Worldmap to the menu @@ -157,7 +157,7 @@ red_app.use(settings.httpNodeRoot,RED.httpNode); // Create the Application's main menu var template = [{ - label: 'Node-RED', + label: "View", submenu: [ { label: 'Import Flow', accelerator: "Shift+CmdOrCtrl+O", @@ -320,17 +320,18 @@ function createWindow() { height: 768, icon: path.join(__dirname, nrIcon), fullscreenable: true, + autoHideMenuBar: false, kiosk: kioskMode, - autoHideMenuBar: true, webPreferences: { nodeIntegration: false } }); + const menu = Menu.buildFromTemplate(template); Menu.setApplicationMenu(menu); + if (process.platform !== 'darwin') { mainWindow.autoHideMenuBar(true); } mainWindow.loadURL(`file://${__dirname}/load.html`); - //if (process.platform !== 'darwin') { mainWindow.setAutoHideMenuBar(true); } mainWindow.webContents.on('did-get-response-details', function(event, status, newURL, originalURL, httpResponseCode) { if ((httpResponseCode == 404) && (newURL == ("http://localhost:"+listenPort+urlStart))) { From 38eaac77e607b04e5271d44124ccd58635603817 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Mon, 18 Nov 2019 21:52:11 +0000 Subject: [PATCH 070/127] Add merger capability to make grabbing projects easier --- README.md | 6 +++ example/electronflow.json | 1 + example/electronflow_cred.json | 1 + example/package.json | 17 +++++++ main.js | 2 +- merger.js | 73 +++++++++++++++++++++++++++++ package-template.json | 84 ++++++++++++++++++++++++++++++++++ package.json | 12 ++--- 8 files changed, 189 insertions(+), 7 deletions(-) create mode 100644 example/electronflow.json create mode 100644 example/electronflow_cred.json create mode 100644 example/package.json create mode 100755 merger.js create mode 100644 package-template.json diff --git a/README.md b/README.md index 1a8ce45..35ff356 100644 --- a/README.md +++ b/README.md @@ -45,6 +45,12 @@ then retry the command. Runtimes are created in the `dist` directory under the `electron-node-red` project. +The `merger.js` utility can be pointed at an existing Node-RED projects directory and it will try to copy over and package up the relevant files into this project ready to install and build - so the simple flow would be + +``` +./merger.js {path to my Node-RED project directory} && yarn && yarn start +``` + ### Building for other platforms Generally you can just add the required parameter to the command diff --git a/example/electronflow.json b/example/electronflow.json new file mode 100644 index 0000000..d8fbe3c --- /dev/null +++ b/example/electronflow.json @@ -0,0 +1 @@ +[{"id":"41f61d2.fbe09e4","type":"tab","label":"Flow 1"},{"id":"52a903f3.ad56fc","type":"ui_tab","z":"41f61d2.fbe09e4","name":"Home","icon":"dashboard"},{"id":"30e652f.d9de3ae","type":"ui_group","z":"41f61d2.fbe09e4","name":"Panel 2","tab":"52a903f3.ad56fc","order":5,"disp":true,"width":"6"},{"id":"a8ecb9.c60f4348","type":"ui_group","z":"41f61d2.fbe09e4","name":"Introduction","tab":"52a903f3.ad56fc","order":1,"disp":false,"width":"4","collapse":false},{"id":"bbdf3e02.e8fee","type":"ui_group","z":"41f61d2.fbe09e4","name":"Panel 1","tab":"52a903f3.ad56fc","order":2,"disp":true,"width":"6"},{"id":"d9ba26fa.6d2b18","type":"ui_base","theme":{"name":"theme-light","lightTheme":{"default":"#0094CE","baseColor":"#8e0d17","baseFont":"Gill Sans,Geneva,sans-serif","edited":true,"reset":false},"darkTheme":{"default":"#097479","baseColor":"#097479","baseFont":"Helvetica Neue","edited":false},"customTheme":{"name":"Untitled Theme 1","default":"#4B7930","baseColor":"#4B7930","baseFont":"Helvetica Neue"},"themeState":{"base-color":{"default":"#0094CE","value":"#d80005","edited":true},"page-titlebar-backgroundColor":{"value":"#8e0d17","edited":false},"page-backgroundColor":{"value":"#fafafa","edited":false},"page-sidebar-backgroundColor":{"value":"#000000","edited":false},"group-textColor":{"value":"#d41322","edited":false},"group-borderColor":{"value":"#ffffff","edited":false},"group-backgroundColor":{"value":"#ffffff","edited":false},"widget-textColor":{"value":"#111111","edited":false},"widget-backgroundColor":{"value":"#8e0d17","edited":false},"widget-borderColor":{"value":"#ffffff","edited":false},"base-font":{"value":"Gill Sans,Geneva,sans-serif"}}},"site":{"name":"Node-RED Dashboard","hideToolbar":"false","allowSwipe":"false","dateFormat":"DD/MM/YYYY","sizes":{"sx":48,"sy":48,"gx":6,"gy":6,"cx":6,"cy":6,"px":0,"py":0}}},{"id":"87356b62.92e3d8","type":"ui_group","z":"","name":"Text to Speech","tab":"52a903f3.ad56fc","order":3,"disp":true,"width":"6"},{"id":"c75ad4f0.0cede8","type":"ui_group","z":"","name":"Map","tab":"52a903f3.ad56fc","order":4,"disp":true,"width":"6"},{"id":"189cf871.681118","type":"ui_template","z":"41f61d2.fbe09e4","group":"a8ecb9.c60f4348","name":"Welcome","order":1,"width":"4","height":"9","format":"

Welcome to the Node-RED Dashboard

\n

On the right you will see a graph and a gauge logging data from the sliders underneath.

\n

There is also an example of embedding a small map.

","storeOutMessages":false,"fwdInMessages":false,"templateScope":"local","x":100,"y":60,"wires":[[]]},{"id":"9f19ee5c.beaef","type":"ui_chart","z":"41f61d2.fbe09e4","name":"","group":"bbdf3e02.e8fee","order":1,"width":"0","height":"0","label":"","chartType":"line","xformat":"HH:mm:ss","interpolate":"basis","nodata":"No Data","dot":false,"ymin":"0","ymax":"100","removeOlder":1,"removeOlderPoints":"","removeOlderUnit":"60","cutout":"","colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"outputs":2,"x":270,"y":200,"wires":[[],[]]},{"id":"799d9318.fd385c","type":"ui_gauge","z":"41f61d2.fbe09e4","name":"","group":"30e652f.d9de3ae","order":2,"width":"","height":"","gtype":"gage","title":"Title","label":"gauge","format":"{{value}}","min":0,"max":"100","colors":["#00b500","#e6e600","#ca3838"],"x":270,"y":140,"wires":[]},{"id":"6f18b200.666a4","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"87356b62.92e3d8","order":2,"width":0,"height":0,"label":"press to talk","color":"","bgcolor":"","icon":"fa-volume-up","payload":"Hello to Jason Isaacs","payloadType":"str","topic":"","x":110,"y":320,"wires":[["f897d7c2.467a58"]]},{"id":"f897d7c2.467a58","type":"ui_audio","z":"41f61d2.fbe09e4","name":"","group":"30e652f.d9de3ae","voice":"0","x":300,"y":320,"wires":[]},{"id":"da0f7e67.0d38a","type":"ui_slider","z":"41f61d2.fbe09e4","name":"","label":"slider","group":"30e652f.d9de3ae","order":4,"width":0,"height":0,"passthru":true,"topic":"","min":0,"max":"100","step":1,"x":90,"y":140,"wires":[["799d9318.fd385c","219da65f.e0b0da"]]},{"id":"eabf2bd7.f4e0c8","type":"ui_slider","z":"41f61d2.fbe09e4","name":"","label":"slider","group":"bbdf3e02.e8fee","order":4,"width":0,"height":0,"passthru":true,"topic":"","min":0,"max":"100","step":1,"x":130,"y":200,"wires":[["9f19ee5c.beaef","ccee40e3.c1618"]]},{"id":"45508d88.744a54","type":"function","z":"41f61d2.fbe09e4","name":"","func":"// create random position\nvar lat = 51 + Math.random() * 0.2;\nvar lon = -1.45 + Math.random() * 0.2;\nmsg.payload={lat:lat, lon:lon, name:\"Jason\", icon:\"male\", url:\"IBM link\"};\nreturn msg;","outputs":1,"noerr":0,"x":290,"y":400,"wires":[["f76b15b1.dd27a8"]]},{"id":"6ca8cfc2.e0bce","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"c75ad4f0.0cede8","order":1,"width":0,"height":0,"passthru":false,"label":"Where's Jason ?","color":"","bgcolor":"#910000","icon":"fa-male","payload":"","payloadType":"str","topic":"","x":110,"y":400,"wires":[["45508d88.744a54"]]},{"id":"219da65f.e0b0da","type":"debug","z":"41f61d2.fbe09e4","name":"","active":true,"tosidebar":true,"console":true,"tostatus":false,"complete":"payload","x":300,"y":100,"wires":[]},{"id":"ccee40e3.c1618","type":"debug","z":"41f61d2.fbe09e4","name":"","active":true,"tosidebar":true,"console":true,"tostatus":false,"complete":"payload","targetType":"msg","x":300,"y":260,"wires":[]},{"id":"1c597308.3cfc0d","type":"worldmap in","z":"41f61d2.fbe09e4","name":"worldmap in","path":"","events":"","x":110,"y":480,"wires":[["7d6cb82c.3f3ea8"]]},{"id":"7d6cb82c.3f3ea8","type":"debug","z":"41f61d2.fbe09e4","name":"","active":true,"tosidebar":false,"console":true,"tostatus":false,"complete":"payload","x":350,"y":480,"wires":[]},{"id":"762cecef.af00d4","type":"inject","z":"41f61d2.fbe09e4","name":"","topic":"","payload":"26","payloadType":"num","repeat":"","crontab":"","once":true,"onceDelay":"2","x":90,"y":260,"wires":[["eabf2bd7.f4e0c8"]]},{"id":"f76b15b1.dd27a8","type":"ui_worldmap","z":"41f61d2.fbe09e4","group":"c75ad4f0.0cede8","order":1,"width":"6","height":"7","name":"","lat":"51.17","lon":"-1.4","zoom":"","layer":"","cluster":"","maxage":"","usermenu":"hide","layers":"hide","panit":"false","panlock":"false","zoomlock":"false","hiderightclick":"true","coords":"none","showgrid":"false","path":"/worldmap","x":440,"y":400,"wires":[]}] \ No newline at end of file diff --git a/example/electronflow_cred.json b/example/electronflow_cred.json new file mode 100644 index 0000000..4d5996a --- /dev/null +++ b/example/electronflow_cred.json @@ -0,0 +1 @@ +{"$":"8dbcfcd6d9f25932aa00994065774d5ctxk="} \ No newline at end of file diff --git a/example/package.json b/example/package.json new file mode 100644 index 0000000..462e5c4 --- /dev/null +++ b/example/package.json @@ -0,0 +1,17 @@ +{ + "name": "electron_node_red", + "description": "Electron Node-RED application starter kit for development", + "version": "1.0.2", + "dependencies": { + "node-red-contrib-play-audio": "*", + "node-red-contrib-web-worldmap": "*", + "node-red-dashboard": "*", + "node-red-node-base64": "*", + "node-red-node-geofence": "*", + "node-red-node-random": "*", + "node-red-node-smooth": "*" + }, + "scripts": { + "start": "node node_modules/node-red/red.js -u . electronflow.json" + } +} diff --git a/main.js b/main.js index b4e73a3..7365816 100755 --- a/main.js +++ b/main.js @@ -50,7 +50,7 @@ red_app.use("/",express.static("web")); // Create a server var server = http.createServer(red_app); -// Setup user directory and flowfile +// Setup user directory and flowfile (if editable) var userdir = __dirname; if (editable) { // if running as raw electron use the current directory (mainly for dev) diff --git a/merger.js b/merger.js new file mode 100755 index 0000000..f7b881a --- /dev/null +++ b/merger.js @@ -0,0 +1,73 @@ +#!/usr/bin/env node + +const fs = require("fs"); +const path = require('path'); +const pkg = require("./package-template.json"); + +let arg = "./example"; +let flowfile = null; +let dn = arg; +let app; +if (process.argv.length === 3 ) { + arg = process.argv[2]; + + let dn = path.dirname(arg); + if (path.extname(arg) === ".json") { + if (path.basename(arg, '.json') !== "package") { + flowfile = path.basename(arg); + app = require(path.join(dn, "package.json")); + } + else { + app = require(arg); + } + } + else { + app = require(path.join(arg, "package.json")); + dn = arg; + } +} +else { + app = require(arg+"/package.json"); +} + +const merge = { + ...app.dependencies, + ...pkg.dependencies +}; + +pkg.dependencies = merge; +// Try to get flow file name +if (app.hasOwnProperty("node-red") && app["node-red"].hasOwnProperty("settings") && app["node-red"].settings.hasOwnProperty("flowFile") ) { + pkg.NRelectron.flowFile = app["node-red"].settings.flowFile; +} +else if (app.hasOwnProperty("scripts") && app.scripts.hasOwnProperty("start")) { + pkg.NRelectron.flowFile = app.scripts.start.split(' ').pop(); +} +else { + pkg.NRelectron.flowFile = flowfile || "flow.json"; +} + +if (merge.hasOwnProperty("node-red-dashboard")) { + pkg.NRelectron.start = "dashboard"; +} +pkg.name = app.name; +pkg.version = app.version; +pkg.description = app.description; +// console.log(pkg); + +fs.copyFile(path.join(arg, pkg.NRelectron.flowFile), path.join("./", pkg.NRelectron.flowFile), (err) => { + if (err) { console.log("Failed to copy flows file - "+path.join(arg, pkg.NRelectron.flowFile)); } + else { console.log('Copied flows file - '+pkg.NRelectron.flowFile); } +}); +const creds = path.basename(pkg.NRelectron.flowFile,".json")+"_cred.json"; +fs.copyFile(path.join(arg, creds), path.join("./", creds), (err) => { + if (err) { console.log("Failed to copy creds file - "+path.join(arg, creds)); } + else { console.log('Copied creds file - '+creds); } +}); + +fs.writeFile("./package.json", JSON.stringify(pkg, null, 4), 'utf8', function (err) { + if (err) { console.log("Failed to re-write package.json file."); } + else { + console.log("Merged package.json."); + } +}); diff --git a/package-template.json b/package-template.json new file mode 100644 index 0000000..cd7746e --- /dev/null +++ b/package-template.json @@ -0,0 +1,84 @@ +{ + "name": "electron_node_red", + "version": "1.0.2", + "description": "Electron Node-RED application starter kit for development", + "main": "main.js", + "scripts": { + "pack": "electron-builder --dir", + "dist": "electron-builder", + "release": "electron-builder build -p always", + "postinstall": "electron-builder install-app-deps", + "start": "electron main.js", + "test": "echo \" Warning: no test specified \"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/dceejay/electron-node-red.git" + }, + "dependencies": { + "electron-is-dev": "*", + "express": "^4.17.1", + "node-red": "1.0.2" + }, + "keywords": [ + "electron", + "quick start", + "node-red" + ], + "author": { + "name": "Dave Conway-Jones", + "email": "dceejay@gmail.com" + }, + "license": "Apache-2.0", + "bugs": { + "url": "https://github.com/dceejay/electron-node-red/issues" + }, + "homepage": "https://github.com/dceejay/electron-node-red#readme", + "devDependencies": { + "electron": "^7.1.1", + "electron-builder": "^22.1.0" + }, + "NRelectron": { + "productName": "Node-RED Electron", + "editable": true, + "allowLoadSave": false, + "showMap": false, + "kioskMode": false, + "flowFile": "electronflow.json", + "start": "editor" + }, + "build": { + "appId": "com.electron.node-red", + "productName": "Node-RED Electron", + "copyright": "Copyright © 2019 D.Conway-Jones", + "mac": { + "category": "public.app-category.developer-tools", + "target": "dmg" + }, + "linux": { + "target": [ + "rpm", + "apk", + { + "target": "deb", + "arch": [ + "x64", + "armv7l" + ] + } + ], + "synopsis": "Node-RED Low Code development", + "category": "Development" + }, + "win": { + "target": [ + { + "target": "msi", + "arch": [ + "x64" + ] + } + ] + } + } +} diff --git a/package.json b/package.json index 7a0b5d5..82f8f38 100644 --- a/package.json +++ b/package.json @@ -16,16 +16,16 @@ "url": "git+https://github.com/dceejay/electron-node-red.git" }, "dependencies": { - "electron-is-dev": "*", - "express": "^4.17.1", - "node-red": "1.0.2", "node-red-contrib-play-audio": "*", "node-red-contrib-web-worldmap": "*", "node-red-dashboard": "*", "node-red-node-base64": "*", "node-red-node-geofence": "*", "node-red-node-random": "*", - "node-red-node-smooth": "*" + "node-red-node-smooth": "*", + "electron-is-dev": "*", + "express": "^4.17.1", + "node-red": "1.0.2" }, "keywords": [ "electron", @@ -50,7 +50,7 @@ "editable": true, "allowLoadSave": false, "showMap": false, - "kioskMode": false, + "kioskMode": false, "flowFile": "electronflow.json", "start": "dashboard" }, @@ -88,4 +88,4 @@ ] } } -} +} \ No newline at end of file From 4bb41d2e6c06f5268d384fa4469f7a67809b458d Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Tue, 19 Nov 2019 15:21:09 +0000 Subject: [PATCH 071/127] tidy docs --- README.md | 38 +++++++++++++++++++++++++++----------- merger.js | 22 +++++++++++++++++----- package-template.json | 18 +++++++++--------- package.json | 18 +++++++++--------- 4 files changed, 62 insertions(+), 34 deletions(-) diff --git a/README.md b/README.md index 35ff356..35a640c 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ [![GitHub version](https://badge.fury.io/gh/dceejay%2Felectron-node-red.svg)](https://badge.fury.io/gh/dceejay%2Felectron-node-red) [![GitHub license](https://img.shields.io/github/license/dceejay/electron-node-red.svg)](https://github.com/dceejay/electron-node-red/blob/master/LICENSE) -This is an Electron template to embed [Node-RED](https://nodered.org) with a Dashboard generated by node-red-dashboard to create a native application. +This is an Electron template to embed [Node-RED](https://nodered.org) with an existing Node-RED project to create a native application. This is not intended to be a useful tool as-is, but as a base for you to create your own versions. You will need to edit the `main.js` to suit your application and update the `package.json` file to include your own required nodes and dependencies. @@ -11,6 +11,28 @@ There are several simple switches that can be set in the `NRelectron` section of the `package.json` file. More significant modifications will require modification of the `main.js` file. Have fun. +## Wrapping an existing Node-RED project + +The `merger.js` utility should be run from within this projects directory and can be pointed at +an existing Node-RED project directory. It will try to copy over and package up the +relevant files into this project ready to install and build - so the simple flow would be + +```bash +./merger.js {path to my Node-RED project directory} +yarn +yarn start +``` + +This uses the `package-template.json` file as the main electron setup - so you should edit any +build parameters, product name, whether you want the app version to be editable, run in kiosk mode, etc in the `NRelectron` section before running. + +The app name, version and description are picked up from the package.json file of the original project. + +When running using yarn start - the flow file is picked from the current directory. When running as an app (but only if editable), then the flow file is copied into the users `.node-red` directory and is read and written from there. The deafult name can be changed in the package.json file if required. + +**NOTE**: Currently the settings are set around line 109 of the `main.js` file. If you do use any +custom settings then currently you will need to modify this manually. + ## Configuring the project for building This project uses the **electron-builder** project to help build native versions @@ -40,17 +62,11 @@ yarn && yarn dist to create a runtime for your local platform. However - there may be some errors. If so they are usually fairly self explanatory, -and may just require installation of another npm or brew or apt package, +and may just require installation of another **npm** or **brew** or **apt** package, then retry the command. Runtimes are created in the `dist` directory under the `electron-node-red` project. -The `merger.js` utility can be pointed at an existing Node-RED projects directory and it will try to copy over and package up the relevant files into this project ready to install and build - so the simple flow would be - -``` -./merger.js {path to my Node-RED project directory} && yarn && yarn start -``` - ### Building for other platforms Generally you can just add the required parameter to the command @@ -61,12 +77,12 @@ yarn && yarn dist -l // for linux yarn && yarn dist -m // for mac ``` -These will generally fail the first time through and you will need to install some extra library in order to make it +These will generally fail the first time through, and you will need to install some extra library in order to make it complete successfully. The defaults are to build a `.msi` for Windows, a `.dmg` for Mac, and both a `.deb` and `.rpm` for Linux. These can be changed by editing the build section of the `package.json` file, see the -[electron-builder config docs](https://www.electron.build/configuration/configuration) for more info. +[electron-builder config docs](https://www.electron.build/configuration/configuration) for more information. ## Building multi platform using Docker @@ -89,6 +105,6 @@ The initial flow file is named `electronflow.json` along with it's credentials f `electronflow_cred.json`. Just copy your existing flow in instead. The default is to start on the dashboard page - as this is intended to be just an application - without the Node-RED editor exposed to the end user, but there are some simple flags to -to configure this at the top of `main.js`. +to configure this within the package.json or at the top of main.js. --- diff --git a/merger.js b/merger.js index f7b881a..9ff06b9 100755 --- a/merger.js +++ b/merger.js @@ -8,6 +8,7 @@ let arg = "./example"; let flowfile = null; let dn = arg; let app; +// If extra param specified then is it a directory or a package or flow file ? if (process.argv.length === 3 ) { arg = process.argv[2]; @@ -30,31 +31,38 @@ else { app = require(arg+"/package.json"); } +// Merge electron settings over project settings (project has priority) const merge = { ...app.dependencies, ...pkg.dependencies }; pkg.dependencies = merge; -// Try to get flow file name +// Try to get flow file name from package.json setiings if (app.hasOwnProperty("node-red") && app["node-red"].hasOwnProperty("settings") && app["node-red"].settings.hasOwnProperty("flowFile") ) { pkg.NRelectron.flowFile = app["node-red"].settings.flowFile; -} +} // or the npm scripts if there is a run command else if (app.hasOwnProperty("scripts") && app.scripts.hasOwnProperty("start")) { pkg.NRelectron.flowFile = app.scripts.start.split(' ').pop(); -} -else { +} // or the command line if the user gave us a name - or just guess flow.json. +else { pkg.NRelectron.flowFile = flowfile || "flow.json"; } +// If dashboard is in package.json assume start with dashboard. if (merge.hasOwnProperty("node-red-dashboard")) { pkg.NRelectron.start = "dashboard"; } +// If map is not in package.json then force it to be hidden +if (!merge.hasOwnProperty("node-red-contrib-web-worldmap")) { + pkg.NRelectron.showmap = false; +} pkg.name = app.name; pkg.version = app.version; pkg.description = app.description; // console.log(pkg); +// Copy over existing flow file and creds file fs.copyFile(path.join(arg, pkg.NRelectron.flowFile), path.join("./", pkg.NRelectron.flowFile), (err) => { if (err) { console.log("Failed to copy flows file - "+path.join(arg, pkg.NRelectron.flowFile)); } else { console.log('Copied flows file - '+pkg.NRelectron.flowFile); } @@ -65,9 +73,13 @@ fs.copyFile(path.join(arg, creds), path.join("./", creds), (err) => { else { console.log('Copied creds file - '+creds); } }); +// Finally re-write th new package.json fs.writeFile("./package.json", JSON.stringify(pkg, null, 4), 'utf8', function (err) { if (err) { console.log("Failed to re-write package.json file."); } else { - console.log("Merged package.json."); + console.log("Merged package.json"); + console.log("OK - you can now run yarn"); + console.log("and then yarn start to run"); + console.log(" or yarn dist to build"); } }); diff --git a/package-template.json b/package-template.json index cd7746e..3e9cc18 100644 --- a/package-template.json +++ b/package-template.json @@ -3,6 +3,15 @@ "version": "1.0.2", "description": "Electron Node-RED application starter kit for development", "main": "main.js", + "NRelectron": { + "productName": "Node-RED Electron", + "editable": true, + "allowLoadSave": false, + "showMap": false, + "kioskMode": false, + "flowFile": "electronflow.json", + "start": "editor" + }, "scripts": { "pack": "electron-builder --dir", "dist": "electron-builder", @@ -38,15 +47,6 @@ "electron": "^7.1.1", "electron-builder": "^22.1.0" }, - "NRelectron": { - "productName": "Node-RED Electron", - "editable": true, - "allowLoadSave": false, - "showMap": false, - "kioskMode": false, - "flowFile": "electronflow.json", - "start": "editor" - }, "build": { "appId": "com.electron.node-red", "productName": "Node-RED Electron", diff --git a/package.json b/package.json index 82f8f38..8ee0d54 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,15 @@ "version": "1.0.2", "description": "Electron Node-RED application starter kit for development", "main": "main.js", + "NRelectron": { + "productName": "Node-RED Electron", + "editable": true, + "allowLoadSave": false, + "showMap": false, + "kioskMode": false, + "flowFile": "electronflow.json", + "start": "dashboard" + }, "scripts": { "pack": "electron-builder --dir", "dist": "electron-builder", @@ -45,15 +54,6 @@ "electron": "^7.1.1", "electron-builder": "^22.1.0" }, - "NRelectron": { - "productName": "Node-RED Electron", - "editable": true, - "allowLoadSave": false, - "showMap": false, - "kioskMode": false, - "flowFile": "electronflow.json", - "start": "dashboard" - }, "build": { "appId": "com.electron.node-red", "productName": "Node-RED Electron", From 6327b52a3daf97e655287a3c4b22b239f734d8d1 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Thu, 21 Nov 2019 17:52:37 -0500 Subject: [PATCH 072/127] Bump for 1.0.3 --- package-template.json | 6 +++--- package.json | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package-template.json b/package-template.json index 3e9cc18..1998054 100644 --- a/package-template.json +++ b/package-template.json @@ -1,6 +1,6 @@ { "name": "electron_node_red", - "version": "1.0.2", + "version": "1.0.3", "description": "Electron Node-RED application starter kit for development", "main": "main.js", "NRelectron": { @@ -8,7 +8,7 @@ "editable": true, "allowLoadSave": false, "showMap": false, - "kioskMode": false, + "kioskMode": false, "flowFile": "electronflow.json", "start": "editor" }, @@ -27,7 +27,7 @@ "dependencies": { "electron-is-dev": "*", "express": "^4.17.1", - "node-red": "1.0.2" + "node-red": "1.0.3" }, "keywords": [ "electron", diff --git a/package.json b/package.json index 8ee0d54..0a36b5b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "electron_node_red", - "version": "1.0.2", + "version": "1.0.3", "description": "Electron Node-RED application starter kit for development", "main": "main.js", "NRelectron": { @@ -34,7 +34,7 @@ "node-red-node-smooth": "*", "electron-is-dev": "*", "express": "^4.17.1", - "node-red": "1.0.2" + "node-red": "1.0.3" }, "keywords": [ "electron", @@ -88,4 +88,4 @@ ] } } -} \ No newline at end of file +} From 0b3a1cfa74f1bfd60f3fa993ea3d509de766cc32 Mon Sep 17 00:00:00 2001 From: alv67 Date: Fri, 13 Dec 2019 08:05:02 +0100 Subject: [PATCH 073/127] Fix method name : now setAutoHideMenuBar() Fix https://github.com/dceejay/electron-node-red/issues/10 --- main.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/main.js b/main.js index 7365816..9c0d216 100755 --- a/main.js +++ b/main.js @@ -330,7 +330,7 @@ function createWindow() { const menu = Menu.buildFromTemplate(template); Menu.setApplicationMenu(menu); - if (process.platform !== 'darwin') { mainWindow.autoHideMenuBar(true); } + if (process.platform !== 'darwin') { mainWindow.setAutoHideMenuBar(true); } mainWindow.loadURL(`file://${__dirname}/load.html`); mainWindow.webContents.on('did-get-response-details', function(event, status, newURL, originalURL, httpResponseCode) { @@ -398,4 +398,4 @@ RED.start().then(function() { server.listen(listenPort,"localhost",function() { mainWindow.loadURL("http://localhost:"+listenPort+urlStart); }); -}); \ No newline at end of file +}); From 9807dd12a432dfe5ed02fe622c9477a792502b18 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Fri, 13 Dec 2019 10:10:49 +0000 Subject: [PATCH 074/127] Update package.json --- package.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 0a36b5b..c2ec70e 100644 --- a/package.json +++ b/package.json @@ -25,16 +25,16 @@ "url": "git+https://github.com/dceejay/electron-node-red.git" }, "dependencies": { + "electron-is-dev": "*", + "express": "^4.17.1", + "node-red": "1.0.3", "node-red-contrib-play-audio": "*", "node-red-contrib-web-worldmap": "*", "node-red-dashboard": "*", "node-red-node-base64": "*", "node-red-node-geofence": "*", "node-red-node-random": "*", - "node-red-node-smooth": "*", - "electron-is-dev": "*", - "express": "^4.17.1", - "node-red": "1.0.3" + "node-red-node-smooth": "*" }, "keywords": [ "electron", @@ -51,8 +51,8 @@ }, "homepage": "https://github.com/dceejay/electron-node-red#readme", "devDependencies": { - "electron": "^7.1.1", - "electron-builder": "^22.1.0" + "electron": "^7.1.4", + "electron-builder": "^21.2.0" }, "build": { "appId": "com.electron.node-red", From 69a64c0689fa3fbe385bc00c56a98b8228e9cb95 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Thu, 27 Feb 2020 16:51:46 +0000 Subject: [PATCH 075/127] Update package.json Bump to 1.0.4 --- package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index c2ec70e..d517184 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "electron_node_red", - "version": "1.0.3", + "version": "1.0.4", "description": "Electron Node-RED application starter kit for development", "main": "main.js", "NRelectron": { @@ -27,7 +27,7 @@ "dependencies": { "electron-is-dev": "*", "express": "^4.17.1", - "node-red": "1.0.3", + "node-red": "1.0.4", "node-red-contrib-play-audio": "*", "node-red-contrib-web-worldmap": "*", "node-red-dashboard": "*", @@ -51,7 +51,7 @@ }, "homepage": "https://github.com/dceejay/electron-node-red#readme", "devDependencies": { - "electron": "^7.1.4", + "electron": "^7.1.13", "electron-builder": "^21.2.0" }, "build": { From 64109d842b3ced3fd0eba3bf69e498189e090784 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Tue, 14 Apr 2020 13:35:30 +0100 Subject: [PATCH 076/127] bump to latest packages - Node-RED 1.0.5 --- package.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index d517184..bdfca9e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "electron_node_red", - "version": "1.0.4", + "version": "1.0.5", "description": "Electron Node-RED application starter kit for development", "main": "main.js", "NRelectron": { @@ -25,12 +25,12 @@ "url": "git+https://github.com/dceejay/electron-node-red.git" }, "dependencies": { - "electron-is-dev": "*", + "electron-is-dev": "~1.2.0", "express": "^4.17.1", - "node-red": "1.0.4", + "node-red": "1.0.5", "node-red-contrib-play-audio": "*", - "node-red-contrib-web-worldmap": "*", - "node-red-dashboard": "*", + "node-red-contrib-web-worldmap": "~2.3.5", + "node-red-dashboard": "~2.20.0", "node-red-node-base64": "*", "node-red-node-geofence": "*", "node-red-node-random": "*", @@ -51,7 +51,7 @@ }, "homepage": "https://github.com/dceejay/electron-node-red#readme", "devDependencies": { - "electron": "^7.1.13", + "electron": "~7.2.1", "electron-builder": "^21.2.0" }, "build": { From d88c9ecacaa69836ee7e459b503e2ff293849bf6 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Fri, 24 Apr 2020 14:14:02 +0100 Subject: [PATCH 077/127] bump to 1.0.6 --- package.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index bdfca9e..8b6ef09 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "electron_node_red", - "version": "1.0.5", + "version": "1.0.6", "description": "Electron Node-RED application starter kit for development", "main": "main.js", "NRelectron": { @@ -27,10 +27,10 @@ "dependencies": { "electron-is-dev": "~1.2.0", "express": "^4.17.1", - "node-red": "1.0.5", + "node-red": "1.0.6", "node-red-contrib-play-audio": "*", - "node-red-contrib-web-worldmap": "~2.3.5", - "node-red-dashboard": "~2.20.0", + "node-red-contrib-web-worldmap": "*", + "node-red-dashboard": "*", "node-red-node-base64": "*", "node-red-node-geofence": "*", "node-red-node-random": "*", @@ -52,7 +52,7 @@ "homepage": "https://github.com/dceejay/electron-node-red#readme", "devDependencies": { "electron": "~7.2.1", - "electron-builder": "^21.2.0" + "electron-builder": "^22.5.1" }, "build": { "appId": "com.electron.node-red", From 218a9daf7501da3b0cb654f7a45e0b386c5ad8ed Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Tue, 28 Apr 2020 10:18:21 +0100 Subject: [PATCH 078/127] add flag to disable palette manager, add quit confirmation dialog --- README.md | 2 +- main.js | 20 +++++++++++++++++--- package-template.json | 1 + 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 35a640c..5ec0e4c 100644 --- a/README.md +++ b/README.md @@ -72,7 +72,7 @@ Runtimes are created in the `dist` directory under the `electron-node-red` proje Generally you can just add the required parameter to the command ```bash -yarn && yarn dist -w // for windows +yarn && yarn dist -w // for windows (see below for building on Mac Catalina) yarn && yarn dist -l // for linux yarn && yarn dist -m // for mac ``` diff --git a/main.js b/main.js index 9c0d216..b047b4c 100755 --- a/main.js +++ b/main.js @@ -6,10 +6,11 @@ if (pkg.hasOwnProperty("NRelectron")) { options = pkg["NRelectron"] } // Some settings you can edit if you don't set them in package.json //console.log(options) -const editable = options.editable || true; // set this to false to create a run only application - no editor/no console +const editable = options.editable || true; // set this to false to create a run only application - no editor/no console const allowLoadSave = options.allowLoadSave || false; // set to true to allow import and export of flow file const showMap = options.showMap || false; // set to true to add Worldmap to the menu -const kioskMode = options.kioskMode || false; // set to true to start in kiosk mode +const kioskMode = options.kioskMode || false; // set to true to start in kiosk mode +const addNodes = options.addNodes || true; // set to false to block installing extra nodes let flowfile = options.flowFile || 'electronflow.json'; // default Flows file name - loaded at start const urldash = "/ui/#/0"; // url for the dashboard page @@ -112,7 +113,7 @@ var settings = { httpNodeRoot: "/", userDir: userdir, flowFile: flowfile, - editorTheme: { projects:{ enabled:false } }, // enable projects feature + editorTheme: { projects:{ enabled:false }, palette: { editable:addNodes } }, // enable projects feature functionGlobalContext: { }, // enables global context - add extras ehre if you need them logging: { websock: { @@ -354,6 +355,19 @@ function createWindow() { option.height = w.height; }) + mainWindow.on('close', function(e) { + const choice = require('electron').dialog.showMessageBoxSync(this, { + type: 'question', + icon: nrIcon, + buttons: ['Yes', 'No'], + title: 'Confirm', + message: 'Are you sure you want to quit?' + }); + if (choice === 1) { + e.preventDefault(); + } + }); + mainWindow.on('closed', () => { mainWindow = null; }); diff --git a/package-template.json b/package-template.json index 1998054..c15d140 100644 --- a/package-template.json +++ b/package-template.json @@ -9,6 +9,7 @@ "allowLoadSave": false, "showMap": false, "kioskMode": false, + "addNodes": true, "flowFile": "electronflow.json", "start": "editor" }, From 500353f4ce52887fd9318a6a4bdb1febd688e7fc Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Tue, 28 Apr 2020 10:48:39 +0100 Subject: [PATCH 079/127] tidy up package.json and template --- README.md | 6 +++--- package-template.json | 12 ++++++------ package.json | 5 +++-- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 5ec0e4c..4abcd0c 100644 --- a/README.md +++ b/README.md @@ -28,9 +28,9 @@ build parameters, product name, whether you want the app version to be editable, The app name, version and description are picked up from the package.json file of the original project. -When running using yarn start - the flow file is picked from the current directory. When running as an app (but only if editable), then the flow file is copied into the users `.node-red` directory and is read and written from there. The deafult name can be changed in the package.json file if required. +When running using yarn start - the flow file is picked from the current directory. When running as an app (but only if editable), then the flow file is copied into the users `.node-red` directory and is read and written from there. The default name can be changed in the package.json file if required. -**NOTE**: Currently the settings are set around line 109 of the `main.js` file. If you do use any +**NOTE**: Currently the settings are set around line 110 of the `main.js` file. If you do use any custom settings then currently you will need to modify this manually. ## Configuring the project for building @@ -72,7 +72,7 @@ Runtimes are created in the `dist` directory under the `electron-node-red` proje Generally you can just add the required parameter to the command ```bash -yarn && yarn dist -w // for windows (see below for building on Mac Catalina) +yarn && yarn dist -w // for windows (but use multi-platform builder below for building on Mac Catalina) yarn && yarn dist -l // for linux yarn && yarn dist -m // for mac ``` diff --git a/package-template.json b/package-template.json index c15d140..518223f 100644 --- a/package-template.json +++ b/package-template.json @@ -1,6 +1,6 @@ { "name": "electron_node_red", - "version": "1.0.3", + "version": "1.0.6", "description": "Electron Node-RED application starter kit for development", "main": "main.js", "NRelectron": { @@ -26,9 +26,9 @@ "url": "git+https://github.com/dceejay/electron-node-red.git" }, "dependencies": { - "electron-is-dev": "*", + "electron-is-dev": "^1.2.0", "express": "^4.17.1", - "node-red": "1.0.3" + "node-red": "1.0.6" }, "keywords": [ "electron", @@ -45,13 +45,13 @@ }, "homepage": "https://github.com/dceejay/electron-node-red#readme", "devDependencies": { - "electron": "^7.1.1", - "electron-builder": "^22.1.0" + "electron": "^7.2.1", + "electron-builder": "^22.5.1" }, "build": { "appId": "com.electron.node-red", "productName": "Node-RED Electron", - "copyright": "Copyright © 2019 D.Conway-Jones", + "copyright": "Copyright © 2018,2020 D.Conway-Jones", "mac": { "category": "public.app-category.developer-tools", "target": "dmg" diff --git a/package.json b/package.json index 8b6ef09..dd67231 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "allowLoadSave": false, "showMap": false, "kioskMode": false, + "addNodes": true, "flowFile": "electronflow.json", "start": "dashboard" }, @@ -25,7 +26,7 @@ "url": "git+https://github.com/dceejay/electron-node-red.git" }, "dependencies": { - "electron-is-dev": "~1.2.0", + "electron-is-dev": "^1.2.0", "express": "^4.17.1", "node-red": "1.0.6", "node-red-contrib-play-audio": "*", @@ -57,7 +58,7 @@ "build": { "appId": "com.electron.node-red", "productName": "Node-RED Electron", - "copyright": "Copyright © 2019 D.Conway-Jones", + "copyright": "Copyright © 2018,2020 D.Conway-Jones", "mac": { "category": "public.app-category.developer-tools", "target": "dmg" From 018ac444f4071728cb2ce3440af0d8ed079b034a Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Tue, 28 Apr 2020 13:46:31 +0100 Subject: [PATCH 080/127] remove apk as it doesn't "just work" --- package-template.json | 1 - package.json | 1 - 2 files changed, 2 deletions(-) diff --git a/package-template.json b/package-template.json index 518223f..1c7dbd9 100644 --- a/package-template.json +++ b/package-template.json @@ -59,7 +59,6 @@ "linux": { "target": [ "rpm", - "apk", { "target": "deb", "arch": [ diff --git a/package.json b/package.json index dd67231..0c7b806 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,6 @@ "linux": { "target": [ "rpm", - "apk", { "target": "deb", "arch": [ From cb98cbcea1a472797d341684fa59c526c252d0c1 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Tue, 5 May 2020 19:34:45 +0100 Subject: [PATCH 081/127] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4abcd0c..4a7e52a 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ # Electron Node-RED +[![platform](https://img.shields.io/badge/platform-Node--RED-red)](https://nodered.org) [![GitHub version](https://badge.fury.io/gh/dceejay%2Felectron-node-red.svg)](https://badge.fury.io/gh/dceejay%2Felectron-node-red) [![GitHub license](https://img.shields.io/github/license/dceejay/electron-node-red.svg)](https://github.com/dceejay/electron-node-red/blob/master/LICENSE) From 65bf9a912d323375bfcc964a36c2ded66c912ae8 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Mon, 1 Jun 2020 17:38:23 +0100 Subject: [PATCH 082/127] add optional tray icon, menu etc --- main.js | 33 ++++++++++++++++++++++++++++++++- nrtray.png | Bin 0 -> 1391 bytes nrtray@2x.png | Bin 0 -> 1793 bytes 3 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 nrtray.png create mode 100644 nrtray@2x.png diff --git a/main.js b/main.js index b047b4c..50cb13f 100755 --- a/main.js +++ b/main.js @@ -40,6 +40,7 @@ const {app, Menu} = electron; const ipc = electron.ipcMain; const dialog = electron.dialog; const BrowserWindow = electron.BrowserWindow; +const Tray = electron.Tray; var RED = require("node-red"); var red_app = express(); @@ -100,6 +101,7 @@ if (editable) { // be closed automatically when the JavaScript object is garbage collected. let mainWindow; let conWindow; +let tray; let logBuffer = []; let logLength = 250; // No. of lines of console log to keep. const levels = [ "", "fatal", "error", "warn", "info", "debug", "trace" ]; @@ -379,8 +381,35 @@ function createWindow() { //mainWindow.webContents.openDevTools(); } +// Create the tray icon and context menu +function createTray() { + tray = new Tray(path.join(__dirname, "nrtray.png")); + const contextMenu = Menu.buildFromTemplate([ + { + label: 'Show', + click: function() { + mainWindow.show(); + } + }, + { + label: 'Quit', + click: function() { + app.quit(); + } + } + ]); + tray.setToolTip('Node-RED Electron application.') + tray.setContextMenu(contextMenu); +} + + // Called when Electron has finished initialization and is ready to create browser windows. -app.on('ready', createWindow ); +app.on('ready', () => { + createTray() + createWindow() +}) + + // Quit when all windows are closed. app.on('window-all-closed', function () { @@ -405,6 +434,8 @@ if (process.platform === 'darwin') { copyright: "Copyright © 2019, "+pkg.author.name, credits: "Node-RED and other components are copyright the JS Foundation and other contributors." }); + // Don't show in the dock bar if you like + //app.dock.hide(); } // Start the Node-RED runtime, then load the inital dashboard page diff --git a/nrtray.png b/nrtray.png new file mode 100644 index 0000000000000000000000000000000000000000..86e4608b3c268bbb19e35cdc32b5930a18f2b2ef GIT binary patch literal 1391 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 literal 0 HcmV?d00001 From 64e6f1ce7fd5db9c0ee8cf5e64a740630cbb68ce Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Wed, 1 Jul 2020 10:38:12 +0100 Subject: [PATCH 083/127] update to Node-RED 1.1 --- package.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 0c7b806..f98acd2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "electron_node_red", - "version": "1.0.6", + "version": "1.1.0", "description": "Electron Node-RED application starter kit for development", "main": "main.js", "NRelectron": { @@ -28,7 +28,7 @@ "dependencies": { "electron-is-dev": "^1.2.0", "express": "^4.17.1", - "node-red": "1.0.6", + "node-red": "1.1.0", "node-red-contrib-play-audio": "*", "node-red-contrib-web-worldmap": "*", "node-red-dashboard": "*", @@ -52,8 +52,8 @@ }, "homepage": "https://github.com/dceejay/electron-node-red#readme", "devDependencies": { - "electron": "~7.2.1", - "electron-builder": "^22.5.1" + "electron": "~7.2.4", + "electron-builder": "^22.7.0" }, "build": { "appId": "com.electron.node-red", From e6efc37ece38431b0a74216807c681382e2924b4 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Fri, 10 Jul 2020 23:01:42 +0100 Subject: [PATCH 084/127] bump to 1.1.2 --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index f98acd2..8368e26 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "electron_node_red", - "version": "1.1.0", + "version": "1.1.2", "description": "Electron Node-RED application starter kit for development", "main": "main.js", "NRelectron": { @@ -28,7 +28,7 @@ "dependencies": { "electron-is-dev": "^1.2.0", "express": "^4.17.1", - "node-red": "1.1.0", + "node-red": "1.1.2", "node-red-contrib-play-audio": "*", "node-red-contrib-web-worldmap": "*", "node-red-dashboard": "*", From 5d5e802d1aad255025f89e8aaea6f0e5655e1724 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Fri, 11 Sep 2020 16:22:32 +0100 Subject: [PATCH 085/127] Fix inclusion of example files - to close #12 --- package-template.json | 14 ++++++++++---- package.json | 14 ++++++++++---- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/package-template.json b/package-template.json index 1c7dbd9..87bf763 100644 --- a/package-template.json +++ b/package-template.json @@ -1,6 +1,6 @@ { "name": "electron_node_red", - "version": "1.0.6", + "version": "1.1.3", "description": "Electron Node-RED application starter kit for development", "main": "main.js", "NRelectron": { @@ -28,7 +28,7 @@ "dependencies": { "electron-is-dev": "^1.2.0", "express": "^4.17.1", - "node-red": "1.0.6" + "node-red": "1.1.3" }, "keywords": [ "electron", @@ -45,13 +45,19 @@ }, "homepage": "https://github.com/dceejay/electron-node-red#readme", "devDependencies": { - "electron": "^7.2.1", - "electron-builder": "^22.5.1" + "electron": "~10.1.1", + "electron-builder": "^22.8.0" }, "build": { "appId": "com.electron.node-red", "productName": "Node-RED Electron", "copyright": "Copyright © 2018,2020 D.Conway-Jones", + "extraResources": [ + { + "from": "node_modules/@node-red/nodes/examples", + "to": "app/node_modules/@node-red/nodes/examples" + } + ], "mac": { "category": "public.app-category.developer-tools", "target": "dmg" diff --git a/package.json b/package.json index 8368e26..10123ea 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "electron_node_red", - "version": "1.1.2", + "version": "1.1.3", "description": "Electron Node-RED application starter kit for development", "main": "main.js", "NRelectron": { @@ -28,7 +28,7 @@ "dependencies": { "electron-is-dev": "^1.2.0", "express": "^4.17.1", - "node-red": "1.1.2", + "node-red": "1.1.3", "node-red-contrib-play-audio": "*", "node-red-contrib-web-worldmap": "*", "node-red-dashboard": "*", @@ -52,13 +52,19 @@ }, "homepage": "https://github.com/dceejay/electron-node-red#readme", "devDependencies": { - "electron": "~7.2.4", - "electron-builder": "^22.7.0" + "electron": "~10.1.1", + "electron-builder": "^22.8.0" }, "build": { "appId": "com.electron.node-red", "productName": "Node-RED Electron", "copyright": "Copyright © 2018,2020 D.Conway-Jones", + "extraResources": [ + { + "from": "node_modules/@node-red/nodes/examples", + "to": "app/node_modules/@node-red/nodes/examples" + } + ], "mac": { "category": "public.app-category.developer-tools", "target": "dmg" From ad7b3d00fc067ec1e305f80e545a5bd3b029623a Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Fri, 11 Sep 2020 21:16:41 +0100 Subject: [PATCH 086/127] fix adding examples to finally close #12 --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 10123ea..7946a5a 100644 --- a/package.json +++ b/package.json @@ -59,10 +59,11 @@ "appId": "com.electron.node-red", "productName": "Node-RED Electron", "copyright": "Copyright © 2018,2020 D.Conway-Jones", - "extraResources": [ + "files": [ + "**/*", { "from": "node_modules/@node-red/nodes/examples", - "to": "app/node_modules/@node-red/nodes/examples" + "to": "node_modules/@node-red/nodes/examples" } ], "mac": { From 54040e45ce792a12871f5ae2a03767341a427d0f Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Sat, 3 Oct 2020 18:50:44 +0100 Subject: [PATCH 087/127] add some touchbar goodness --- main.js | 48 +++++++++++++++++++++++++++++++++++++++++++----- package.json | 7 ++++--- 2 files changed, 47 insertions(+), 8 deletions(-) diff --git a/main.js b/main.js index 50cb13f..20fdc6c 100755 --- a/main.js +++ b/main.js @@ -36,11 +36,12 @@ const express = require("express"); const electron = require('electron'); const isDev = require('electron-is-dev'); -const {app, Menu} = electron; +const {app, Menu, TouchBar} = electron; const ipc = electron.ipcMain; const dialog = electron.dialog; const BrowserWindow = electron.BrowserWindow; const Tray = electron.Tray; +const { TouchBarButton } = TouchBar; var RED = require("node-red"); var red_app = express(); @@ -214,7 +215,7 @@ if (!editable) { if (!allowLoadSave) { template[0].submenu.splice(0,2); } // Top and tail menu on Mac -if (process.platform === 'darwin') { +if (process.platform === 'darwin') { template[0].submenu.unshift({ type: 'separator' }); template[0].submenu.unshift({ label: "About "+options.productName||"Node-RED Electron", selector: "orderFrontStandardAboutPanel:" }); template[0].submenu.unshift({ type: 'separator' }); @@ -313,6 +314,15 @@ function createConsole() { conWindow = null; }); //conWindow.webContents.openDevTools(); + const touchButton4 = new TouchBarButton({ + label: 'Clear Log', + backgroundColor: '#910000', + click: () => { logBuffer = []; conWindow.webContents.send('logBuff', logBuffer); } + }); + const consoleTouchBar = new TouchBar({ + items: [ touchButton4 ] + }); + conWindow.setTouchBar(consoleTouchBar); } // Create the main browser window @@ -329,7 +339,7 @@ function createWindow() { nodeIntegration: false } }); - + const menu = Menu.buildFromTemplate(template); Menu.setApplicationMenu(menu); @@ -374,6 +384,35 @@ function createWindow() { mainWindow = null; }); + // If on a Mac add some touchbar buttons... + if (process.platform === 'darwin') { + const touchButton1 = new TouchBarButton({ + label: 'Editor', + backgroundColor: '#910000', + click: () => { mainWindow.loadURL("http://localhost:"+listenPort+urledit); } + }); + + const touchButton2 = new TouchBarButton({ + label: 'Dashboard', + backgroundColor: '#910000', + click: () => { mainWindow.loadURL("http://localhost:"+listenPort+urldash); } + }); + + const touchButton3 = new TouchBarButton({ + label: 'Map', + backgroundColor: '#910000', + click: () => { mainWindow.loadURL("http://localhost:"+listenPort+urlmap); } + }); + + var items = [ touchButton2 ]; + if (editable) { items.push(touchButton1) } + if (showMap) { items.push(touchButton3) } + + const mainTouchBar = new TouchBar({ items: items }); + + mainWindow.setTouchBar(mainTouchBar); + } + // Start the app full screen //mainWindow.setFullScreen(true) @@ -410,7 +449,6 @@ app.on('ready', () => { }) - // Quit when all windows are closed. app.on('window-all-closed', function () { // On OS X it is common for applications and their menu bar @@ -427,7 +465,7 @@ app.on('activate', function() { } }); -if (process.platform === 'darwin') { +if (process.platform === 'darwin') { app.setAboutPanelOptions({ applicationVersion: pkg.version, version: pkg.dependencies["node-red"], diff --git a/package.json b/package.json index 7946a5a..74e60e5 100644 --- a/package.json +++ b/package.json @@ -52,15 +52,16 @@ }, "homepage": "https://github.com/dceejay/electron-node-red#readme", "devDependencies": { - "electron": "~10.1.1", - "electron-builder": "^22.8.0" + "electron": "~10.1.3", + "electron-builder": "^22.8.1" }, "build": { "appId": "com.electron.node-red", "productName": "Node-RED Electron", "copyright": "Copyright © 2018,2020 D.Conway-Jones", + "buildDependenciesFromSource": true, "files": [ - "**/*", + "**/*", { "from": "node_modules/@node-red/nodes/examples", "to": "node_modules/@node-red/nodes/examples" From fbdb4afe01f47c16a864291b6947518f82cbc3cd Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Mon, 5 Oct 2020 00:00:45 +0100 Subject: [PATCH 088/127] redo file import and save --- console.htm | 2 +- electronflow.json | 2184 ++++++++++++++++++++++++++++++++++++++++++++- main.js | 89 +- package.json | 2 +- 4 files changed, 2236 insertions(+), 41 deletions(-) diff --git a/console.htm b/console.htm index dcd2971..3157013 100644 --- a/console.htm +++ b/console.htm @@ -33,7 +33,7 @@ - +
diff --git a/electronflow.json b/electronflow.json index d8fbe3c..8cfcf3e 100644 --- a/electronflow.json +++ b/electronflow.json @@ -1 +1,2183 @@ -[{"id":"41f61d2.fbe09e4","type":"tab","label":"Flow 1"},{"id":"52a903f3.ad56fc","type":"ui_tab","z":"41f61d2.fbe09e4","name":"Home","icon":"dashboard"},{"id":"30e652f.d9de3ae","type":"ui_group","z":"41f61d2.fbe09e4","name":"Panel 2","tab":"52a903f3.ad56fc","order":5,"disp":true,"width":"6"},{"id":"a8ecb9.c60f4348","type":"ui_group","z":"41f61d2.fbe09e4","name":"Introduction","tab":"52a903f3.ad56fc","order":1,"disp":false,"width":"4","collapse":false},{"id":"bbdf3e02.e8fee","type":"ui_group","z":"41f61d2.fbe09e4","name":"Panel 1","tab":"52a903f3.ad56fc","order":2,"disp":true,"width":"6"},{"id":"d9ba26fa.6d2b18","type":"ui_base","theme":{"name":"theme-light","lightTheme":{"default":"#0094CE","baseColor":"#8e0d17","baseFont":"Gill Sans,Geneva,sans-serif","edited":true,"reset":false},"darkTheme":{"default":"#097479","baseColor":"#097479","baseFont":"Helvetica Neue","edited":false},"customTheme":{"name":"Untitled Theme 1","default":"#4B7930","baseColor":"#4B7930","baseFont":"Helvetica Neue"},"themeState":{"base-color":{"default":"#0094CE","value":"#d80005","edited":true},"page-titlebar-backgroundColor":{"value":"#8e0d17","edited":false},"page-backgroundColor":{"value":"#fafafa","edited":false},"page-sidebar-backgroundColor":{"value":"#000000","edited":false},"group-textColor":{"value":"#d41322","edited":false},"group-borderColor":{"value":"#ffffff","edited":false},"group-backgroundColor":{"value":"#ffffff","edited":false},"widget-textColor":{"value":"#111111","edited":false},"widget-backgroundColor":{"value":"#8e0d17","edited":false},"widget-borderColor":{"value":"#ffffff","edited":false},"base-font":{"value":"Gill Sans,Geneva,sans-serif"}}},"site":{"name":"Node-RED Dashboard","hideToolbar":"false","allowSwipe":"false","dateFormat":"DD/MM/YYYY","sizes":{"sx":48,"sy":48,"gx":6,"gy":6,"cx":6,"cy":6,"px":0,"py":0}}},{"id":"87356b62.92e3d8","type":"ui_group","z":"","name":"Text to Speech","tab":"52a903f3.ad56fc","order":3,"disp":true,"width":"6"},{"id":"c75ad4f0.0cede8","type":"ui_group","z":"","name":"Map","tab":"52a903f3.ad56fc","order":4,"disp":true,"width":"6"},{"id":"189cf871.681118","type":"ui_template","z":"41f61d2.fbe09e4","group":"a8ecb9.c60f4348","name":"Welcome","order":1,"width":"4","height":"9","format":"

Welcome to the Node-RED Dashboard

\n

On the right you will see a graph and a gauge logging data from the sliders underneath.

\n

There is also an example of embedding a small map.

","storeOutMessages":false,"fwdInMessages":false,"templateScope":"local","x":100,"y":60,"wires":[[]]},{"id":"9f19ee5c.beaef","type":"ui_chart","z":"41f61d2.fbe09e4","name":"","group":"bbdf3e02.e8fee","order":1,"width":"0","height":"0","label":"","chartType":"line","xformat":"HH:mm:ss","interpolate":"basis","nodata":"No Data","dot":false,"ymin":"0","ymax":"100","removeOlder":1,"removeOlderPoints":"","removeOlderUnit":"60","cutout":"","colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"outputs":2,"x":270,"y":200,"wires":[[],[]]},{"id":"799d9318.fd385c","type":"ui_gauge","z":"41f61d2.fbe09e4","name":"","group":"30e652f.d9de3ae","order":2,"width":"","height":"","gtype":"gage","title":"Title","label":"gauge","format":"{{value}}","min":0,"max":"100","colors":["#00b500","#e6e600","#ca3838"],"x":270,"y":140,"wires":[]},{"id":"6f18b200.666a4","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"87356b62.92e3d8","order":2,"width":0,"height":0,"label":"press to talk","color":"","bgcolor":"","icon":"fa-volume-up","payload":"Hello to Jason Isaacs","payloadType":"str","topic":"","x":110,"y":320,"wires":[["f897d7c2.467a58"]]},{"id":"f897d7c2.467a58","type":"ui_audio","z":"41f61d2.fbe09e4","name":"","group":"30e652f.d9de3ae","voice":"0","x":300,"y":320,"wires":[]},{"id":"da0f7e67.0d38a","type":"ui_slider","z":"41f61d2.fbe09e4","name":"","label":"slider","group":"30e652f.d9de3ae","order":4,"width":0,"height":0,"passthru":true,"topic":"","min":0,"max":"100","step":1,"x":90,"y":140,"wires":[["799d9318.fd385c","219da65f.e0b0da"]]},{"id":"eabf2bd7.f4e0c8","type":"ui_slider","z":"41f61d2.fbe09e4","name":"","label":"slider","group":"bbdf3e02.e8fee","order":4,"width":0,"height":0,"passthru":true,"topic":"","min":0,"max":"100","step":1,"x":130,"y":200,"wires":[["9f19ee5c.beaef","ccee40e3.c1618"]]},{"id":"45508d88.744a54","type":"function","z":"41f61d2.fbe09e4","name":"","func":"// create random position\nvar lat = 51 + Math.random() * 0.2;\nvar lon = -1.45 + Math.random() * 0.2;\nmsg.payload={lat:lat, lon:lon, name:\"Jason\", icon:\"male\", url:\"IBM link\"};\nreturn msg;","outputs":1,"noerr":0,"x":290,"y":400,"wires":[["f76b15b1.dd27a8"]]},{"id":"6ca8cfc2.e0bce","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"c75ad4f0.0cede8","order":1,"width":0,"height":0,"passthru":false,"label":"Where's Jason ?","color":"","bgcolor":"#910000","icon":"fa-male","payload":"","payloadType":"str","topic":"","x":110,"y":400,"wires":[["45508d88.744a54"]]},{"id":"219da65f.e0b0da","type":"debug","z":"41f61d2.fbe09e4","name":"","active":true,"tosidebar":true,"console":true,"tostatus":false,"complete":"payload","x":300,"y":100,"wires":[]},{"id":"ccee40e3.c1618","type":"debug","z":"41f61d2.fbe09e4","name":"","active":true,"tosidebar":true,"console":true,"tostatus":false,"complete":"payload","targetType":"msg","x":300,"y":260,"wires":[]},{"id":"1c597308.3cfc0d","type":"worldmap in","z":"41f61d2.fbe09e4","name":"worldmap in","path":"","events":"","x":110,"y":480,"wires":[["7d6cb82c.3f3ea8"]]},{"id":"7d6cb82c.3f3ea8","type":"debug","z":"41f61d2.fbe09e4","name":"","active":true,"tosidebar":false,"console":true,"tostatus":false,"complete":"payload","x":350,"y":480,"wires":[]},{"id":"762cecef.af00d4","type":"inject","z":"41f61d2.fbe09e4","name":"","topic":"","payload":"26","payloadType":"num","repeat":"","crontab":"","once":true,"onceDelay":"2","x":90,"y":260,"wires":[["eabf2bd7.f4e0c8"]]},{"id":"f76b15b1.dd27a8","type":"ui_worldmap","z":"41f61d2.fbe09e4","group":"c75ad4f0.0cede8","order":1,"width":"6","height":"7","name":"","lat":"51.17","lon":"-1.4","zoom":"","layer":"","cluster":"","maxage":"","usermenu":"hide","layers":"hide","panit":"false","panlock":"false","zoomlock":"false","hiderightclick":"true","coords":"none","showgrid":"false","path":"/worldmap","x":440,"y":400,"wires":[]}] \ No newline at end of file +[ + { + "id": "5ab56e5e.449a5", + "type": "tab", + "label": "Flow 1" + }, + { + "id": "6f60da71.efaf84", + "type": "ui_link", + "z": "", + "name": "Big Map", + "link": "/worldmap/", + "icon": "open_in_browser", + "target": "iframe", + "order": 5 + }, + { + "id": "4b23a5d6.33335c", + "type": "ui_base", + "theme": { + "name": "theme-custom", + "lightTheme": { + "default": "#0094CE", + "baseColor": "#0094CE", + "baseFont": "Helvetica Neue,Helvetica,sans-serif", + "edited": true, + "reset": false + }, + "darkTheme": { + "default": "#097479", + "baseColor": "#097479", + "baseFont": "Tahoma,Geneva,sans-serif", + "edited": true, + "reset": false + }, + "customTheme": { + "name": "Untitled Theme 1", + "baseColor": "#c61e51", + "default": "#0094CE", + "baseFont": "-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif", + "reset": false + }, + "themeState": { + "base-color": { + "default": "#bb1841", + "value": "#bb1841", + "edited": true + }, + "page-backgroundColor": { + "value": "#111111", + "edited": false + }, + "page-sidebar-backgroundColor": { + "value": "#000000", + "edited": false + }, + "page-titlebar-backgroundColor": { + "value": "#c61e51", + "edited": false + }, + "group-backgroundColor": { + "value": "#333333", + "edited": true + }, + "group-textColor": { + "value": "#e44d7a", + "edited": false + }, + "group-borderColor": { + "value": "#555555", + "edited": false + }, + "widget-textColor": { + "value": "#eeeeee", + "edited": false + }, + "widget-backgroundColor": { + "value": "#c61e51", + "edited": false + }, + "widget-borderColor": { + "value": "#242424", + "edited": true + }, + "base-font": { + "value": "-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif" + } + }, + "angularTheme": { + "primary": "indigo", + "accents": "blue", + "warn": "red", + "background": "grey" + } + }, + "site": { + "name": "Node-RED Dashboard", + "sizes": { + "sx": 48, + "sy": 48, + "gx": 6, + "gy": 6, + "cx": 6, + "cy": 6, + "px": 3, + "py": 3 + }, + "hideToolbar": "false", + "allowSwipe": "true", + "dateFormat": "DD/MM/YY", + "lockMenu": "false" + } + }, + { + "id": "c60f4e05.ebb48", + "type": "ui_group", + "z": "5ab56e5e.449a5", + "name": "Map", + "tab": "6a3aec18.0bc474", + "order": 1, + "disp": true, + "width": "6" + }, + { + "id": "6a3aec18.0bc474", + "type": "ui_tab", + "z": "5ab56e5e.449a5", + "name": "Home", + "icon": "dashboard", + "order": 1, + "disabled": false, + "hidden": false + }, + { + "id": "3581a844.66d9e8", + "type": "ui_tab", + "z": "", + "name": "Charts", + "icon": "dashboard", + "order": 4 + }, + { + "id": "d9a5a546.3dbcf8", + "type": "ui_group", + "z": "", + "name": "Group 1", + "tab": "3581a844.66d9e8", + "order": 1, + "disp": true, + "width": "6", + "collapse": true + }, + { + "id": "597c8cca.c0ad24", + "type": "ui_group", + "z": "", + "name": "Group 2", + "tab": "3581a844.66d9e8", + "order": 2, + "disp": true, + "width": "6", + "collapse": true + }, + { + "id": "33fabf90.2fdae", + "type": "ui_group", + "z": "", + "name": "Group 3", + "tab": "3581a844.66d9e8", + "order": 3, + "disp": true, + "width": "6", + "collapse": true + }, + { + "id": "ebf91bb0.042f48", + "type": "ui_tab", + "z": "", + "name": "Gauges", + "icon": "dashboard", + "order": 2 + }, + { + "id": "db98e5e4.57a268", + "type": "ui_group", + "z": "", + "name": "Dials1", + "tab": "ebf91bb0.042f48", + "order": 2, + "disp": true, + "width": "6", + "collapse": true + }, + { + "id": "1804b9dc.fd1e66", + "type": "ui_group", + "z": "", + "name": "Inputs", + "tab": "ebf91bb0.042f48", + "order": 1, + "disp": true, + "width": "6", + "collapse": true + }, + { + "id": "f822616a.38524", + "type": "ui_group", + "z": "", + "name": "Dials2", + "tab": "ebf91bb0.042f48", + "order": 3, + "disp": true, + "width": "6", + "collapse": true + }, + { + "id": "b086b2d2.2e47b", + "type": "ui_group", + "name": "Group 3", + "tab": null, + "order": 3, + "disp": true, + "width": 6 + }, + { + "id": "d5b824b2.e53e58", + "type": "ui_group", + "z": "", + "name": "Group 4", + "tab": "3581a844.66d9e8", + "order": 4, + "disp": true, + "width": "6", + "collapse": true + }, + { + "id": "ba1b0dd3.85941", + "type": "ui_group", + "z": "", + "name": "Small", + "tab": "ebf91bb0.042f48", + "order": 4, + "disp": true, + "width": "6", + "collapse": true + }, + { + "id": "877f1e00.c03ff", + "type": "ui_tab", + "z": "", + "name": "Big gauge page", + "icon": "dashboard", + "order": 3 + }, + { + "id": "1b56aad7.5752e5", + "type": "ui_group", + "z": "", + "name": "Group 1", + "tab": "877f1e00.c03ff", + "order": 1, + "disp": true, + "width": "8" + }, + { + "id": "d32ebde8.b3228", + "type": "ui_group", + "z": "", + "name": "Group 2", + "tab": "877f1e00.c03ff", + "order": 2, + "disp": true, + "width": "6" + }, + { + "id": "8fe29e0c.e102e", + "type": "ui_group", + "name": "Group 3", + "tab": "877f1e00.c03ff", + "order": 3, + "disp": true, + "width": 6 + }, + { + "id": "4adac02f.cc3e7", + "type": "ui_group", + "z": "", + "name": "Group 4", + "tab": "877f1e00.c03ff", + "order": 4, + "disp": true, + "width": "12", + "collapse": false + }, + { + "id": "7a6f203.31275e", + "type": "ui_spacer", + "name": "spacer", + "group": "1b56aad7.5752e5", + "order": 5, + "width": 1, + "height": 1 + }, + { + "id": "319ba9bf.f2c9b6", + "type": "ui_spacer", + "name": "spacer", + "group": "1b56aad7.5752e5", + "order": 7, + "width": 2, + "height": 1 + }, + { + "id": "ce1d8bf0.737928", + "type": "ui_spacer", + "name": "spacer", + "group": "1b56aad7.5752e5", + "order": 8, + "width": 2, + "height": 1 + }, + { + "id": "920e7adb.7e4048", + "type": "ui_spacer", + "name": "spacer", + "group": "1b56aad7.5752e5", + "order": 11, + "width": 3, + "height": 1 + }, + { + "id": "2ddc6c22.f56604", + "type": "inject", + "z": "5ab56e5e.449a5", + "name": "", + "topic": "", + "payload": "", + "payloadType": "date", + "repeat": "", + "crontab": "", + "once": false, + "x": 120, + "y": 60, + "wires": [ + [ + "fbc32db5.f3411" + ] + ] + }, + { + "id": "fbc32db5.f3411", + "type": "function", + "z": "5ab56e5e.449a5", + "name": "", + "func": "msg.payload={lat:51.05,lon:-1.05,name:\"Joe\",icon:\"male\",radius:2500};\nreturn msg;", + "outputs": 1, + "noerr": 0, + "x": 310, + "y": 60, + "wires": [ + [ + "104f9b89.5daf04" + ] + ] + }, + { + "id": "104f9b89.5daf04", + "type": "worldmap", + "z": "5ab56e5e.449a5", + "name": "", + "lat": "", + "lon": "", + "zoom": "", + "layer": "OSM", + "cluster": "0", + "maxage": "", + "usermenu": "show", + "layers": "show", + "panit": "true", + "panlock": "false", + "zoomlock": "false", + "hiderightclick": "false", + "coords": "none", + "path": "", + "x": 510, + "y": 280, + "wires": [] + }, + { + "id": "127a1529.9b5c8b", + "type": "inject", + "z": "5ab56e5e.449a5", + "name": "", + "topic": "", + "payload": "", + "payloadType": "date", + "repeat": "", + "crontab": "", + "once": false, + "x": 120, + "y": 100, + "wires": [ + [ + "1544450f.023d3b" + ] + ] + }, + { + "id": "1544450f.023d3b", + "type": "function", + "z": "5ab56e5e.449a5", + "name": "", + "func": "msg.payload={lat:51.05,lon:-2.05,name:\"Fred\",radius:3000};\nreturn msg;", + "outputs": 1, + "noerr": 0, + "x": 310, + "y": 100, + "wires": [ + [ + "104f9b89.5daf04" + ] + ] + }, + { + "id": "7892d55a.40864c", + "type": "inject", + "z": "5ab56e5e.449a5", + "name": "", + "topic": "", + "payload": "", + "payloadType": "date", + "repeat": "", + "crontab": "", + "once": false, + "x": 121, + "y": 228, + "wires": [ + [ + "45dc04c5.811fcc" + ] + ] + }, + { + "id": "45dc04c5.811fcc", + "type": "function", + "z": "5ab56e5e.449a5", + "name": "", + "func": "// create random position\nvar lat = 51 + Math.random() * 0.2;\nvar lon = -1.45 + Math.random() * 0.2;\nmsg.payload={lat:lat, lon:lon, name:\"Mike\", icon:\"male\", url:\"IBM link\"};\nreturn msg;", + "outputs": 1, + "noerr": 0, + "x": 310, + "y": 280, + "wires": [ + [ + "104f9b89.5daf04", + "37dc2b31.4edcd4" + ] + ] + }, + { + "id": "9756dc2b.55138", + "type": "ui_button", + "z": "5ab56e5e.449a5", + "name": "", + "group": "8fe29e0c.e102e", + "order": 6, + "width": 0, + "height": 0, + "passthru": false, + "label": "button", + "tooltip": "", + "color": "", + "bgcolor": "", + "icon": "fa-random", + "payload": "", + "payloadType": "str", + "topic": "", + "x": 110, + "y": 440, + "wires": [ + [ + "d4fcec5d.d6d7d" + ] + ] + }, + { + "id": "d4fcec5d.d6d7d", + "type": "random", + "z": "5ab56e5e.449a5", + "name": "", + "low": "1", + "high": "6", + "inte": "true", + "x": 300, + "y": 440, + "wires": [ + [ + "fac8dd24.4b417" + ] + ] + }, + { + "id": "fac8dd24.4b417", + "type": "ui_gauge", + "z": "5ab56e5e.449a5", + "name": "", + "group": "8fe29e0c.e102e", + "order": 1, + "width": 0, + "height": 0, + "gtype": "gage", + "title": "Gauge", + "label": "units", + "format": "{{value}}", + "min": 0, + "max": 10, + "colors": [ + "#00b500", + "#e6e600", + "#ca3838" + ], + "seg1": "", + "seg2": "", + "x": 470, + "y": 440, + "wires": [] + }, + { + "id": "39ae2a4d.5a6f06", + "type": "inject", + "z": "5ab56e5e.449a5", + "name": "", + "topic": "", + "payload": "/worldmap", + "payloadType": "str", + "repeat": "", + "crontab": "", + "once": true, + "x": 130, + "y": 340, + "wires": [ + [ + "a8660ccf.d7166" + ] + ] + }, + { + "id": "be72c0ae.5925b", + "type": "ui_template", + "z": "5ab56e5e.449a5", + "group": "c60f4e05.ebb48", + "name": "", + "order": 1, + "width": "6", + "height": "6", + "format": "
", + "storeOutMessages": true, + "fwdInMessages": true, + "templateScope": "local", + "x": 480, + "y": 340, + "wires": [ + [] + ] + }, + { + "id": "a8660ccf.d7166", + "type": "template", + "z": "5ab56e5e.449a5", + "name": "", + "field": "payload", + "fieldType": "msg", + "format": "handlebars", + "syntax": "mustache", + "template": "", + "x": 310, + "y": 340, + "wires": [ + [ + "be72c0ae.5925b" + ] + ] + }, + { + "id": "79411e5e.1af57", + "type": "ui_button", + "z": "5ab56e5e.449a5", + "name": "", + "group": "c60f4e05.ebb48", + "order": 2, + "width": 0, + "height": 0, + "passthru": false, + "label": "Move Mike", + "color": "", + "bgcolor": "#910000", + "icon": "fa-male", + "payload": "", + "payloadType": "str", + "topic": "", + "x": 130, + "y": 280, + "wires": [ + [ + "45dc04c5.811fcc" + ] + ] + }, + { + "id": "235ad210.492b0e", + "type": "comment", + "z": "5ab56e5e.449a5", + "name": "How to embed Map in Dashboard", + "info": "This example shows how to embed the Worldmap \ninto a template node within the `node-red-dashboard`\n\nThe first flow creates a dashboard button that \ngenerates a randon position, with the required \nicon, and passes that to the worldmap. The\nmap is configured to automatically pan to the\nposition of any point that arrives.\n\nThe second flow initialise the dashboard template\nwith the initial map and sets it to a more square shape\nby adjusting the height.", + "x": 180, + "y": 180, + "wires": [] + }, + { + "id": "ef51b254.c41f8", + "type": "ui_slider", + "z": "5ab56e5e.449a5", + "name": "", + "label": "slider", + "group": "33fabf90.2fdae", + "order": 1, + "width": 0, + "height": 0, + "passthru": true, + "topic": "AAAA", + "min": 0, + "max": 10, + "step": 1, + "x": 310, + "y": 820, + "wires": [ + [ + "e801ab50.e12fa8", + "c89941bb.94", + "fbcc8a14.9cfc48", + "c04a6b4a.6337e8", + "7c67e5b4.508b9c", + "48f59ada.4761c4", + "c1752406.db6818", + "7df53460.04cdfc", + "443aee23.40925" + ] + ] + }, + { + "id": "e801ab50.e12fa8", + "type": "ui_chart", + "z": "5ab56e5e.449a5", + "name": "", + "group": "597c8cca.c0ad24", + "order": 1, + "width": "0", + "height": "0", + "label": "Line", + "chartType": "line", + "legend": "false", + "xformat": "HH:mm", + "interpolate": "bezier", + "nodata": "", + "dot": false, + "ymin": "0", + "ymax": "10", + "removeOlder": "30", + "removeOlderPoints": "100", + "removeOlderUnit": "1", + "cutout": 0, + "colors": [ + "#1f77b4", + "#aec7e8", + "#ff7f0e", + "#2ca02c", + "#98df8a", + "#d62728", + "#ff9896", + "#9467bd", + "#c5b0d5" + ], + "useOldStyle": false, + "outputs": 2, + "x": 550, + "y": 820, + "wires": [ + [], + [] + ] + }, + { + "id": "a094687c.f408f8", + "type": "ui_slider", + "z": "5ab56e5e.449a5", + "name": "", + "label": "slider", + "group": "33fabf90.2fdae", + "order": 2, + "width": 0, + "height": 0, + "passthru": true, + "topic": "BBB", + "min": 0, + "max": 10, + "step": 1, + "x": 310, + "y": 860, + "wires": [ + [ + "e801ab50.e12fa8", + "c89941bb.94", + "fbcc8a14.9cfc48", + "443aee23.40925", + "c04a6b4a.6337e8", + "7c67e5b4.508b9c", + "48f59ada.4761c4", + "c1752406.db6818" + ] + ] + }, + { + "id": "a082aa3a.8b9628", + "type": "ui_slider", + "z": "5ab56e5e.449a5", + "name": "", + "label": "slider", + "group": "33fabf90.2fdae", + "order": 3, + "width": 0, + "height": 0, + "passthru": true, + "topic": "CC", + "min": 0, + "max": 10, + "step": 1, + "x": 310, + "y": 900, + "wires": [ + [ + "e801ab50.e12fa8", + "c89941bb.94", + "fbcc8a14.9cfc48", + "443aee23.40925", + "c1752406.db6818", + "48f59ada.4761c4", + "7c67e5b4.508b9c", + "c04a6b4a.6337e8" + ] + ] + }, + { + "id": "e8cbef9f.abdde", + "type": "ui_slider", + "z": "5ab56e5e.449a5", + "name": "", + "label": "slider", + "group": "33fabf90.2fdae", + "order": 4, + "width": 0, + "height": 0, + "passthru": true, + "topic": "D", + "min": 0, + "max": 10, + "step": 1, + "x": 310, + "y": 940, + "wires": [ + [ + "e801ab50.e12fa8", + "fbcc8a14.9cfc48", + "c89941bb.94", + "443aee23.40925", + "c1752406.db6818", + "48f59ada.4761c4", + "7c67e5b4.508b9c", + "c04a6b4a.6337e8" + ] + ] + }, + { + "id": "443aee23.40925", + "type": "ui_chart", + "z": "5ab56e5e.449a5", + "name": "", + "group": "597c8cca.c0ad24", + "order": 2, + "width": 0, + "height": 0, + "label": "Bar", + "chartType": "bar", + "legend": "false", + "xformat": "HH:mm:ss", + "interpolate": "linear", + "nodata": "", + "dot": false, + "ymin": "", + "ymax": "", + "removeOlder": "10", + "removeOlderPoints": "", + "removeOlderUnit": "60", + "cutout": 0, + "colors": [ + "#b40fb0", + "#aec7e8", + "#ff7f0e", + "#2ca02c", + "#98df8a", + "#d62728", + "#ff9896", + "#9467bd", + "#c5b0d5" + ], + "useOldStyle": false, + "outputs": 2, + "x": 550, + "y": 860, + "wires": [ + [], + [] + ] + }, + { + "id": "c89941bb.94", + "type": "ui_chart", + "z": "5ab56e5e.449a5", + "name": "", + "group": "d9a5a546.3dbcf8", + "order": 1, + "width": 0, + "height": 0, + "label": "Bar (H)", + "chartType": "horizontalBar", + "legend": "false", + "xformat": "HH:mm:ss", + "interpolate": "linear", + "nodata": "", + "dot": false, + "ymin": "", + "ymax": "", + "removeOlder": "10", + "removeOlderPoints": "", + "removeOlderUnit": "60", + "cutout": 0, + "colors": [ + "#1f77b4", + "#aec7e8", + "#ff7f0e", + "#2ca02c", + "#98df8a", + "#d62728", + "#ff9896", + "#9467bd", + "#c5b0d5" + ], + "useOldStyle": false, + "outputs": 2, + "x": 550, + "y": 900, + "wires": [ + [], + [] + ] + }, + { + "id": "fbcc8a14.9cfc48", + "type": "ui_chart", + "z": "5ab56e5e.449a5", + "name": "", + "group": "d9a5a546.3dbcf8", + "order": 2, + "width": 0, + "height": 0, + "label": "Pie", + "chartType": "pie", + "legend": "true", + "xformat": "HH:mm:ss", + "interpolate": "linear", + "nodata": "", + "dot": false, + "ymin": "", + "ymax": "", + "removeOlder": "10", + "removeOlderPoints": "", + "removeOlderUnit": "60", + "cutout": "25", + "colors": [ + "#1f77b4", + "#aec7e8", + "#ff7f0e", + "#2ca02c", + "#98df8a", + "#d62728", + "#ff9896", + "#9467bd", + "#c5b0d5" + ], + "useOldStyle": false, + "outputs": 2, + "x": 550, + "y": 940, + "wires": [ + [], + [] + ] + }, + { + "id": "70c11a4b.372e04", + "type": "random", + "z": "5ab56e5e.449a5", + "name": "", + "low": "0", + "high": "10", + "inte": "true", + "x": 160, + "y": 820, + "wires": [ + [ + "ef51b254.c41f8", + "e226e499.d100d8" + ] + ] + }, + { + "id": "de6c94cf.e06a58", + "type": "inject", + "z": "5ab56e5e.449a5", + "name": "", + "topic": "", + "payload": "", + "payloadType": "date", + "repeat": "1", + "crontab": "", + "once": false, + "x": 131, + "y": 742, + "wires": [ + [ + "70c11a4b.372e04", + "7b25a3dd.f9224c", + "b07e3f5a.ef2f2", + "de9d98b8.d1cb38" + ] + ] + }, + { + "id": "7b25a3dd.f9224c", + "type": "random", + "z": "5ab56e5e.449a5", + "name": "", + "low": "0", + "high": "10", + "inte": "true", + "x": 160, + "y": 860, + "wires": [ + [ + "a094687c.f408f8", + "8615c147.2a197" + ] + ] + }, + { + "id": "b07e3f5a.ef2f2", + "type": "random", + "z": "5ab56e5e.449a5", + "name": "", + "low": "0", + "high": "10", + "inte": "true", + "x": 160, + "y": 900, + "wires": [ + [ + "a082aa3a.8b9628", + "66791422.4ddd5c" + ] + ] + }, + { + "id": "de9d98b8.d1cb38", + "type": "random", + "z": "5ab56e5e.449a5", + "name": "", + "low": "0", + "high": "10", + "inte": "true", + "x": 160, + "y": 940, + "wires": [ + [ + "e8cbef9f.abdde", + "39518116.f80d8e" + ] + ] + }, + { + "id": "9d449cc9.71f1e", + "type": "ui_gauge", + "z": "5ab56e5e.449a5", + "name": "", + "group": "db98e5e4.57a268", + "order": 1, + "width": 0, + "height": 0, + "gtype": "gage", + "title": "Gauge", + "label": "units", + "format": "{{value}}", + "min": 0, + "max": 10, + "colors": [ + "#00b500", + "#e6e600", + "#ca3838" + ], + "x": 363, + "y": 1072, + "wires": [] + }, + { + "id": "e226e499.d100d8", + "type": "ui_text_input", + "z": "5ab56e5e.449a5", + "name": "", + "label": "", + "group": "1804b9dc.fd1e66", + "order": 0, + "width": 0, + "height": 0, + "passthru": true, + "mode": "text", + "delay": 300, + "topic": "", + "x": 140, + "y": 1080, + "wires": [ + [ + "9d449cc9.71f1e", + "f7df9217.5b12e", + "b819418.8f33ec", + "9b2868a8.dfbac8", + "1802159b.65fd6a", + "75c28d9.ca30874", + "a3fc693d.ef70a8", + "ff932d90.0b5e9" + ] + ] + }, + { + "id": "cf334a99.610928", + "type": "ui_gauge", + "z": "5ab56e5e.449a5", + "name": "", + "group": "db98e5e4.57a268", + "order": 2, + "width": 0, + "height": 0, + "gtype": "donut", + "title": "Gauge", + "label": "units", + "format": "{{value}}", + "min": 0, + "max": 10, + "colors": [ + "#00b500", + "#e6e600", + "#ca3838" + ], + "x": 363, + "y": 1112, + "wires": [] + }, + { + "id": "8615c147.2a197", + "type": "ui_text_input", + "z": "5ab56e5e.449a5", + "name": "", + "label": "", + "group": "1804b9dc.fd1e66", + "order": 0, + "width": 0, + "height": 0, + "passthru": true, + "mode": "text", + "delay": 300, + "topic": "", + "x": 140, + "y": 1120, + "wires": [ + [ + "cf334a99.610928", + "e8d79424.ca1ef8", + "e7000422.8e2288", + "e195514c.67385", + "f2839923.fd5a58", + "aac7bc67.b7e85", + "190e7015.63e69" + ] + ] + }, + { + "id": "49b0152.a68f9ec", + "type": "ui_gauge", + "z": "5ab56e5e.449a5", + "name": "", + "group": "f822616a.38524", + "order": 0, + "width": 0, + "height": 0, + "gtype": "compass", + "title": "Gauge", + "label": "units", + "format": "{{value}}", + "min": 0, + "max": 10, + "colors": [ + "#00b500", + "#e6e600", + "#ca3838" + ], + "x": 363, + "y": 1152, + "wires": [] + }, + { + "id": "66791422.4ddd5c", + "type": "ui_text_input", + "z": "5ab56e5e.449a5", + "name": "", + "label": "", + "group": "1804b9dc.fd1e66", + "order": 0, + "width": 0, + "height": 0, + "passthru": true, + "mode": "text", + "delay": 300, + "topic": "", + "x": 140, + "y": 1160, + "wires": [ + [ + "49b0152.a68f9ec", + "e42325d2.6dd6b8", + "ce349625.bdb598", + "16d00075.1bb92", + "8b9f1f1f.dad3b", + "2cb935d1.cd6a1a", + "9426b2c.2f8ff5" + ] + ] + }, + { + "id": "359ca29d.f1b9fe", + "type": "ui_gauge", + "z": "5ab56e5e.449a5", + "name": "", + "group": "f822616a.38524", + "order": 0, + "width": 0, + "height": 0, + "gtype": "wave", + "title": "Gauge", + "label": "units", + "format": "{{value}}", + "min": 0, + "max": 10, + "colors": [ + "#00b500", + "#e6e600", + "#ca3838" + ], + "x": 363, + "y": 1192, + "wires": [] + }, + { + "id": "39518116.f80d8e", + "type": "ui_text_input", + "z": "5ab56e5e.449a5", + "name": "", + "label": "", + "group": "1804b9dc.fd1e66", + "order": 0, + "width": 0, + "height": 0, + "passthru": true, + "mode": "text", + "delay": 300, + "topic": "", + "x": 140, + "y": 1200, + "wires": [ + [ + "359ca29d.f1b9fe", + "96887d8.321498", + "3fabb83f.35fa18", + "94698e20.5c0e8", + "39d7b922.15d596", + "610c083e.6eafb8", + "1262ae63.953fb2" + ] + ] + }, + { + "id": "c04a6b4a.6337e8", + "type": "ui_chart", + "z": "5ab56e5e.449a5", + "name": "", + "group": "d5b824b2.e53e58", + "order": 2, + "width": "0", + "height": "0", + "label": "Line", + "chartType": "line", + "legend": "false", + "xformat": "HH:mm:ss", + "interpolate": "bezier", + "nodata": "", + "dot": false, + "ymin": "", + "ymax": "", + "removeOlder": "30", + "removeOlderPoints": "", + "removeOlderUnit": "1", + "cutout": 0, + "colors": [ + "#1f77b4", + "#aec7e8", + "#ff7f0e", + "#2ca02c", + "#98df8a", + "#d62728", + "#ff9896", + "#9467bd", + "#c5b0d5" + ], + "outputs": 2, + "x": 556, + "y": 993, + "wires": [ + [], + [] + ] + }, + { + "id": "7c67e5b4.508b9c", + "type": "ui_chart", + "z": "5ab56e5e.449a5", + "name": "", + "group": "d5b824b2.e53e58", + "order": 1, + "width": "0", + "height": "0", + "label": "Bar", + "chartType": "bar", + "legend": "false", + "xformat": "HH:mm:ss", + "interpolate": "linear", + "nodata": "", + "dot": false, + "ymin": "", + "ymax": "", + "removeOlder": "10", + "removeOlderPoints": "", + "removeOlderUnit": "60", + "cutout": 0, + "colors": [ + "#864fb4", + "#aec7e8", + "#ff7f0e", + "#2ca02c", + "#98df8a", + "#d62728", + "#ff9896", + "#9467bd", + "#c5b0d5" + ], + "useOldStyle": true, + "outputs": 2, + "x": 556, + "y": 1033, + "wires": [ + [], + [] + ] + }, + { + "id": "48f59ada.4761c4", + "type": "ui_chart", + "z": "5ab56e5e.449a5", + "name": "", + "group": "597c8cca.c0ad24", + "order": 3, + "width": 0, + "height": 0, + "label": "Bar (H)", + "chartType": "horizontalBar", + "legend": "false", + "xformat": "HH:mm:ss", + "interpolate": "linear", + "nodata": "", + "ymin": "", + "ymax": "", + "removeOlder": "10", + "removeOlderPoints": "", + "removeOlderUnit": "60", + "cutout": 0, + "outputs": 2, + "x": 556, + "y": 1073, + "wires": [ + [], + [] + ] + }, + { + "id": "c1752406.db6818", + "type": "ui_chart", + "z": "5ab56e5e.449a5", + "name": "", + "group": "d5b824b2.e53e58", + "order": 3, + "width": 0, + "height": 0, + "label": "Pie", + "chartType": "polar-area", + "legend": "true", + "xformat": "HH:mm:ss", + "interpolate": "linear", + "nodata": "", + "dot": false, + "ymin": "", + "ymax": "", + "removeOlder": "10", + "removeOlderPoints": "", + "removeOlderUnit": "60", + "cutout": "25", + "colors": [ + "#1f77b4", + "#aec7e8", + "#ff7f0e", + "#2ca02c", + "#98df8a", + "#d62728", + "#ff9896", + "#9467bd", + "#c5b0d5" + ], + "outputs": 2, + "x": 556, + "y": 1113, + "wires": [ + [], + [] + ] + }, + { + "id": "f7df9217.5b12e", + "type": "ui_gauge", + "z": "5ab56e5e.449a5", + "name": "", + "group": "ba1b0dd3.85941", + "order": 1, + "width": "3", + "height": "3", + "gtype": "gage", + "title": "Gauge1", + "label": "units", + "format": "{{value}}", + "min": 0, + "max": 10, + "colors": [ + "#00b500", + "#e6e600", + "#ca3838" + ], + "seg1": "", + "seg2": "", + "x": 370, + "y": 1266, + "wires": [] + }, + { + "id": "e8d79424.ca1ef8", + "type": "ui_gauge", + "z": "5ab56e5e.449a5", + "name": "", + "group": "ba1b0dd3.85941", + "order": 4, + "width": "3", + "height": "2", + "gtype": "gage", + "title": "Gauge2", + "label": "units", + "format": "{{value}}", + "min": 0, + "max": 10, + "colors": [ + "#00b500", + "#e6e600", + "#ca3838" + ], + "seg1": "", + "seg2": "", + "x": 371, + "y": 1304, + "wires": [] + }, + { + "id": "e42325d2.6dd6b8", + "type": "ui_gauge", + "z": "5ab56e5e.449a5", + "name": "", + "group": "ba1b0dd3.85941", + "order": 2, + "width": "2", + "height": "2", + "gtype": "gage", + "title": "Gauge3", + "label": "units", + "format": "{{value}}", + "min": 0, + "max": 10, + "colors": [ + "#00b500", + "#e6e600", + "#ca3838" + ], + "seg1": "", + "seg2": "", + "x": 369, + "y": 1347, + "wires": [] + }, + { + "id": "96887d8.321498", + "type": "ui_gauge", + "z": "5ab56e5e.449a5", + "name": "", + "group": "ba1b0dd3.85941", + "order": 3, + "width": "2", + "height": "3", + "gtype": "gage", + "title": "Gauge4", + "label": "units", + "format": "{{value}}", + "min": 0, + "max": 10, + "colors": [ + "#00b500", + "#e6e600", + "#ca3838" + ], + "seg1": "", + "seg2": "", + "x": 360, + "y": 1380, + "wires": [] + }, + { + "id": "b819418.8f33ec", + "type": "ui_gauge", + "z": "5ab56e5e.449a5", + "name": "", + "group": "1b56aad7.5752e5", + "order": 2, + "width": 3, + "height": 2, + "gtype": "gage", + "title": "Gauge1", + "label": "units", + "format": "{{value}}", + "min": 0, + "max": 10, + "colors": [ + "#00b500", + "#e6e600", + "#ca3838" + ], + "seg1": "", + "seg2": "", + "x": 368, + "y": 1457, + "wires": [] + }, + { + "id": "e7000422.8e2288", + "type": "ui_gauge", + "z": "5ab56e5e.449a5", + "name": "", + "group": "1b56aad7.5752e5", + "order": 3, + "width": 3, + "height": 2, + "gtype": "gage", + "title": "Gauge2", + "label": "units", + "format": "{{value}}", + "min": 0, + "max": 10, + "colors": [ + "#00b500", + "#e6e600", + "#ca3838" + ], + "seg1": "", + "seg2": "", + "x": 369, + "y": 1495, + "wires": [] + }, + { + "id": "ce349625.bdb598", + "type": "ui_gauge", + "z": "5ab56e5e.449a5", + "name": "", + "group": "1b56aad7.5752e5", + "order": 4, + "width": 3, + "height": 3, + "gtype": "gage", + "title": "Gauge3", + "label": "units", + "format": "{{value}}", + "min": 0, + "max": 10, + "colors": [ + "#00b500", + "#e6e600", + "#ca3838" + ], + "seg1": "", + "seg2": "", + "x": 367, + "y": 1538, + "wires": [] + }, + { + "id": "3fabb83f.35fa18", + "type": "ui_gauge", + "z": "5ab56e5e.449a5", + "name": "", + "group": "1b56aad7.5752e5", + "order": 9, + "width": 3, + "height": 3, + "gtype": "gage", + "title": "Gauge4", + "label": "units", + "format": "{{value}}", + "min": 0, + "max": 10, + "colors": [ + "#00b500", + "#e6e600", + "#ca3838" + ], + "seg1": "", + "seg2": "", + "x": 367, + "y": 1582, + "wires": [] + }, + { + "id": "e195514c.67385", + "type": "ui_gauge", + "z": "5ab56e5e.449a5", + "name": "", + "group": "1b56aad7.5752e5", + "order": 1, + "width": 5, + "height": 4, + "gtype": "gage", + "title": "GaugeA", + "label": "units", + "format": "{{value}}", + "min": 0, + "max": 10, + "colors": [ + "#00b500", + "#e6e600", + "#ca3838" + ], + "seg1": "", + "seg2": "", + "x": 174, + "y": 1456, + "wires": [] + }, + { + "id": "16d00075.1bb92", + "type": "ui_gauge", + "z": "5ab56e5e.449a5", + "name": "", + "group": "1b56aad7.5752e5", + "order": 10, + "width": 2, + "height": 2, + "gtype": "gage", + "title": "Gauge5", + "label": "units", + "format": "{{value}}", + "min": 0, + "max": 10, + "colors": [ + "#00b500", + "#e6e600", + "#ca3838" + ], + "seg1": "", + "seg2": "", + "x": 367, + "y": 1630, + "wires": [] + }, + { + "id": "94698e20.5c0e8", + "type": "ui_gauge", + "z": "5ab56e5e.449a5", + "name": "", + "group": "1b56aad7.5752e5", + "order": 12, + "width": 0, + "height": 0, + "gtype": "gage", + "title": "Gauge6", + "label": "units", + "format": "{{value}}", + "min": 0, + "max": 10, + "colors": [ + "#00b500", + "#e6e600", + "#ca3838" + ], + "seg1": "", + "seg2": "", + "x": 367, + "y": 1674, + "wires": [] + }, + { + "id": "9b2868a8.dfbac8", + "type": "ui_gauge", + "z": "5ab56e5e.449a5", + "name": "", + "group": "1b56aad7.5752e5", + "order": 6, + "width": 2, + "height": 1, + "gtype": "gage", + "title": "Gauge7", + "label": "units", + "format": "{{value}}", + "min": 0, + "max": 10, + "colors": [ + "#00b500", + "#e6e600", + "#ca3838" + ], + "seg1": "", + "seg2": "", + "x": 364, + "y": 1719, + "wires": [] + }, + { + "id": "1802159b.65fd6a", + "type": "ui_gauge", + "z": "5ab56e5e.449a5", + "name": "", + "group": "d32ebde8.b3228", + "order": 1, + "width": 4, + "height": 3, + "gtype": "gage", + "title": "GaugeA", + "label": "units", + "format": "{{value}}", + "min": 0, + "max": 10, + "colors": [ + "#00b500", + "#e6e600", + "#ca3838" + ], + "seg1": "", + "seg2": "", + "x": 620, + "y": 1460, + "wires": [] + }, + { + "id": "f2839923.fd5a58", + "type": "ui_gauge", + "z": "5ab56e5e.449a5", + "name": "", + "group": "d32ebde8.b3228", + "order": 2, + "width": 2, + "height": 2, + "gtype": "gage", + "title": "Gauge5", + "label": "units", + "format": "{{value}}", + "min": 0, + "max": 10, + "colors": [ + "#00b500", + "#e6e600", + "#ca3838" + ], + "seg1": "", + "seg2": "", + "x": 620, + "y": 1500, + "wires": [] + }, + { + "id": "8b9f1f1f.dad3b", + "type": "ui_gauge", + "z": "5ab56e5e.449a5", + "name": "", + "group": "d32ebde8.b3228", + "order": 3, + "width": 1, + "height": 1, + "gtype": "gage", + "title": "Gauge6", + "label": "units", + "format": "{{value}}", + "min": 0, + "max": 10, + "colors": [ + "#00b500", + "#e6e600", + "#ca3838" + ], + "seg1": "", + "seg2": "", + "x": 620, + "y": 1540, + "wires": [] + }, + { + "id": "39d7b922.15d596", + "type": "ui_gauge", + "z": "5ab56e5e.449a5", + "name": "", + "group": "d32ebde8.b3228", + "order": 4, + "width": 1, + "height": 1, + "gtype": "gage", + "title": "Gauge7", + "label": "units", + "format": "{{value}}", + "min": 0, + "max": 10, + "colors": [ + "#00b500", + "#e6e600", + "#ca3838" + ], + "seg1": "", + "seg2": "", + "x": 620, + "y": 1580, + "wires": [] + }, + { + "id": "610c083e.6eafb8", + "type": "ui_gauge", + "z": "5ab56e5e.449a5", + "name": "", + "group": "8fe29e0c.e102e", + "order": 2, + "width": 4, + "height": 3, + "gtype": "gage", + "title": "GaugeA", + "label": "units", + "format": "{{value}}", + "min": 0, + "max": 10, + "colors": [ + "#00b500", + "#e6e600", + "#ca3838" + ], + "seg1": "", + "seg2": "", + "x": 820, + "y": 1460, + "wires": [] + }, + { + "id": "2cb935d1.cd6a1a", + "type": "ui_gauge", + "z": "5ab56e5e.449a5", + "name": "", + "group": "8fe29e0c.e102e", + "order": 3, + "width": 2, + "height": 2, + "gtype": "gage", + "title": "Gauge5", + "label": "units", + "format": "{{value}}", + "min": 0, + "max": 10, + "colors": [ + "#00b500", + "#e6e600", + "#ca3838" + ], + "seg1": "", + "seg2": "", + "x": 820, + "y": 1500, + "wires": [] + }, + { + "id": "75c28d9.ca30874", + "type": "ui_gauge", + "z": "5ab56e5e.449a5", + "name": "", + "group": "8fe29e0c.e102e", + "order": 4, + "width": 1, + "height": 1, + "gtype": "gage", + "title": "Gauge6", + "label": "units", + "format": "{{value}}", + "min": 0, + "max": 10, + "colors": [ + "#00b500", + "#e6e600", + "#ca3838" + ], + "seg1": "", + "seg2": "", + "x": 820, + "y": 1540, + "wires": [] + }, + { + "id": "aac7bc67.b7e85", + "type": "ui_gauge", + "z": "5ab56e5e.449a5", + "name": "", + "group": "8fe29e0c.e102e", + "order": 5, + "width": 1, + "height": 1, + "gtype": "gage", + "title": "Gauge7", + "label": "units", + "format": "{{value}}", + "min": 0, + "max": 10, + "colors": [ + "#00b500", + "#e6e600", + "#ca3838" + ], + "seg1": "", + "seg2": "", + "x": 820, + "y": 1580, + "wires": [] + }, + { + "id": "a3fc693d.ef70a8", + "type": "ui_chart", + "z": "5ab56e5e.449a5", + "name": "", + "group": "4adac02f.cc3e7", + "order": 1, + "width": 3, + "height": 3, + "label": "Line", + "chartType": "line", + "legend": "false", + "xformat": "HH:mm:ss", + "interpolate": "bezier", + "nodata": "", + "dot": false, + "ymin": "", + "ymax": "", + "removeOlder": "1", + "removeOlderPoints": "", + "removeOlderUnit": "60", + "cutout": 0, + "colors": [ + "#1f77b4", + "#aec7e8", + "#ff7f0e", + "#2ca02c", + "#98df8a", + "#d62728", + "#ff9896", + "#9467bd", + "#c5b0d5" + ], + "outputs": 2, + "x": 630, + "y": 1220, + "wires": [ + [], + [] + ] + }, + { + "id": "9426b2c.2f8ff5", + "type": "ui_chart", + "z": "5ab56e5e.449a5", + "name": "", + "group": "4adac02f.cc3e7", + "order": 2, + "width": 3, + "height": 3, + "label": "Line", + "chartType": "line", + "legend": "false", + "xformat": "HH:mm:ss", + "interpolate": "bezier", + "nodata": "", + "dot": false, + "ymin": "", + "ymax": "", + "removeOlder": "1", + "removeOlderPoints": "", + "removeOlderUnit": "60", + "cutout": 0, + "colors": [ + "#1f77b4", + "#aec7e8", + "#ff7f0e", + "#2ca02c", + "#98df8a", + "#d62728", + "#ff9896", + "#9467bd", + "#c5b0d5" + ], + "outputs": 2, + "x": 630, + "y": 1260, + "wires": [ + [], + [] + ] + }, + { + "id": "1262ae63.953fb2", + "type": "ui_chart", + "z": "5ab56e5e.449a5", + "name": "", + "group": "4adac02f.cc3e7", + "order": 3, + "width": 3, + "height": 3, + "label": "Line", + "chartType": "line", + "legend": "false", + "xformat": "HH:mm:ss", + "interpolate": "bezier", + "nodata": "", + "dot": false, + "ymin": "", + "ymax": "", + "removeOlder": "1", + "removeOlderPoints": "", + "removeOlderUnit": "60", + "cutout": 0, + "colors": [ + "#1f77b4", + "#aec7e8", + "#ff7f0e", + "#2ca02c", + "#98df8a", + "#d62728", + "#ff9896", + "#9467bd", + "#c5b0d5" + ], + "outputs": 2, + "x": 630, + "y": 1300, + "wires": [ + [], + [] + ] + }, + { + "id": "190e7015.63e69", + "type": "ui_chart", + "z": "5ab56e5e.449a5", + "name": "", + "group": "4adac02f.cc3e7", + "order": 4, + "width": 3, + "height": 3, + "label": "Line", + "chartType": "line", + "legend": "false", + "xformat": "HH:mm:ss", + "interpolate": "bezier", + "nodata": "", + "dot": false, + "ymin": "", + "ymax": "", + "removeOlder": "1", + "removeOlderPoints": "", + "removeOlderUnit": "60", + "cutout": 0, + "colors": [ + "#1f77b4", + "#aec7e8", + "#ff7f0e", + "#2ca02c", + "#98df8a", + "#d62728", + "#ff9896", + "#9467bd", + "#c5b0d5" + ], + "outputs": 2, + "x": 630, + "y": 1340, + "wires": [ + [], + [] + ] + }, + { + "id": "37dc2b31.4edcd4", + "type": "worldmap-tracks", + "z": "5ab56e5e.449a5", + "name": "", + "depth": "10", + "x": 303.5, + "y": 230, + "wires": [ + [ + "104f9b89.5daf04" + ] + ] + }, + { + "id": "f888e972.de1a98", + "type": "worldmap in", + "z": "5ab56e5e.449a5", + "name": "", + "x": 480, + "y": 140, + "wires": [ + [ + "baaaba5f.2a46a8" + ] + ] + }, + { + "id": "baaaba5f.2a46a8", + "type": "debug", + "z": "5ab56e5e.449a5", + "name": "", + "active": false, + "console": false, + "complete": "true", + "x": 670, + "y": 140, + "wires": [] + }, + { + "id": "7df53460.04cdfc", + "type": "debug", + "z": "5ab56e5e.449a5", + "name": "", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "x": 570, + "y": 780, + "wires": [] + }, + { + "id": "a58ec245.d8bd", + "type": "inject", + "z": "5ab56e5e.449a5", + "name": "", + "topic": "", + "payload": "", + "payloadType": "date", + "repeat": "10", + "crontab": "", + "once": false, + "x": 110, + "y": 600, + "wires": [ + [] + ] + }, + { + "id": "57f4ef01.7c1a2", + "type": "function", + "z": "5ab56e5e.449a5", + "name": "", + "func": "msg.payload = context.foo || 2;\ncontext.foo = (context.foo === 3 ? 2 : 3);\nreturn msg;", + "outputs": 1, + "noerr": 0, + "x": 290, + "y": 600, + "wires": [ + [ + "e0ef7a5b.254668" + ] + ] + }, + { + "id": "e0ef7a5b.254668", + "type": "ui_ui_control", + "z": "5ab56e5e.449a5", + "name": "", + "x": 460, + "y": 600, + "wires": [ + [ + "ce56a929.359a48" + ] + ] + }, + { + "id": "ce56a929.359a48", + "type": "debug", + "z": "5ab56e5e.449a5", + "name": "", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "x": 630, + "y": 600, + "wires": [] + }, + { + "id": "ff932d90.0b5e9", + "type": "ui_gauge", + "z": "5ab56e5e.449a5", + "name": "", + "group": "ba1b0dd3.85941", + "order": 3, + "width": "1", + "height": "1", + "gtype": "gage", + "title": "Gauge5", + "label": "units", + "format": "{{value}}", + "min": 0, + "max": 10, + "colors": [ + "#00b500", + "#e6e600", + "#ca3838" + ], + "seg1": "", + "seg2": "", + "x": 360, + "y": 1420, + "wires": [] + } +] \ No newline at end of file diff --git a/main.js b/main.js index 20fdc6c..cd6f0d3 100755 --- a/main.js +++ b/main.js @@ -116,7 +116,12 @@ var settings = { httpNodeRoot: "/", userDir: userdir, flowFile: flowfile, - editorTheme: { projects:{ enabled:false }, palette: { editable:addNodes } }, // enable projects feature + flowFilePretty: true, + editorTheme: { + projects:{ enabled:false }, + header: { title: options.productName }, + palette: { editable:addNodes } + }, // enable projects feature functionGlobalContext: { }, // enables global context - add extras ehre if you need them logging: { websock: { @@ -242,50 +247,56 @@ if (isDev) { }) } -let fileName = ""; +let fileName = path.join(userdir,flowfile); function saveFlow() { - dialog.showSaveDialog({ + const file_path = dialog.showSaveDialogSync({ + title:"Save Flow As", filters:[{ name:'JSON', extensions:['json'] }], - defaultPath: fileName - }, function(file_path) { - if (file_path) { - var flo = JSON.stringify(RED.nodes.getFlows().flows); - fs.writeFile(file_path, flo, function(err) { - if (err) { dialog.showErrorBox('Error', err); } - else { - dialog.showMessageBox({ - icon: nrIcon, - message:"Flow file saved as\n\n"+file_path, - buttons: ["OK"] - }); - } - }); - } + properties: ["showHiddenFiles"], + defaultPath: fileName, + buttonLabel: "Save Flow" }); + if (file_path) { + var flo = JSON.stringify(RED.nodes.getFlows().flows, null , 2); + fs.writeFile(file_path, flo, function(err) { + if (err) { dialog.showErrorBox('Error', err); } + else { + dialog.showMessageBoxSync({ + icon: nrIcon, + message:"Flow file saved as\n\n"+file_path, + buttons: ["OK"] + }); + } + }); + } } function openFlow() { - dialog.showOpenDialog({ filters:[{ name:'JSON', extensions:['json']} ]}, - function (fileNames) { - if (fileNames && fileNames.length > 0) { - fs.readFile(fileNames[0], 'utf-8', function (err, data) { - try { - var flo = JSON.parse(data); - if (Array.isArray(flo) && (flo.length > 0)) { - RED.nodes.setFlows(flo,"full"); - fileName = fileNames[0]; - } - else { - dialog.showErrorBox("Error", "Failed to parse flow file.\n\n "+fileNames[0]+".\n\nAre you sure it's a flow file ?"); - } - } - catch(e) { - dialog.showErrorBox("Error", "Failed to load flow file.\n\n "+fileNames[0]); - } - }); + const fileNames = dialog.showOpenDialogSync({ + title:"Load Flow File", + filters:[{ name:'JSON', extensions:['json'] }], + properties: ["openFile","showHiddenFiles"], + defaultPath: fileName, + buttonLabel: "Load Flow" + }); + if (fileNames && fileNames.length > 0) { + fs.readFile(fileNames[0], 'utf-8', function (err, data) { + try { + var flo = JSON.parse(data); + if (Array.isArray(flo) && (flo.length > 0)) { + fileName = fileNames[0]; + RED.nodes.setFlows(flo,"full"); + } + else { + dialog.showErrorBox("Error", "Failed to parse flow file.\n\n "+fileNames[0]+".\n\nAre you sure it's a flow file ?"); + } } - } - ) + catch(e) { + dialog.showErrorBox("Error", "Failed to load flow file.\n\n "+fileNames[0]); + } + }); + } + } // Create the console log window @@ -298,6 +309,7 @@ function createConsole() { height: 600, icon: path.join(__dirname, nrIcon), autoHideMenuBar: true, + titleBarStyle: "hidden", webPreferences: { nodeIntegration: true } @@ -334,6 +346,7 @@ function createWindow() { icon: path.join(__dirname, nrIcon), fullscreenable: true, autoHideMenuBar: false, + titleBarStyle: "hidden", kiosk: kioskMode, webPreferences: { nodeIntegration: false diff --git a/package.json b/package.json index 74e60e5..cf22c5c 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "description": "Electron Node-RED application starter kit for development", "main": "main.js", "NRelectron": { - "productName": "Node-RED Electron", + "productName": "Node-RED Electron App", "editable": true, "allowLoadSave": false, "showMap": false, From 2496cc0c4959fb366222e0093d290da10713db29 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Mon, 5 Oct 2020 23:57:58 +0100 Subject: [PATCH 089/127] Add store for load save over restart --- electronflow.json | 2323 +++++++---------------------------------- main.js | 38 +- package-template.json | 11 +- package.json | 1 + 4 files changed, 408 insertions(+), 1965 deletions(-) diff --git a/electronflow.json b/electronflow.json index 8cfcf3e..5df9341 100644 --- a/electronflow.json +++ b/electronflow.json @@ -1,89 +1,116 @@ [ { - "id": "5ab56e5e.449a5", + "id": "41f61d2.fbe09e4", "type": "tab", "label": "Flow 1" }, { - "id": "6f60da71.efaf84", - "type": "ui_link", - "z": "", - "name": "Big Map", - "link": "/worldmap/", - "icon": "open_in_browser", - "target": "iframe", - "order": 5 + "id": "52a903f3.ad56fc", + "type": "ui_tab", + "z": "41f61d2.fbe09e4", + "name": "My Simple Dashboard", + "icon": "dashboard", + "disabled": false, + "hidden": false + }, + { + "id": "30e652f.d9de3ae", + "type": "ui_group", + "z": "41f61d2.fbe09e4", + "name": "Panel 2", + "tab": "52a903f3.ad56fc", + "order": 4, + "disp": true, + "width": "6" + }, + { + "id": "a8ecb9.c60f4348", + "type": "ui_group", + "z": "41f61d2.fbe09e4", + "name": "Introduction", + "tab": "52a903f3.ad56fc", + "order": 1, + "disp": false, + "width": "3" + }, + { + "id": "bbdf3e02.e8fee", + "type": "ui_group", + "z": "41f61d2.fbe09e4", + "name": "Panel 1", + "tab": "52a903f3.ad56fc", + "order": 2, + "disp": true, + "width": "6" }, { - "id": "4b23a5d6.33335c", + "id": "d9ba26fa.6d2b18", "type": "ui_base", "theme": { - "name": "theme-custom", + "name": "theme-light", "lightTheme": { "default": "#0094CE", - "baseColor": "#0094CE", - "baseFont": "Helvetica Neue,Helvetica,sans-serif", + "baseColor": "#8e0d17", + "baseFont": "Copperplate,Copperplate Gothic Light,fantasy", "edited": true, "reset": false }, "darkTheme": { "default": "#097479", "baseColor": "#097479", - "baseFont": "Tahoma,Geneva,sans-serif", - "edited": true, - "reset": false + "baseFont": "Helvetica Neue", + "edited": false }, "customTheme": { "name": "Untitled Theme 1", - "baseColor": "#c61e51", - "default": "#0094CE", - "baseFont": "-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif", - "reset": false + "default": "#4B7930", + "baseColor": "#4B7930", + "baseFont": "Helvetica Neue" }, "themeState": { "base-color": { - "default": "#bb1841", - "value": "#bb1841", + "default": "#0094CE", + "value": "#d80005", "edited": true }, - "page-backgroundColor": { - "value": "#111111", - "edited": false - }, - "page-sidebar-backgroundColor": { - "value": "#000000", + "page-titlebar-backgroundColor": { + "value": "#8e0d17", "edited": false }, - "page-titlebar-backgroundColor": { - "value": "#c61e51", + "page-backgroundColor": { + "value": "#fafafa", "edited": false }, - "group-backgroundColor": { + "page-sidebar-backgroundColor": { "value": "#333333", - "edited": true + "edited": false }, "group-textColor": { - "value": "#e44d7a", + "value": "#d41322", "edited": false }, "group-borderColor": { - "value": "#555555", + "value": "#ffffff", + "edited": false + }, + "group-backgroundColor": { + "value": "#ffffff", "edited": false }, "widget-textColor": { - "value": "#eeeeee", + "value": "#111111", "edited": false }, "widget-backgroundColor": { - "value": "#c61e51", + "value": "#8e0d17", "edited": false }, "widget-borderColor": { - "value": "#242424", - "edited": true + "value": "#ffffff", + "edited": false }, "base-font": { - "value": "-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif" + "value": "Copperplate,Copperplate Gothic Light,fantasy" } }, "angularTheme": { @@ -95,6 +122,9 @@ }, "site": { "name": "Node-RED Dashboard", + "hideToolbar": "false", + "allowSwipe": "false", + "dateFormat": "DD/MM/YYYY", "sizes": { "sx": 48, "sy": 48, @@ -102,2082 +132,483 @@ "gy": 6, "cx": 6, "cy": 6, - "px": 3, - "py": 3 - }, - "hideToolbar": "false", - "allowSwipe": "true", - "dateFormat": "DD/MM/YY", - "lockMenu": "false" + "px": 0, + "py": 0 + } } }, { - "id": "c60f4e05.ebb48", - "type": "ui_group", - "z": "5ab56e5e.449a5", - "name": "Map", - "tab": "6a3aec18.0bc474", - "order": 1, - "disp": true, - "width": "6" - }, - { - "id": "6a3aec18.0bc474", - "type": "ui_tab", - "z": "5ab56e5e.449a5", - "name": "Home", - "icon": "dashboard", - "order": 1, - "disabled": false, - "hidden": false - }, - { - "id": "3581a844.66d9e8", - "type": "ui_tab", - "z": "", - "name": "Charts", - "icon": "dashboard", - "order": 4 - }, - { - "id": "d9a5a546.3dbcf8", - "type": "ui_group", - "z": "", - "name": "Group 1", - "tab": "3581a844.66d9e8", - "order": 1, - "disp": true, - "width": "6", - "collapse": true - }, - { - "id": "597c8cca.c0ad24", + "id": "87356b62.92e3d8", "type": "ui_group", "z": "", - "name": "Group 2", - "tab": "3581a844.66d9e8", - "order": 2, + "name": "Text to Speech", + "tab": "52a903f3.ad56fc", + "order": 5, "disp": true, "width": "6", - "collapse": true + "collapse": false }, { - "id": "33fabf90.2fdae", + "id": "c75ad4f0.0cede8", "type": "ui_group", "z": "", - "name": "Group 3", - "tab": "3581a844.66d9e8", + "name": "Map", + "tab": "52a903f3.ad56fc", "order": 3, "disp": true, "width": "6", "collapse": true }, { - "id": "ebf91bb0.042f48", - "type": "ui_tab", - "z": "", - "name": "Gauges", - "icon": "dashboard", - "order": 2 - }, - { - "id": "db98e5e4.57a268", - "type": "ui_group", - "z": "", - "name": "Dials1", - "tab": "ebf91bb0.042f48", - "order": 2, - "disp": true, - "width": "6", - "collapse": true - }, - { - "id": "1804b9dc.fd1e66", - "type": "ui_group", - "z": "", - "name": "Inputs", - "tab": "ebf91bb0.042f48", + "id": "189cf871.681118", + "type": "ui_template", + "z": "41f61d2.fbe09e4", + "group": "a8ecb9.c60f4348", + "name": "Welcome", "order": 1, - "disp": true, - "width": "6", - "collapse": true - }, - { - "id": "f822616a.38524", - "type": "ui_group", - "z": "", - "name": "Dials2", - "tab": "ebf91bb0.042f48", - "order": 3, - "disp": true, - "width": "6", - "collapse": true - }, - { - "id": "b086b2d2.2e47b", - "type": "ui_group", - "name": "Group 3", - "tab": null, - "order": 3, - "disp": true, - "width": 6 - }, - { - "id": "d5b824b2.e53e58", - "type": "ui_group", - "z": "", - "name": "Group 4", - "tab": "3581a844.66d9e8", - "order": 4, - "disp": true, - "width": "6", - "collapse": true - }, - { - "id": "ba1b0dd3.85941", - "type": "ui_group", - "z": "", - "name": "Small", - "tab": "ebf91bb0.042f48", - "order": 4, - "disp": true, - "width": "6", - "collapse": true - }, - { - "id": "877f1e00.c03ff", - "type": "ui_tab", - "z": "", - "name": "Big gauge page", - "icon": "dashboard", - "order": 3 + "width": "3", + "height": "9", + "format": "

Welcome to the Node-RED Dashboard

\n

On the right you will see a graph and a chart logging data from the sliders underneath.

", + "storeOutMessages": false, + "fwdInMessages": false, + "resendOnRefresh": false, + "templateScope": "local", + "x": 93, + "y": 45, + "wires": [ + [] + ] }, { - "id": "1b56aad7.5752e5", - "type": "ui_group", - "z": "", - "name": "Group 1", - "tab": "877f1e00.c03ff", + "id": "9f19ee5c.beaef", + "type": "ui_chart", + "z": "41f61d2.fbe09e4", + "name": "", + "group": "bbdf3e02.e8fee", "order": 1, - "disp": true, - "width": "8" + "width": "0", + "height": "0", + "label": "", + "chartType": "line", + "xformat": "HH:mm:ss", + "interpolate": "basis", + "nodata": "No Data", + "dot": false, + "ymin": "0", + "ymax": "100", + "removeOlder": 1, + "removeOlderPoints": "", + "removeOlderUnit": "60", + "cutout": "", + "colors": [ + "#1f77b4", + "#aec7e8", + "#ff7f0e", + "#2ca02c", + "#98df8a", + "#d62728", + "#ff9896", + "#9467bd", + "#c5b0d5" + ], + "outputs": 2, + "x": 270, + "y": 200, + "wires": [ + [], + [] + ] }, { - "id": "d32ebde8.b3228", - "type": "ui_group", - "z": "", - "name": "Group 2", - "tab": "877f1e00.c03ff", + "id": "799d9318.fd385c", + "type": "ui_gauge", + "z": "41f61d2.fbe09e4", + "name": "", + "group": "30e652f.d9de3ae", "order": 2, - "disp": true, - "width": "6" - }, - { - "id": "8fe29e0c.e102e", - "type": "ui_group", - "name": "Group 3", - "tab": "877f1e00.c03ff", - "order": 3, - "disp": true, - "width": 6 - }, - { - "id": "4adac02f.cc3e7", - "type": "ui_group", - "z": "", - "name": "Group 4", - "tab": "877f1e00.c03ff", - "order": 4, - "disp": true, - "width": "12", - "collapse": false - }, - { - "id": "7a6f203.31275e", - "type": "ui_spacer", - "name": "spacer", - "group": "1b56aad7.5752e5", - "order": 5, - "width": 1, - "height": 1 - }, - { - "id": "319ba9bf.f2c9b6", - "type": "ui_spacer", - "name": "spacer", - "group": "1b56aad7.5752e5", - "order": 7, - "width": 2, - "height": 1 - }, - { - "id": "ce1d8bf0.737928", - "type": "ui_spacer", - "name": "spacer", - "group": "1b56aad7.5752e5", - "order": 8, - "width": 2, - "height": 1 - }, - { - "id": "920e7adb.7e4048", - "type": "ui_spacer", - "name": "spacer", - "group": "1b56aad7.5752e5", - "order": 11, - "width": 3, - "height": 1 + "width": "", + "height": "", + "gtype": "gage", + "title": "Title", + "label": "gauge", + "format": "{{value}}", + "min": 0, + "max": "100", + "colors": [ + "#00b500", + "#e6e600", + "#ca3838" + ], + "x": 270, + "y": 140, + "wires": [] }, { - "id": "2ddc6c22.f56604", - "type": "inject", - "z": "5ab56e5e.449a5", + "id": "6f18b200.666a4", + "type": "ui_button", + "z": "41f61d2.fbe09e4", "name": "", + "group": "87356b62.92e3d8", + "order": 2, + "width": 0, + "height": 0, + "passthru": false, + "label": "press to talk", + "tooltip": "", + "color": "", + "bgcolor": "", + "icon": "fa-volume-up", + "payload": "Hello to Jason Isaacs", + "payloadType": "str", "topic": "", - "payload": "", - "payloadType": "date", - "repeat": "", - "crontab": "", - "once": false, - "x": 120, - "y": 60, + "x": 110, + "y": 300, "wires": [ [ - "fbc32db5.f3411" + "f897d7c2.467a58" ] ] }, { - "id": "fbc32db5.f3411", - "type": "function", - "z": "5ab56e5e.449a5", + "id": "f897d7c2.467a58", + "type": "ui_audio", + "z": "41f61d2.fbe09e4", "name": "", - "func": "msg.payload={lat:51.05,lon:-1.05,name:\"Joe\",icon:\"male\",radius:2500};\nreturn msg;", - "outputs": 1, - "noerr": 0, - "x": 310, - "y": 60, + "group": "30e652f.d9de3ae", + "voice": "0", + "x": 300, + "y": 300, + "wires": [] + }, + { + "id": "da0f7e67.0d38a", + "type": "ui_slider", + "z": "41f61d2.fbe09e4", + "name": "", + "label": "slider", + "group": "30e652f.d9de3ae", + "order": 4, + "width": 0, + "height": 0, + "passthru": true, + "topic": "", + "min": 0, + "max": "100", + "step": 1, + "x": 90, + "y": 140, "wires": [ [ - "104f9b89.5daf04" + "799d9318.fd385c" ] ] }, { - "id": "104f9b89.5daf04", - "type": "worldmap", - "z": "5ab56e5e.449a5", - "name": "", - "lat": "", - "lon": "", - "zoom": "", - "layer": "OSM", - "cluster": "0", - "maxage": "", - "usermenu": "show", - "layers": "show", - "panit": "true", - "panlock": "false", - "zoomlock": "false", - "hiderightclick": "false", - "coords": "none", - "path": "", - "x": 510, - "y": 280, - "wires": [] - }, - { - "id": "127a1529.9b5c8b", - "type": "inject", - "z": "5ab56e5e.449a5", + "id": "eabf2bd7.f4e0c8", + "type": "ui_slider", + "z": "41f61d2.fbe09e4", "name": "", + "label": "slider", + "group": "bbdf3e02.e8fee", + "order": 4, + "width": 0, + "height": 0, + "passthru": true, "topic": "", - "payload": "", - "payloadType": "date", - "repeat": "", - "crontab": "", - "once": false, - "x": 120, - "y": 100, + "min": 0, + "max": "100", + "step": 1, + "x": 90, + "y": 200, "wires": [ [ - "1544450f.023d3b" + "9f19ee5c.beaef" ] ] }, { - "id": "1544450f.023d3b", + "id": "45508d88.744a54", "type": "function", - "z": "5ab56e5e.449a5", + "z": "41f61d2.fbe09e4", "name": "", - "func": "msg.payload={lat:51.05,lon:-2.05,name:\"Fred\",radius:3000};\nreturn msg;", + "func": "// create random position\nvar lat = 51 + Math.random() * 0.2;\nvar lon = -1.45 + Math.random() * 0.2;\nmsg.payload={lat:lat, lon:lon, name:\"Jason\", icon:\"male\", url:\"IBM link\"};\nreturn msg;", "outputs": 1, "noerr": 0, - "x": 310, - "y": 100, + "x": 270, + "y": 480, "wires": [ [ - "104f9b89.5daf04" + "576d953b.3e57dc", + "f9ae061e.76b048" ] ] }, { - "id": "7892d55a.40864c", - "type": "inject", - "z": "5ab56e5e.449a5", + "id": "6ca8cfc2.e0bce", + "type": "ui_button", + "z": "41f61d2.fbe09e4", "name": "", - "topic": "", + "group": "c75ad4f0.0cede8", + "order": 2, + "width": 0, + "height": 0, + "passthru": false, + "label": "Where's Jason", + "color": "", + "bgcolor": "#910000", + "icon": "fa-male", "payload": "", - "payloadType": "date", - "repeat": "", - "crontab": "", - "once": false, - "x": 121, - "y": 228, + "payloadType": "str", + "topic": "", + "x": 120, + "y": 480, "wires": [ [ - "45dc04c5.811fcc" + "45508d88.744a54" ] ] }, { - "id": "45dc04c5.811fcc", - "type": "function", - "z": "5ab56e5e.449a5", + "id": "576d953b.3e57dc", + "type": "worldmap-tracks", + "z": "41f61d2.fbe09e4", "name": "", - "func": "// create random position\nvar lat = 51 + Math.random() * 0.2;\nvar lon = -1.45 + Math.random() * 0.2;\nmsg.payload={lat:lat, lon:lon, name:\"Mike\", icon:\"male\", url:\"IBM link\"};\nreturn msg;", - "outputs": 1, - "noerr": 0, - "x": 310, - "y": 280, + "depth": 20, + "layer": "combined", + "x": 450, + "y": 420, "wires": [ [ - "104f9b89.5daf04", - "37dc2b31.4edcd4" + "f9ae061e.76b048" ] ] }, { - "id": "9756dc2b.55138", + "id": "814a9c85.e6fb8", "type": "ui_button", - "z": "5ab56e5e.449a5", + "z": "41f61d2.fbe09e4", "name": "", - "group": "8fe29e0c.e102e", - "order": 6, + "group": "c75ad4f0.0cede8", + "order": 3, "width": 0, "height": 0, "passthru": false, - "label": "button", + "label": "Delete Jason", "tooltip": "", "color": "", - "bgcolor": "", - "icon": "fa-random", + "bgcolor": "#910000", + "icon": "fa-male", "payload": "", "payloadType": "str", "topic": "", "x": 110, - "y": 440, - "wires": [ - [ - "d4fcec5d.d6d7d" - ] - ] - }, - { - "id": "d4fcec5d.d6d7d", - "type": "random", - "z": "5ab56e5e.449a5", - "name": "", - "low": "1", - "high": "6", - "inte": "true", - "x": 300, - "y": 440, - "wires": [ - [ - "fac8dd24.4b417" - ] - ] - }, - { - "id": "fac8dd24.4b417", - "type": "ui_gauge", - "z": "5ab56e5e.449a5", - "name": "", - "group": "8fe29e0c.e102e", - "order": 1, - "width": 0, - "height": 0, - "gtype": "gage", - "title": "Gauge", - "label": "units", - "format": "{{value}}", - "min": 0, - "max": 10, - "colors": [ - "#00b500", - "#e6e600", - "#ca3838" - ], - "seg1": "", - "seg2": "", - "x": 470, - "y": 440, - "wires": [] - }, - { - "id": "39ae2a4d.5a6f06", - "type": "inject", - "z": "5ab56e5e.449a5", - "name": "", - "topic": "", - "payload": "/worldmap", - "payloadType": "str", - "repeat": "", - "crontab": "", - "once": true, - "x": 130, - "y": 340, + "y": 420, "wires": [ [ - "a8660ccf.d7166" + "b9d3d78b.360d38" ] ] }, { - "id": "be72c0ae.5925b", - "type": "ui_template", - "z": "5ab56e5e.449a5", - "group": "c60f4e05.ebb48", - "name": "", - "order": 1, - "width": "6", - "height": "6", - "format": "
", - "storeOutMessages": true, - "fwdInMessages": true, - "templateScope": "local", - "x": 480, - "y": 340, - "wires": [ - [] - ] - }, - { - "id": "a8660ccf.d7166", - "type": "template", - "z": "5ab56e5e.449a5", + "id": "b9d3d78b.360d38", + "type": "function", + "z": "41f61d2.fbe09e4", "name": "", - "field": "payload", - "fieldType": "msg", - "format": "handlebars", - "syntax": "mustache", - "template": "", - "x": 310, - "y": 340, + "func": "// create random position\nmsg.payload={name:\"Jason\", deleted:true};\nreturn msg;", + "outputs": 1, + "noerr": 0, + "x": 270, + "y": 420, "wires": [ [ - "be72c0ae.5925b" + "576d953b.3e57dc" ] ] }, { - "id": "79411e5e.1af57", + "id": "36c05d33.b783b2", "type": "ui_button", - "z": "5ab56e5e.449a5", + "z": "41f61d2.fbe09e4", "name": "", - "group": "c60f4e05.ebb48", - "order": 2, + "group": "c75ad4f0.0cede8", + "order": 4, "width": 0, "height": 0, "passthru": false, - "label": "Move Mike", + "label": "Delete Track", + "tooltip": "", "color": "", "bgcolor": "#910000", "icon": "fa-male", "payload": "", "payloadType": "str", "topic": "", - "x": 130, - "y": 280, + "x": 110, + "y": 360, "wires": [ [ - "45dc04c5.811fcc" + "108b8604.f5bb8a" ] ] }, { - "id": "235ad210.492b0e", - "type": "comment", - "z": "5ab56e5e.449a5", - "name": "How to embed Map in Dashboard", - "info": "This example shows how to embed the Worldmap \ninto a template node within the `node-red-dashboard`\n\nThe first flow creates a dashboard button that \ngenerates a randon position, with the required \nicon, and passes that to the worldmap. The\nmap is configured to automatically pan to the\nposition of any point that arrives.\n\nThe second flow initialise the dashboard template\nwith the initial map and sets it to a more square shape\nby adjusting the height.", - "x": 180, - "y": 180, - "wires": [] - }, - { - "id": "ef51b254.c41f8", - "type": "ui_slider", - "z": "5ab56e5e.449a5", + "id": "108b8604.f5bb8a", + "type": "function", + "z": "41f61d2.fbe09e4", "name": "", - "label": "slider", - "group": "33fabf90.2fdae", - "order": 1, - "width": 0, - "height": 0, - "passthru": true, - "topic": "AAAA", - "min": 0, - "max": 10, - "step": 1, - "x": 310, - "y": 820, + "func": "// create random position\nmsg.payload={name:\"Jason_\", deleted:true};\nreturn msg;", + "outputs": 1, + "noerr": 0, + "x": 270, + "y": 360, "wires": [ [ - "e801ab50.e12fa8", - "c89941bb.94", - "fbcc8a14.9cfc48", - "c04a6b4a.6337e8", - "7c67e5b4.508b9c", - "48f59ada.4761c4", - "c1752406.db6818", - "7df53460.04cdfc", - "443aee23.40925" + "f9ae061e.76b048" ] ] }, { - "id": "e801ab50.e12fa8", - "type": "ui_chart", - "z": "5ab56e5e.449a5", + "id": "e90f82d8.46a78", + "type": "ui_ui_control", + "z": "41f61d2.fbe09e4", "name": "", - "group": "597c8cca.c0ad24", - "order": 1, - "width": "0", - "height": "0", - "label": "Line", - "chartType": "line", - "legend": "false", - "xformat": "HH:mm", - "interpolate": "bezier", - "nodata": "", - "dot": false, - "ymin": "0", - "ymax": "10", - "removeOlder": "30", - "removeOlderPoints": "100", - "removeOlderUnit": "1", - "cutout": 0, - "colors": [ - "#1f77b4", - "#aec7e8", - "#ff7f0e", - "#2ca02c", - "#98df8a", - "#d62728", - "#ff9896", - "#9467bd", - "#c5b0d5" - ], - "useOldStyle": false, - "outputs": 2, - "x": 550, - "y": 820, + "events": "all", + "x": 360, + "y": 560, "wires": [ - [], [] ] }, { - "id": "a094687c.f408f8", - "type": "ui_slider", - "z": "5ab56e5e.449a5", + "id": "c920e625.e95578", + "type": "ui_button", + "z": "41f61d2.fbe09e4", "name": "", - "label": "slider", - "group": "33fabf90.2fdae", + "group": "a8ecb9.c60f4348", "order": 2, "width": 0, "height": 0, - "passthru": true, - "topic": "BBB", - "min": 0, - "max": 10, - "step": 1, - "x": 310, - "y": 860, + "passthru": false, + "label": "Close Map", + "tooltip": "", + "color": "", + "bgcolor": "", + "icon": "", + "payload": "{\"group\":{\"close\":[\"My_Simple_Dashboard_Map\"]}}", + "payloadType": "json", + "topic": "", + "x": 150, + "y": 560, "wires": [ [ - "e801ab50.e12fa8", - "c89941bb.94", - "fbcc8a14.9cfc48", - "443aee23.40925", - "c04a6b4a.6337e8", - "7c67e5b4.508b9c", - "48f59ada.4761c4", - "c1752406.db6818" + "e90f82d8.46a78" ] ] }, { - "id": "a082aa3a.8b9628", - "type": "ui_slider", - "z": "5ab56e5e.449a5", + "id": "48892dbf.1d3e64", + "type": "ui_button", + "z": "41f61d2.fbe09e4", "name": "", - "label": "slider", - "group": "33fabf90.2fdae", - "order": 3, + "group": "a8ecb9.c60f4348", + "order": 5, "width": 0, "height": 0, - "passthru": true, - "topic": "CC", - "min": 0, - "max": 10, - "step": 1, - "x": 310, - "y": 900, + "passthru": false, + "label": "Show Map", + "tooltip": "", + "color": "", + "bgcolor": "", + "icon": "", + "payload": "{\"group\":{\"show\":[\"My_Simple_Dashboard_Map\"]}}", + "payloadType": "json", + "topic": "", + "x": 150, + "y": 680, "wires": [ [ - "e801ab50.e12fa8", - "c89941bb.94", - "fbcc8a14.9cfc48", - "443aee23.40925", - "c1752406.db6818", - "48f59ada.4761c4", - "7c67e5b4.508b9c", - "c04a6b4a.6337e8" + "e90f82d8.46a78" ] ] }, { - "id": "e8cbef9f.abdde", - "type": "ui_slider", - "z": "5ab56e5e.449a5", + "id": "e44dda45.d85038", + "type": "ui_button", + "z": "41f61d2.fbe09e4", "name": "", - "label": "slider", - "group": "33fabf90.2fdae", + "group": "a8ecb9.c60f4348", "order": 4, "width": 0, "height": 0, - "passthru": true, - "topic": "D", - "min": 0, - "max": 10, - "step": 1, - "x": 310, - "y": 940, + "passthru": false, + "label": "Hide Map", + "tooltip": "", + "color": "", + "bgcolor": "", + "icon": "", + "payload": "{\"group\":{\"hide\":[\"My_Simple_Dashboard_Map\"]}}", + "payloadType": "json", + "topic": "", + "x": 140, + "y": 640, "wires": [ [ - "e801ab50.e12fa8", - "fbcc8a14.9cfc48", - "c89941bb.94", - "443aee23.40925", - "c1752406.db6818", - "48f59ada.4761c4", - "7c67e5b4.508b9c", - "c04a6b4a.6337e8" + "e90f82d8.46a78" ] ] }, { - "id": "443aee23.40925", - "type": "ui_chart", - "z": "5ab56e5e.449a5", - "name": "", - "group": "597c8cca.c0ad24", - "order": 2, - "width": 0, - "height": 0, - "label": "Bar", - "chartType": "bar", - "legend": "false", - "xformat": "HH:mm:ss", - "interpolate": "linear", - "nodata": "", - "dot": false, - "ymin": "", - "ymax": "", - "removeOlder": "10", - "removeOlderPoints": "", - "removeOlderUnit": "60", - "cutout": 0, - "colors": [ - "#b40fb0", - "#aec7e8", - "#ff7f0e", - "#2ca02c", - "#98df8a", - "#d62728", - "#ff9896", - "#9467bd", - "#c5b0d5" - ], - "useOldStyle": false, - "outputs": 2, - "x": 550, - "y": 860, - "wires": [ - [], - [] - ] - }, - { - "id": "c89941bb.94", - "type": "ui_chart", - "z": "5ab56e5e.449a5", - "name": "", - "group": "d9a5a546.3dbcf8", - "order": 1, - "width": 0, - "height": 0, - "label": "Bar (H)", - "chartType": "horizontalBar", - "legend": "false", - "xformat": "HH:mm:ss", - "interpolate": "linear", - "nodata": "", - "dot": false, - "ymin": "", - "ymax": "", - "removeOlder": "10", - "removeOlderPoints": "", - "removeOlderUnit": "60", - "cutout": 0, - "colors": [ - "#1f77b4", - "#aec7e8", - "#ff7f0e", - "#2ca02c", - "#98df8a", - "#d62728", - "#ff9896", - "#9467bd", - "#c5b0d5" - ], - "useOldStyle": false, - "outputs": 2, - "x": 550, - "y": 900, - "wires": [ - [], - [] - ] - }, - { - "id": "fbcc8a14.9cfc48", - "type": "ui_chart", - "z": "5ab56e5e.449a5", + "id": "1ffc9864.56de48", + "type": "ui_button", + "z": "41f61d2.fbe09e4", "name": "", - "group": "d9a5a546.3dbcf8", - "order": 2, + "group": "a8ecb9.c60f4348", + "order": 3, "width": 0, "height": 0, - "label": "Pie", - "chartType": "pie", - "legend": "true", - "xformat": "HH:mm:ss", - "interpolate": "linear", - "nodata": "", - "dot": false, - "ymin": "", - "ymax": "", - "removeOlder": "10", - "removeOlderPoints": "", - "removeOlderUnit": "60", - "cutout": "25", - "colors": [ - "#1f77b4", - "#aec7e8", - "#ff7f0e", - "#2ca02c", - "#98df8a", - "#d62728", - "#ff9896", - "#9467bd", - "#c5b0d5" - ], - "useOldStyle": false, - "outputs": 2, - "x": 550, - "y": 940, - "wires": [ - [], - [] - ] - }, - { - "id": "70c11a4b.372e04", - "type": "random", - "z": "5ab56e5e.449a5", - "name": "", - "low": "0", - "high": "10", - "inte": "true", - "x": 160, - "y": 820, - "wires": [ - [ - "ef51b254.c41f8", - "e226e499.d100d8" - ] - ] - }, - { - "id": "de6c94cf.e06a58", - "type": "inject", - "z": "5ab56e5e.449a5", - "name": "", + "passthru": false, + "label": "Open Map", + "tooltip": "", + "color": "", + "bgcolor": "", + "icon": "", + "payload": "{\"group\":{\"open\":[\"My_Simple_Dashboard_Map\"]}}", + "payloadType": "json", "topic": "", - "payload": "", - "payloadType": "date", - "repeat": "1", - "crontab": "", - "once": false, - "x": 131, - "y": 742, - "wires": [ - [ - "70c11a4b.372e04", - "7b25a3dd.f9224c", - "b07e3f5a.ef2f2", - "de9d98b8.d1cb38" - ] - ] - }, - { - "id": "7b25a3dd.f9224c", - "type": "random", - "z": "5ab56e5e.449a5", - "name": "", - "low": "0", - "high": "10", - "inte": "true", - "x": 160, - "y": 860, - "wires": [ - [ - "a094687c.f408f8", - "8615c147.2a197" - ] - ] - }, - { - "id": "b07e3f5a.ef2f2", - "type": "random", - "z": "5ab56e5e.449a5", - "name": "", - "low": "0", - "high": "10", - "inte": "true", - "x": 160, - "y": 900, + "x": 150, + "y": 600, "wires": [ [ - "a082aa3a.8b9628", - "66791422.4ddd5c" + "e90f82d8.46a78" ] ] }, { - "id": "de9d98b8.d1cb38", - "type": "random", - "z": "5ab56e5e.449a5", - "name": "", - "low": "0", - "high": "10", - "inte": "true", - "x": 160, - "y": 940, - "wires": [ - [ - "e8cbef9f.abdde", - "39518116.f80d8e" - ] - ] - }, - { - "id": "9d449cc9.71f1e", - "type": "ui_gauge", - "z": "5ab56e5e.449a5", - "name": "", - "group": "db98e5e4.57a268", - "order": 1, - "width": 0, - "height": 0, - "gtype": "gage", - "title": "Gauge", - "label": "units", - "format": "{{value}}", - "min": 0, - "max": 10, - "colors": [ - "#00b500", - "#e6e600", - "#ca3838" - ], - "x": 363, - "y": 1072, - "wires": [] - }, - { - "id": "e226e499.d100d8", - "type": "ui_text_input", - "z": "5ab56e5e.449a5", - "name": "", - "label": "", - "group": "1804b9dc.fd1e66", - "order": 0, - "width": 0, - "height": 0, - "passthru": true, - "mode": "text", - "delay": 300, - "topic": "", - "x": 140, - "y": 1080, - "wires": [ - [ - "9d449cc9.71f1e", - "f7df9217.5b12e", - "b819418.8f33ec", - "9b2868a8.dfbac8", - "1802159b.65fd6a", - "75c28d9.ca30874", - "a3fc693d.ef70a8", - "ff932d90.0b5e9" - ] - ] - }, - { - "id": "cf334a99.610928", - "type": "ui_gauge", - "z": "5ab56e5e.449a5", - "name": "", - "group": "db98e5e4.57a268", - "order": 2, - "width": 0, - "height": 0, - "gtype": "donut", - "title": "Gauge", - "label": "units", - "format": "{{value}}", - "min": 0, - "max": 10, - "colors": [ - "#00b500", - "#e6e600", - "#ca3838" - ], - "x": 363, - "y": 1112, - "wires": [] - }, - { - "id": "8615c147.2a197", - "type": "ui_text_input", - "z": "5ab56e5e.449a5", - "name": "", - "label": "", - "group": "1804b9dc.fd1e66", - "order": 0, - "width": 0, - "height": 0, - "passthru": true, - "mode": "text", - "delay": 300, - "topic": "", - "x": 140, - "y": 1120, - "wires": [ - [ - "cf334a99.610928", - "e8d79424.ca1ef8", - "e7000422.8e2288", - "e195514c.67385", - "f2839923.fd5a58", - "aac7bc67.b7e85", - "190e7015.63e69" - ] - ] - }, - { - "id": "49b0152.a68f9ec", - "type": "ui_gauge", - "z": "5ab56e5e.449a5", - "name": "", - "group": "f822616a.38524", - "order": 0, - "width": 0, - "height": 0, - "gtype": "compass", - "title": "Gauge", - "label": "units", - "format": "{{value}}", - "min": 0, - "max": 10, - "colors": [ - "#00b500", - "#e6e600", - "#ca3838" - ], - "x": 363, - "y": 1152, - "wires": [] - }, - { - "id": "66791422.4ddd5c", - "type": "ui_text_input", - "z": "5ab56e5e.449a5", - "name": "", - "label": "", - "group": "1804b9dc.fd1e66", - "order": 0, - "width": 0, - "height": 0, - "passthru": true, - "mode": "text", - "delay": 300, - "topic": "", - "x": 140, - "y": 1160, - "wires": [ - [ - "49b0152.a68f9ec", - "e42325d2.6dd6b8", - "ce349625.bdb598", - "16d00075.1bb92", - "8b9f1f1f.dad3b", - "2cb935d1.cd6a1a", - "9426b2c.2f8ff5" - ] - ] - }, - { - "id": "359ca29d.f1b9fe", - "type": "ui_gauge", - "z": "5ab56e5e.449a5", - "name": "", - "group": "f822616a.38524", - "order": 0, - "width": 0, - "height": 0, - "gtype": "wave", - "title": "Gauge", - "label": "units", - "format": "{{value}}", - "min": 0, - "max": 10, - "colors": [ - "#00b500", - "#e6e600", - "#ca3838" - ], - "x": 363, - "y": 1192, - "wires": [] - }, - { - "id": "39518116.f80d8e", - "type": "ui_text_input", - "z": "5ab56e5e.449a5", - "name": "", - "label": "", - "group": "1804b9dc.fd1e66", - "order": 0, - "width": 0, - "height": 0, - "passthru": true, - "mode": "text", - "delay": 300, - "topic": "", - "x": 140, - "y": 1200, - "wires": [ - [ - "359ca29d.f1b9fe", - "96887d8.321498", - "3fabb83f.35fa18", - "94698e20.5c0e8", - "39d7b922.15d596", - "610c083e.6eafb8", - "1262ae63.953fb2" - ] - ] - }, - { - "id": "c04a6b4a.6337e8", - "type": "ui_chart", - "z": "5ab56e5e.449a5", - "name": "", - "group": "d5b824b2.e53e58", - "order": 2, - "width": "0", - "height": "0", - "label": "Line", - "chartType": "line", - "legend": "false", - "xformat": "HH:mm:ss", - "interpolate": "bezier", - "nodata": "", - "dot": false, - "ymin": "", - "ymax": "", - "removeOlder": "30", - "removeOlderPoints": "", - "removeOlderUnit": "1", - "cutout": 0, - "colors": [ - "#1f77b4", - "#aec7e8", - "#ff7f0e", - "#2ca02c", - "#98df8a", - "#d62728", - "#ff9896", - "#9467bd", - "#c5b0d5" - ], - "outputs": 2, - "x": 556, - "y": 993, - "wires": [ - [], - [] - ] - }, - { - "id": "7c67e5b4.508b9c", - "type": "ui_chart", - "z": "5ab56e5e.449a5", - "name": "", - "group": "d5b824b2.e53e58", - "order": 1, - "width": "0", - "height": "0", - "label": "Bar", - "chartType": "bar", - "legend": "false", - "xformat": "HH:mm:ss", - "interpolate": "linear", - "nodata": "", - "dot": false, - "ymin": "", - "ymax": "", - "removeOlder": "10", - "removeOlderPoints": "", - "removeOlderUnit": "60", - "cutout": 0, - "colors": [ - "#864fb4", - "#aec7e8", - "#ff7f0e", - "#2ca02c", - "#98df8a", - "#d62728", - "#ff9896", - "#9467bd", - "#c5b0d5" - ], - "useOldStyle": true, - "outputs": 2, - "x": 556, - "y": 1033, - "wires": [ - [], - [] - ] - }, - { - "id": "48f59ada.4761c4", - "type": "ui_chart", - "z": "5ab56e5e.449a5", - "name": "", - "group": "597c8cca.c0ad24", - "order": 3, - "width": 0, - "height": 0, - "label": "Bar (H)", - "chartType": "horizontalBar", - "legend": "false", - "xformat": "HH:mm:ss", - "interpolate": "linear", - "nodata": "", - "ymin": "", - "ymax": "", - "removeOlder": "10", - "removeOlderPoints": "", - "removeOlderUnit": "60", - "cutout": 0, - "outputs": 2, - "x": 556, - "y": 1073, - "wires": [ - [], - [] - ] - }, - { - "id": "c1752406.db6818", - "type": "ui_chart", - "z": "5ab56e5e.449a5", - "name": "", - "group": "d5b824b2.e53e58", - "order": 3, - "width": 0, - "height": 0, - "label": "Pie", - "chartType": "polar-area", - "legend": "true", - "xformat": "HH:mm:ss", - "interpolate": "linear", - "nodata": "", - "dot": false, - "ymin": "", - "ymax": "", - "removeOlder": "10", - "removeOlderPoints": "", - "removeOlderUnit": "60", - "cutout": "25", - "colors": [ - "#1f77b4", - "#aec7e8", - "#ff7f0e", - "#2ca02c", - "#98df8a", - "#d62728", - "#ff9896", - "#9467bd", - "#c5b0d5" - ], - "outputs": 2, - "x": 556, - "y": 1113, - "wires": [ - [], - [] - ] - }, - { - "id": "f7df9217.5b12e", - "type": "ui_gauge", - "z": "5ab56e5e.449a5", - "name": "", - "group": "ba1b0dd3.85941", - "order": 1, - "width": "3", - "height": "3", - "gtype": "gage", - "title": "Gauge1", - "label": "units", - "format": "{{value}}", - "min": 0, - "max": 10, - "colors": [ - "#00b500", - "#e6e600", - "#ca3838" - ], - "seg1": "", - "seg2": "", - "x": 370, - "y": 1266, - "wires": [] - }, - { - "id": "e8d79424.ca1ef8", - "type": "ui_gauge", - "z": "5ab56e5e.449a5", - "name": "", - "group": "ba1b0dd3.85941", - "order": 4, - "width": "3", - "height": "2", - "gtype": "gage", - "title": "Gauge2", - "label": "units", - "format": "{{value}}", - "min": 0, - "max": 10, - "colors": [ - "#00b500", - "#e6e600", - "#ca3838" - ], - "seg1": "", - "seg2": "", - "x": 371, - "y": 1304, - "wires": [] - }, - { - "id": "e42325d2.6dd6b8", - "type": "ui_gauge", - "z": "5ab56e5e.449a5", - "name": "", - "group": "ba1b0dd3.85941", - "order": 2, - "width": "2", - "height": "2", - "gtype": "gage", - "title": "Gauge3", - "label": "units", - "format": "{{value}}", - "min": 0, - "max": 10, - "colors": [ - "#00b500", - "#e6e600", - "#ca3838" - ], - "seg1": "", - "seg2": "", - "x": 369, - "y": 1347, - "wires": [] - }, - { - "id": "96887d8.321498", - "type": "ui_gauge", - "z": "5ab56e5e.449a5", - "name": "", - "group": "ba1b0dd3.85941", - "order": 3, - "width": "2", - "height": "3", - "gtype": "gage", - "title": "Gauge4", - "label": "units", - "format": "{{value}}", - "min": 0, - "max": 10, - "colors": [ - "#00b500", - "#e6e600", - "#ca3838" - ], - "seg1": "", - "seg2": "", - "x": 360, - "y": 1380, - "wires": [] - }, - { - "id": "b819418.8f33ec", - "type": "ui_gauge", - "z": "5ab56e5e.449a5", - "name": "", - "group": "1b56aad7.5752e5", - "order": 2, - "width": 3, - "height": 2, - "gtype": "gage", - "title": "Gauge1", - "label": "units", - "format": "{{value}}", - "min": 0, - "max": 10, - "colors": [ - "#00b500", - "#e6e600", - "#ca3838" - ], - "seg1": "", - "seg2": "", - "x": 368, - "y": 1457, - "wires": [] - }, - { - "id": "e7000422.8e2288", - "type": "ui_gauge", - "z": "5ab56e5e.449a5", - "name": "", - "group": "1b56aad7.5752e5", - "order": 3, - "width": 3, - "height": 2, - "gtype": "gage", - "title": "Gauge2", - "label": "units", - "format": "{{value}}", - "min": 0, - "max": 10, - "colors": [ - "#00b500", - "#e6e600", - "#ca3838" - ], - "seg1": "", - "seg2": "", - "x": 369, - "y": 1495, - "wires": [] - }, - { - "id": "ce349625.bdb598", - "type": "ui_gauge", - "z": "5ab56e5e.449a5", - "name": "", - "group": "1b56aad7.5752e5", - "order": 4, - "width": 3, - "height": 3, - "gtype": "gage", - "title": "Gauge3", - "label": "units", - "format": "{{value}}", - "min": 0, - "max": 10, - "colors": [ - "#00b500", - "#e6e600", - "#ca3838" - ], - "seg1": "", - "seg2": "", - "x": 367, - "y": 1538, - "wires": [] - }, - { - "id": "3fabb83f.35fa18", - "type": "ui_gauge", - "z": "5ab56e5e.449a5", - "name": "", - "group": "1b56aad7.5752e5", - "order": 9, - "width": 3, - "height": 3, - "gtype": "gage", - "title": "Gauge4", - "label": "units", - "format": "{{value}}", - "min": 0, - "max": 10, - "colors": [ - "#00b500", - "#e6e600", - "#ca3838" - ], - "seg1": "", - "seg2": "", - "x": 367, - "y": 1582, - "wires": [] - }, - { - "id": "e195514c.67385", - "type": "ui_gauge", - "z": "5ab56e5e.449a5", - "name": "", - "group": "1b56aad7.5752e5", - "order": 1, - "width": 5, - "height": 4, - "gtype": "gage", - "title": "GaugeA", - "label": "units", - "format": "{{value}}", - "min": 0, - "max": 10, - "colors": [ - "#00b500", - "#e6e600", - "#ca3838" - ], - "seg1": "", - "seg2": "", - "x": 174, - "y": 1456, - "wires": [] - }, - { - "id": "16d00075.1bb92", - "type": "ui_gauge", - "z": "5ab56e5e.449a5", - "name": "", - "group": "1b56aad7.5752e5", - "order": 10, - "width": 2, - "height": 2, - "gtype": "gage", - "title": "Gauge5", - "label": "units", - "format": "{{value}}", - "min": 0, - "max": 10, - "colors": [ - "#00b500", - "#e6e600", - "#ca3838" - ], - "seg1": "", - "seg2": "", - "x": 367, - "y": 1630, - "wires": [] - }, - { - "id": "94698e20.5c0e8", - "type": "ui_gauge", - "z": "5ab56e5e.449a5", - "name": "", - "group": "1b56aad7.5752e5", - "order": 12, - "width": 0, - "height": 0, - "gtype": "gage", - "title": "Gauge6", - "label": "units", - "format": "{{value}}", - "min": 0, - "max": 10, - "colors": [ - "#00b500", - "#e6e600", - "#ca3838" - ], - "seg1": "", - "seg2": "", - "x": 367, - "y": 1674, - "wires": [] - }, - { - "id": "9b2868a8.dfbac8", - "type": "ui_gauge", - "z": "5ab56e5e.449a5", - "name": "", - "group": "1b56aad7.5752e5", - "order": 6, - "width": 2, - "height": 1, - "gtype": "gage", - "title": "Gauge7", - "label": "units", - "format": "{{value}}", - "min": 0, - "max": 10, - "colors": [ - "#00b500", - "#e6e600", - "#ca3838" - ], - "seg1": "", - "seg2": "", - "x": 364, - "y": 1719, - "wires": [] - }, - { - "id": "1802159b.65fd6a", - "type": "ui_gauge", - "z": "5ab56e5e.449a5", - "name": "", - "group": "d32ebde8.b3228", - "order": 1, - "width": 4, - "height": 3, - "gtype": "gage", - "title": "GaugeA", - "label": "units", - "format": "{{value}}", - "min": 0, - "max": 10, - "colors": [ - "#00b500", - "#e6e600", - "#ca3838" - ], - "seg1": "", - "seg2": "", - "x": 620, - "y": 1460, - "wires": [] - }, - { - "id": "f2839923.fd5a58", - "type": "ui_gauge", - "z": "5ab56e5e.449a5", - "name": "", - "group": "d32ebde8.b3228", - "order": 2, - "width": 2, - "height": 2, - "gtype": "gage", - "title": "Gauge5", - "label": "units", - "format": "{{value}}", - "min": 0, - "max": 10, - "colors": [ - "#00b500", - "#e6e600", - "#ca3838" - ], - "seg1": "", - "seg2": "", - "x": 620, - "y": 1500, - "wires": [] - }, - { - "id": "8b9f1f1f.dad3b", - "type": "ui_gauge", - "z": "5ab56e5e.449a5", - "name": "", - "group": "d32ebde8.b3228", - "order": 3, - "width": 1, - "height": 1, - "gtype": "gage", - "title": "Gauge6", - "label": "units", - "format": "{{value}}", - "min": 0, - "max": 10, - "colors": [ - "#00b500", - "#e6e600", - "#ca3838" - ], - "seg1": "", - "seg2": "", - "x": 620, - "y": 1540, - "wires": [] - }, - { - "id": "39d7b922.15d596", - "type": "ui_gauge", - "z": "5ab56e5e.449a5", - "name": "", - "group": "d32ebde8.b3228", - "order": 4, - "width": 1, - "height": 1, - "gtype": "gage", - "title": "Gauge7", - "label": "units", - "format": "{{value}}", - "min": 0, - "max": 10, - "colors": [ - "#00b500", - "#e6e600", - "#ca3838" - ], - "seg1": "", - "seg2": "", - "x": 620, - "y": 1580, - "wires": [] - }, - { - "id": "610c083e.6eafb8", - "type": "ui_gauge", - "z": "5ab56e5e.449a5", - "name": "", - "group": "8fe29e0c.e102e", - "order": 2, - "width": 4, - "height": 3, - "gtype": "gage", - "title": "GaugeA", - "label": "units", - "format": "{{value}}", - "min": 0, - "max": 10, - "colors": [ - "#00b500", - "#e6e600", - "#ca3838" - ], - "seg1": "", - "seg2": "", - "x": 820, - "y": 1460, - "wires": [] - }, - { - "id": "2cb935d1.cd6a1a", - "type": "ui_gauge", - "z": "5ab56e5e.449a5", - "name": "", - "group": "8fe29e0c.e102e", - "order": 3, - "width": 2, - "height": 2, - "gtype": "gage", - "title": "Gauge5", - "label": "units", - "format": "{{value}}", - "min": 0, - "max": 10, - "colors": [ - "#00b500", - "#e6e600", - "#ca3838" - ], - "seg1": "", - "seg2": "", - "x": 820, - "y": 1500, - "wires": [] - }, - { - "id": "75c28d9.ca30874", - "type": "ui_gauge", - "z": "5ab56e5e.449a5", - "name": "", - "group": "8fe29e0c.e102e", - "order": 4, - "width": 1, - "height": 1, - "gtype": "gage", - "title": "Gauge6", - "label": "units", - "format": "{{value}}", - "min": 0, - "max": 10, - "colors": [ - "#00b500", - "#e6e600", - "#ca3838" - ], - "seg1": "", - "seg2": "", - "x": 820, - "y": 1540, - "wires": [] - }, - { - "id": "aac7bc67.b7e85", - "type": "ui_gauge", - "z": "5ab56e5e.449a5", - "name": "", - "group": "8fe29e0c.e102e", - "order": 5, - "width": 1, - "height": 1, - "gtype": "gage", - "title": "Gauge7", - "label": "units", - "format": "{{value}}", - "min": 0, - "max": 10, - "colors": [ - "#00b500", - "#e6e600", - "#ca3838" - ], - "seg1": "", - "seg2": "", - "x": 820, - "y": 1580, - "wires": [] - }, - { - "id": "a3fc693d.ef70a8", - "type": "ui_chart", - "z": "5ab56e5e.449a5", - "name": "", - "group": "4adac02f.cc3e7", - "order": 1, - "width": 3, - "height": 3, - "label": "Line", - "chartType": "line", - "legend": "false", - "xformat": "HH:mm:ss", - "interpolate": "bezier", - "nodata": "", - "dot": false, - "ymin": "", - "ymax": "", - "removeOlder": "1", - "removeOlderPoints": "", - "removeOlderUnit": "60", - "cutout": 0, - "colors": [ - "#1f77b4", - "#aec7e8", - "#ff7f0e", - "#2ca02c", - "#98df8a", - "#d62728", - "#ff9896", - "#9467bd", - "#c5b0d5" - ], - "outputs": 2, - "x": 630, - "y": 1220, - "wires": [ - [], - [] - ] - }, - { - "id": "9426b2c.2f8ff5", - "type": "ui_chart", - "z": "5ab56e5e.449a5", - "name": "", - "group": "4adac02f.cc3e7", - "order": 2, - "width": 3, - "height": 3, - "label": "Line", - "chartType": "line", - "legend": "false", - "xformat": "HH:mm:ss", - "interpolate": "bezier", - "nodata": "", - "dot": false, - "ymin": "", - "ymax": "", - "removeOlder": "1", - "removeOlderPoints": "", - "removeOlderUnit": "60", - "cutout": 0, - "colors": [ - "#1f77b4", - "#aec7e8", - "#ff7f0e", - "#2ca02c", - "#98df8a", - "#d62728", - "#ff9896", - "#9467bd", - "#c5b0d5" - ], - "outputs": 2, - "x": 630, - "y": 1260, - "wires": [ - [], - [] - ] - }, - { - "id": "1262ae63.953fb2", - "type": "ui_chart", - "z": "5ab56e5e.449a5", - "name": "", - "group": "4adac02f.cc3e7", - "order": 3, - "width": 3, - "height": 3, - "label": "Line", - "chartType": "line", - "legend": "false", - "xformat": "HH:mm:ss", - "interpolate": "bezier", - "nodata": "", - "dot": false, - "ymin": "", - "ymax": "", - "removeOlder": "1", - "removeOlderPoints": "", - "removeOlderUnit": "60", - "cutout": 0, - "colors": [ - "#1f77b4", - "#aec7e8", - "#ff7f0e", - "#2ca02c", - "#98df8a", - "#d62728", - "#ff9896", - "#9467bd", - "#c5b0d5" - ], - "outputs": 2, - "x": 630, - "y": 1300, - "wires": [ - [], - [] - ] - }, - { - "id": "190e7015.63e69", - "type": "ui_chart", - "z": "5ab56e5e.449a5", - "name": "", - "group": "4adac02f.cc3e7", - "order": 4, - "width": 3, - "height": 3, - "label": "Line", - "chartType": "line", - "legend": "false", - "xformat": "HH:mm:ss", - "interpolate": "bezier", - "nodata": "", - "dot": false, - "ymin": "", - "ymax": "", - "removeOlder": "1", - "removeOlderPoints": "", - "removeOlderUnit": "60", - "cutout": 0, - "colors": [ - "#1f77b4", - "#aec7e8", - "#ff7f0e", - "#2ca02c", - "#98df8a", - "#d62728", - "#ff9896", - "#9467bd", - "#c5b0d5" - ], - "outputs": 2, - "x": 630, - "y": 1340, - "wires": [ - [], - [] - ] - }, - { - "id": "37dc2b31.4edcd4", - "type": "worldmap-tracks", - "z": "5ab56e5e.449a5", - "name": "", - "depth": "10", - "x": 303.5, - "y": 230, - "wires": [ - [ - "104f9b89.5daf04" - ] - ] - }, - { - "id": "f888e972.de1a98", - "type": "worldmap in", - "z": "5ab56e5e.449a5", + "id": "f9ae061e.76b048", + "type": "ui_worldmap", + "z": "41f61d2.fbe09e4", + "group": "c75ad4f0.0cede8", + "order": 1, + "width": 0, + "height": 0, "name": "", + "lat": "", + "lon": "", + "zoom": "", + "layer": "", + "cluster": "", + "maxage": "", + "usermenu": "hide", + "layers": "hide", + "panit": "false", + "panlock": "false", + "zoomlock": "false", + "hiderightclick": "true", + "coords": "none", + "showgrid": "false", + "path": "/worldmap", "x": 480, - "y": 140, - "wires": [ - [ - "baaaba5f.2a46a8" - ] - ] - }, - { - "id": "baaaba5f.2a46a8", - "type": "debug", - "z": "5ab56e5e.449a5", - "name": "", - "active": false, - "console": false, - "complete": "true", - "x": 670, - "y": 140, - "wires": [] - }, - { - "id": "7df53460.04cdfc", - "type": "debug", - "z": "5ab56e5e.449a5", - "name": "", - "active": false, - "tosidebar": true, - "console": false, - "tostatus": false, - "complete": "false", - "x": 570, - "y": 780, - "wires": [] - }, - { - "id": "a58ec245.d8bd", - "type": "inject", - "z": "5ab56e5e.449a5", - "name": "", - "topic": "", - "payload": "", - "payloadType": "date", - "repeat": "10", - "crontab": "", - "once": false, - "x": 110, - "y": 600, - "wires": [ - [] - ] - }, - { - "id": "57f4ef01.7c1a2", - "type": "function", - "z": "5ab56e5e.449a5", - "name": "", - "func": "msg.payload = context.foo || 2;\ncontext.foo = (context.foo === 3 ? 2 : 3);\nreturn msg;", - "outputs": 1, - "noerr": 0, - "x": 290, - "y": 600, - "wires": [ - [ - "e0ef7a5b.254668" - ] - ] - }, - { - "id": "e0ef7a5b.254668", - "type": "ui_ui_control", - "z": "5ab56e5e.449a5", - "name": "", - "x": 460, - "y": 600, - "wires": [ - [ - "ce56a929.359a48" - ] - ] - }, - { - "id": "ce56a929.359a48", - "type": "debug", - "z": "5ab56e5e.449a5", - "name": "", - "active": true, - "tosidebar": true, - "console": false, - "tostatus": false, - "complete": "false", - "x": 630, - "y": 600, - "wires": [] - }, - { - "id": "ff932d90.0b5e9", - "type": "ui_gauge", - "z": "5ab56e5e.449a5", - "name": "", - "group": "ba1b0dd3.85941", - "order": 3, - "width": "1", - "height": "1", - "gtype": "gage", - "title": "Gauge5", - "label": "units", - "format": "{{value}}", - "min": 0, - "max": 10, - "colors": [ - "#00b500", - "#e6e600", - "#ca3838" - ], - "seg1": "", - "seg2": "", - "x": 360, - "y": 1420, + "y": 480, "wires": [] } ] \ No newline at end of file diff --git a/main.js b/main.js index cd6f0d3..a5cb980 100755 --- a/main.js +++ b/main.js @@ -6,11 +6,11 @@ if (pkg.hasOwnProperty("NRelectron")) { options = pkg["NRelectron"] } // Some settings you can edit if you don't set them in package.json //console.log(options) -const editable = options.editable || true; // set this to false to create a run only application - no editor/no console +const editable = options.editable || false; // set this to false to create a run only application - no editor/no console const allowLoadSave = options.allowLoadSave || false; // set to true to allow import and export of flow file const showMap = options.showMap || false; // set to true to add Worldmap to the menu const kioskMode = options.kioskMode || false; // set to true to start in kiosk mode -const addNodes = options.addNodes || true; // set to false to block installing extra nodes +const addNodes = options.addNodes || false; // set to false to block installing extra nodes let flowfile = options.flowFile || 'electronflow.json'; // default Flows file name - loaded at start const urldash = "/ui/#/0"; // url for the dashboard page @@ -35,6 +35,8 @@ const http = require('http'); const express = require("express"); const electron = require('electron'); const isDev = require('electron-is-dev'); +const Store = require('electron-store'); +const store = new Store(); const {app, Menu, TouchBar} = electron; const ipc = electron.ipcMain; @@ -55,7 +57,7 @@ var server = http.createServer(red_app); // Setup user directory and flowfile (if editable) var userdir = __dirname; -if (editable) { +if (editable === true) { // if running as raw electron use the current directory (mainly for dev) if (process.argv[1] && (process.argv[1] === "main.js")) { userdir = __dirname; @@ -66,6 +68,7 @@ if (editable) { else { flowfile = path.join(process.cwd(),process.argv[process.argv.length-1]); } + store.set("electronFlow",flowfile) } } else { // We set the user directory to be in the users home directory... @@ -80,6 +83,7 @@ if (editable) { else { flowfile = path.join(process.cwd(),process.argv[process.argv.length-1]); } + store.set("electronFlow",flowfile) } else { if (!fs.existsSync(userdir+"/"+flowfile)) { @@ -89,13 +93,18 @@ if (editable) { if (fs.existsSync(__dirname+"/"+credFile) && !fs.existsSync(userdir+"/"+credFile)) { fs.writeFileSync(userdir+"/"+credFile, fs.readFileSync(__dirname+"/"+credFile)); } + flowfile = path.join(userdir,flowfile); } } } +else { store.clear(); } + +flowfile = store.get('electronFlow',flowfile); + // console.log("CWD",process.cwd()); // console.log("DIR",__dirname); // console.log("UserDir :",userdir); -// console.log("FlowFile :",flowfile); +console.log("FlowFile :",flowfile); // console.log("PORT",listenPort); // Keep a global reference of the window objects, if you don't, the window will @@ -168,7 +177,7 @@ red_app.use(settings.httpNodeRoot,RED.httpNode); var template = [{ label: "View", submenu: [ - { label: 'Import Flow', + { label: 'Open Flow', accelerator: "Shift+CmdOrCtrl+O", click() { openFlow(); } }, @@ -247,13 +256,12 @@ if (isDev) { }) } -let fileName = path.join(userdir,flowfile); function saveFlow() { const file_path = dialog.showSaveDialogSync({ title:"Save Flow As", filters:[{ name:'JSON', extensions:['json'] }], properties: ["showHiddenFiles"], - defaultPath: fileName, + defaultPath: flowfile, buttonLabel: "Save Flow" }); if (file_path) { @@ -261,11 +269,14 @@ function saveFlow() { fs.writeFile(file_path, flo, function(err) { if (err) { dialog.showErrorBox('Error', err); } else { + store.set("electronFlow",file_path); dialog.showMessageBoxSync({ icon: nrIcon, message:"Flow file saved as\n\n"+file_path, buttons: ["OK"] }); + app.relaunch(); + app.exit(); } }); } @@ -276,7 +287,7 @@ function openFlow() { title:"Load Flow File", filters:[{ name:'JSON', extensions:['json'] }], properties: ["openFile","showHiddenFiles"], - defaultPath: fileName, + defaultPath: flowfile, buttonLabel: "Load Flow" }); if (fileNames && fileNames.length > 0) { @@ -284,8 +295,10 @@ function openFlow() { try { var flo = JSON.parse(data); if (Array.isArray(flo) && (flo.length > 0)) { - fileName = fileNames[0]; - RED.nodes.setFlows(flo,"full"); + //RED.nodes.setFlows(flo,"full"); + store.set("electronFlow",fileNames[0]); + app.relaunch(); + app.exit(); } else { dialog.showErrorBox("Error", "Failed to parse flow file.\n\n "+fileNames[0]+".\n\nAre you sure it's a flow file ?"); @@ -296,7 +309,6 @@ function openFlow() { } }); } - } // Create the console log window @@ -454,14 +466,12 @@ function createTray() { tray.setContextMenu(contextMenu); } - // Called when Electron has finished initialization and is ready to create browser windows. app.on('ready', () => { createTray() createWindow() }) - // Quit when all windows are closed. app.on('window-all-closed', function () { // On OS X it is common for applications and their menu bar @@ -482,7 +492,7 @@ if (process.platform === 'darwin') { app.setAboutPanelOptions({ applicationVersion: pkg.version, version: pkg.dependencies["node-red"], - copyright: "Copyright © 2019, "+pkg.author.name, + copyright: "Copyright © 2020 "+pkg.author.name, credits: "Node-RED and other components are copyright the JS Foundation and other contributors." }); // Don't show in the dock bar if you like diff --git a/package-template.json b/package-template.json index 87bf763..ef9c260 100644 --- a/package-template.json +++ b/package-template.json @@ -4,7 +4,7 @@ "description": "Electron Node-RED application starter kit for development", "main": "main.js", "NRelectron": { - "productName": "Node-RED Electron", + "productName": "My Node-RED Electron App", "editable": true, "allowLoadSave": false, "showMap": false, @@ -27,6 +27,7 @@ }, "dependencies": { "electron-is-dev": "^1.2.0", + "electron-store": "^6.0.0", "express": "^4.17.1", "node-red": "1.1.3" }, @@ -36,8 +37,8 @@ "node-red" ], "author": { - "name": "Dave Conway-Jones", - "email": "dceejay@gmail.com" + "name": "Your Name", + "email": "yourname@example.com" }, "license": "Apache-2.0", "bugs": { @@ -49,8 +50,8 @@ "electron-builder": "^22.8.0" }, "build": { - "appId": "com.electron.node-red", - "productName": "Node-RED Electron", + "appId": "com.electron.node-red-app", + "productName": "My Node-RED Electron App", "copyright": "Copyright © 2018,2020 D.Conway-Jones", "extraResources": [ { diff --git a/package.json b/package.json index cf22c5c..c6bdb05 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ }, "dependencies": { "electron-is-dev": "^1.2.0", + "electron-store": "^6.0.0", "express": "^4.17.1", "node-red": "1.1.3", "node-red-contrib-play-audio": "*", From 0d5a4f3bced23fe62c833bc7820e57349bae4b52 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Tue, 6 Oct 2020 00:27:22 +0100 Subject: [PATCH 090/127] fix wrinkle with flowfile name --- electronflow.json | 615 +------------------------------------- example/electronflow.json | 2 +- main.js | 1 + 3 files changed, 3 insertions(+), 615 deletions(-) diff --git a/electronflow.json b/electronflow.json index 5df9341..4e8f2fa 100644 --- a/electronflow.json +++ b/electronflow.json @@ -1,614 +1 @@ -[ - { - "id": "41f61d2.fbe09e4", - "type": "tab", - "label": "Flow 1" - }, - { - "id": "52a903f3.ad56fc", - "type": "ui_tab", - "z": "41f61d2.fbe09e4", - "name": "My Simple Dashboard", - "icon": "dashboard", - "disabled": false, - "hidden": false - }, - { - "id": "30e652f.d9de3ae", - "type": "ui_group", - "z": "41f61d2.fbe09e4", - "name": "Panel 2", - "tab": "52a903f3.ad56fc", - "order": 4, - "disp": true, - "width": "6" - }, - { - "id": "a8ecb9.c60f4348", - "type": "ui_group", - "z": "41f61d2.fbe09e4", - "name": "Introduction", - "tab": "52a903f3.ad56fc", - "order": 1, - "disp": false, - "width": "3" - }, - { - "id": "bbdf3e02.e8fee", - "type": "ui_group", - "z": "41f61d2.fbe09e4", - "name": "Panel 1", - "tab": "52a903f3.ad56fc", - "order": 2, - "disp": true, - "width": "6" - }, - { - "id": "d9ba26fa.6d2b18", - "type": "ui_base", - "theme": { - "name": "theme-light", - "lightTheme": { - "default": "#0094CE", - "baseColor": "#8e0d17", - "baseFont": "Copperplate,Copperplate Gothic Light,fantasy", - "edited": true, - "reset": false - }, - "darkTheme": { - "default": "#097479", - "baseColor": "#097479", - "baseFont": "Helvetica Neue", - "edited": false - }, - "customTheme": { - "name": "Untitled Theme 1", - "default": "#4B7930", - "baseColor": "#4B7930", - "baseFont": "Helvetica Neue" - }, - "themeState": { - "base-color": { - "default": "#0094CE", - "value": "#d80005", - "edited": true - }, - "page-titlebar-backgroundColor": { - "value": "#8e0d17", - "edited": false - }, - "page-backgroundColor": { - "value": "#fafafa", - "edited": false - }, - "page-sidebar-backgroundColor": { - "value": "#333333", - "edited": false - }, - "group-textColor": { - "value": "#d41322", - "edited": false - }, - "group-borderColor": { - "value": "#ffffff", - "edited": false - }, - "group-backgroundColor": { - "value": "#ffffff", - "edited": false - }, - "widget-textColor": { - "value": "#111111", - "edited": false - }, - "widget-backgroundColor": { - "value": "#8e0d17", - "edited": false - }, - "widget-borderColor": { - "value": "#ffffff", - "edited": false - }, - "base-font": { - "value": "Copperplate,Copperplate Gothic Light,fantasy" - } - }, - "angularTheme": { - "primary": "indigo", - "accents": "blue", - "warn": "red", - "background": "grey" - } - }, - "site": { - "name": "Node-RED Dashboard", - "hideToolbar": "false", - "allowSwipe": "false", - "dateFormat": "DD/MM/YYYY", - "sizes": { - "sx": 48, - "sy": 48, - "gx": 6, - "gy": 6, - "cx": 6, - "cy": 6, - "px": 0, - "py": 0 - } - } - }, - { - "id": "87356b62.92e3d8", - "type": "ui_group", - "z": "", - "name": "Text to Speech", - "tab": "52a903f3.ad56fc", - "order": 5, - "disp": true, - "width": "6", - "collapse": false - }, - { - "id": "c75ad4f0.0cede8", - "type": "ui_group", - "z": "", - "name": "Map", - "tab": "52a903f3.ad56fc", - "order": 3, - "disp": true, - "width": "6", - "collapse": true - }, - { - "id": "189cf871.681118", - "type": "ui_template", - "z": "41f61d2.fbe09e4", - "group": "a8ecb9.c60f4348", - "name": "Welcome", - "order": 1, - "width": "3", - "height": "9", - "format": "

Welcome to the Node-RED Dashboard

\n

On the right you will see a graph and a chart logging data from the sliders underneath.

", - "storeOutMessages": false, - "fwdInMessages": false, - "resendOnRefresh": false, - "templateScope": "local", - "x": 93, - "y": 45, - "wires": [ - [] - ] - }, - { - "id": "9f19ee5c.beaef", - "type": "ui_chart", - "z": "41f61d2.fbe09e4", - "name": "", - "group": "bbdf3e02.e8fee", - "order": 1, - "width": "0", - "height": "0", - "label": "", - "chartType": "line", - "xformat": "HH:mm:ss", - "interpolate": "basis", - "nodata": "No Data", - "dot": false, - "ymin": "0", - "ymax": "100", - "removeOlder": 1, - "removeOlderPoints": "", - "removeOlderUnit": "60", - "cutout": "", - "colors": [ - "#1f77b4", - "#aec7e8", - "#ff7f0e", - "#2ca02c", - "#98df8a", - "#d62728", - "#ff9896", - "#9467bd", - "#c5b0d5" - ], - "outputs": 2, - "x": 270, - "y": 200, - "wires": [ - [], - [] - ] - }, - { - "id": "799d9318.fd385c", - "type": "ui_gauge", - "z": "41f61d2.fbe09e4", - "name": "", - "group": "30e652f.d9de3ae", - "order": 2, - "width": "", - "height": "", - "gtype": "gage", - "title": "Title", - "label": "gauge", - "format": "{{value}}", - "min": 0, - "max": "100", - "colors": [ - "#00b500", - "#e6e600", - "#ca3838" - ], - "x": 270, - "y": 140, - "wires": [] - }, - { - "id": "6f18b200.666a4", - "type": "ui_button", - "z": "41f61d2.fbe09e4", - "name": "", - "group": "87356b62.92e3d8", - "order": 2, - "width": 0, - "height": 0, - "passthru": false, - "label": "press to talk", - "tooltip": "", - "color": "", - "bgcolor": "", - "icon": "fa-volume-up", - "payload": "Hello to Jason Isaacs", - "payloadType": "str", - "topic": "", - "x": 110, - "y": 300, - "wires": [ - [ - "f897d7c2.467a58" - ] - ] - }, - { - "id": "f897d7c2.467a58", - "type": "ui_audio", - "z": "41f61d2.fbe09e4", - "name": "", - "group": "30e652f.d9de3ae", - "voice": "0", - "x": 300, - "y": 300, - "wires": [] - }, - { - "id": "da0f7e67.0d38a", - "type": "ui_slider", - "z": "41f61d2.fbe09e4", - "name": "", - "label": "slider", - "group": "30e652f.d9de3ae", - "order": 4, - "width": 0, - "height": 0, - "passthru": true, - "topic": "", - "min": 0, - "max": "100", - "step": 1, - "x": 90, - "y": 140, - "wires": [ - [ - "799d9318.fd385c" - ] - ] - }, - { - "id": "eabf2bd7.f4e0c8", - "type": "ui_slider", - "z": "41f61d2.fbe09e4", - "name": "", - "label": "slider", - "group": "bbdf3e02.e8fee", - "order": 4, - "width": 0, - "height": 0, - "passthru": true, - "topic": "", - "min": 0, - "max": "100", - "step": 1, - "x": 90, - "y": 200, - "wires": [ - [ - "9f19ee5c.beaef" - ] - ] - }, - { - "id": "45508d88.744a54", - "type": "function", - "z": "41f61d2.fbe09e4", - "name": "", - "func": "// create random position\nvar lat = 51 + Math.random() * 0.2;\nvar lon = -1.45 + Math.random() * 0.2;\nmsg.payload={lat:lat, lon:lon, name:\"Jason\", icon:\"male\", url:\"IBM link\"};\nreturn msg;", - "outputs": 1, - "noerr": 0, - "x": 270, - "y": 480, - "wires": [ - [ - "576d953b.3e57dc", - "f9ae061e.76b048" - ] - ] - }, - { - "id": "6ca8cfc2.e0bce", - "type": "ui_button", - "z": "41f61d2.fbe09e4", - "name": "", - "group": "c75ad4f0.0cede8", - "order": 2, - "width": 0, - "height": 0, - "passthru": false, - "label": "Where's Jason", - "color": "", - "bgcolor": "#910000", - "icon": "fa-male", - "payload": "", - "payloadType": "str", - "topic": "", - "x": 120, - "y": 480, - "wires": [ - [ - "45508d88.744a54" - ] - ] - }, - { - "id": "576d953b.3e57dc", - "type": "worldmap-tracks", - "z": "41f61d2.fbe09e4", - "name": "", - "depth": 20, - "layer": "combined", - "x": 450, - "y": 420, - "wires": [ - [ - "f9ae061e.76b048" - ] - ] - }, - { - "id": "814a9c85.e6fb8", - "type": "ui_button", - "z": "41f61d2.fbe09e4", - "name": "", - "group": "c75ad4f0.0cede8", - "order": 3, - "width": 0, - "height": 0, - "passthru": false, - "label": "Delete Jason", - "tooltip": "", - "color": "", - "bgcolor": "#910000", - "icon": "fa-male", - "payload": "", - "payloadType": "str", - "topic": "", - "x": 110, - "y": 420, - "wires": [ - [ - "b9d3d78b.360d38" - ] - ] - }, - { - "id": "b9d3d78b.360d38", - "type": "function", - "z": "41f61d2.fbe09e4", - "name": "", - "func": "// create random position\nmsg.payload={name:\"Jason\", deleted:true};\nreturn msg;", - "outputs": 1, - "noerr": 0, - "x": 270, - "y": 420, - "wires": [ - [ - "576d953b.3e57dc" - ] - ] - }, - { - "id": "36c05d33.b783b2", - "type": "ui_button", - "z": "41f61d2.fbe09e4", - "name": "", - "group": "c75ad4f0.0cede8", - "order": 4, - "width": 0, - "height": 0, - "passthru": false, - "label": "Delete Track", - "tooltip": "", - "color": "", - "bgcolor": "#910000", - "icon": "fa-male", - "payload": "", - "payloadType": "str", - "topic": "", - "x": 110, - "y": 360, - "wires": [ - [ - "108b8604.f5bb8a" - ] - ] - }, - { - "id": "108b8604.f5bb8a", - "type": "function", - "z": "41f61d2.fbe09e4", - "name": "", - "func": "// create random position\nmsg.payload={name:\"Jason_\", deleted:true};\nreturn msg;", - "outputs": 1, - "noerr": 0, - "x": 270, - "y": 360, - "wires": [ - [ - "f9ae061e.76b048" - ] - ] - }, - { - "id": "e90f82d8.46a78", - "type": "ui_ui_control", - "z": "41f61d2.fbe09e4", - "name": "", - "events": "all", - "x": 360, - "y": 560, - "wires": [ - [] - ] - }, - { - "id": "c920e625.e95578", - "type": "ui_button", - "z": "41f61d2.fbe09e4", - "name": "", - "group": "a8ecb9.c60f4348", - "order": 2, - "width": 0, - "height": 0, - "passthru": false, - "label": "Close Map", - "tooltip": "", - "color": "", - "bgcolor": "", - "icon": "", - "payload": "{\"group\":{\"close\":[\"My_Simple_Dashboard_Map\"]}}", - "payloadType": "json", - "topic": "", - "x": 150, - "y": 560, - "wires": [ - [ - "e90f82d8.46a78" - ] - ] - }, - { - "id": "48892dbf.1d3e64", - "type": "ui_button", - "z": "41f61d2.fbe09e4", - "name": "", - "group": "a8ecb9.c60f4348", - "order": 5, - "width": 0, - "height": 0, - "passthru": false, - "label": "Show Map", - "tooltip": "", - "color": "", - "bgcolor": "", - "icon": "", - "payload": "{\"group\":{\"show\":[\"My_Simple_Dashboard_Map\"]}}", - "payloadType": "json", - "topic": "", - "x": 150, - "y": 680, - "wires": [ - [ - "e90f82d8.46a78" - ] - ] - }, - { - "id": "e44dda45.d85038", - "type": "ui_button", - "z": "41f61d2.fbe09e4", - "name": "", - "group": "a8ecb9.c60f4348", - "order": 4, - "width": 0, - "height": 0, - "passthru": false, - "label": "Hide Map", - "tooltip": "", - "color": "", - "bgcolor": "", - "icon": "", - "payload": "{\"group\":{\"hide\":[\"My_Simple_Dashboard_Map\"]}}", - "payloadType": "json", - "topic": "", - "x": 140, - "y": 640, - "wires": [ - [ - "e90f82d8.46a78" - ] - ] - }, - { - "id": "1ffc9864.56de48", - "type": "ui_button", - "z": "41f61d2.fbe09e4", - "name": "", - "group": "a8ecb9.c60f4348", - "order": 3, - "width": 0, - "height": 0, - "passthru": false, - "label": "Open Map", - "tooltip": "", - "color": "", - "bgcolor": "", - "icon": "", - "payload": "{\"group\":{\"open\":[\"My_Simple_Dashboard_Map\"]}}", - "payloadType": "json", - "topic": "", - "x": 150, - "y": 600, - "wires": [ - [ - "e90f82d8.46a78" - ] - ] - }, - { - "id": "f9ae061e.76b048", - "type": "ui_worldmap", - "z": "41f61d2.fbe09e4", - "group": "c75ad4f0.0cede8", - "order": 1, - "width": 0, - "height": 0, - "name": "", - "lat": "", - "lon": "", - "zoom": "", - "layer": "", - "cluster": "", - "maxage": "", - "usermenu": "hide", - "layers": "hide", - "panit": "false", - "panlock": "false", - "zoomlock": "false", - "hiderightclick": "true", - "coords": "none", - "showgrid": "false", - "path": "/worldmap", - "x": 480, - "y": 480, - "wires": [] - } -] \ No newline at end of file +[{"id":"41f61d2.fbe09e4","type":"tab","label":"Flow 1"},{"id":"52a903f3.ad56fc","type":"ui_tab","z":"41f61d2.fbe09e4","name":"My Simple Dashboard","icon":"dashboard","disabled":false,"hidden":false},{"id":"30e652f.d9de3ae","type":"ui_group","z":"41f61d2.fbe09e4","name":"Panel 2","tab":"52a903f3.ad56fc","order":4,"disp":true,"width":"6"},{"id":"a8ecb9.c60f4348","type":"ui_group","z":"41f61d2.fbe09e4","name":"Introduction","tab":"52a903f3.ad56fc","order":1,"disp":false,"width":"3"},{"id":"bbdf3e02.e8fee","type":"ui_group","z":"41f61d2.fbe09e4","name":"Panel 1","tab":"52a903f3.ad56fc","order":2,"disp":true,"width":"6"},{"id":"d9ba26fa.6d2b18","type":"ui_base","theme":{"name":"theme-light","lightTheme":{"default":"#0094CE","baseColor":"#8e0d17","baseFont":"Copperplate,Copperplate Gothic Light,fantasy","edited":true,"reset":false},"darkTheme":{"default":"#097479","baseColor":"#097479","baseFont":"Helvetica Neue","edited":false},"customTheme":{"name":"Untitled Theme 1","default":"#4B7930","baseColor":"#4B7930","baseFont":"Helvetica Neue"},"themeState":{"base-color":{"default":"#0094CE","value":"#d80005","edited":true},"page-titlebar-backgroundColor":{"value":"#8e0d17","edited":false},"page-backgroundColor":{"value":"#fafafa","edited":false},"page-sidebar-backgroundColor":{"value":"#333333","edited":false},"group-textColor":{"value":"#d41322","edited":false},"group-borderColor":{"value":"#ffffff","edited":false},"group-backgroundColor":{"value":"#ffffff","edited":false},"widget-textColor":{"value":"#111111","edited":false},"widget-backgroundColor":{"value":"#8e0d17","edited":false},"widget-borderColor":{"value":"#ffffff","edited":false},"base-font":{"value":"Copperplate,Copperplate Gothic Light,fantasy"}},"angularTheme":{"primary":"indigo","accents":"blue","warn":"red","background":"grey"}},"site":{"name":"Node-RED Dashboard","hideToolbar":"false","allowSwipe":"false","dateFormat":"DD/MM/YYYY","sizes":{"sx":48,"sy":48,"gx":6,"gy":6,"cx":6,"cy":6,"px":0,"py":0}}},{"id":"87356b62.92e3d8","type":"ui_group","z":"","name":"Text to Speech","tab":"52a903f3.ad56fc","order":5,"disp":true,"width":"6","collapse":false},{"id":"c75ad4f0.0cede8","type":"ui_group","z":"","name":"Map","tab":"52a903f3.ad56fc","order":3,"disp":true,"width":"6","collapse":true},{"id":"189cf871.681118","type":"ui_template","z":"41f61d2.fbe09e4","group":"a8ecb9.c60f4348","name":"Welcome","order":1,"width":"3","height":"9","format":"

Welcome to the Node-RED Dashboard

\n

On the right you will see a graph and a chart logging data from the sliders underneath.

","storeOutMessages":false,"fwdInMessages":false,"x":93,"y":45,"wires":[[]]},{"id":"9f19ee5c.beaef","type":"ui_chart","z":"41f61d2.fbe09e4","name":"","group":"bbdf3e02.e8fee","order":1,"width":"0","height":"0","label":"","chartType":"line","xformat":"HH:mm:ss","interpolate":"basis","nodata":"No Data","dot":false,"ymin":"0","ymax":"100","removeOlder":1,"removeOlderPoints":"","removeOlderUnit":"60","cutout":"","colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"outputs":2,"x":270,"y":200,"wires":[[],[]]},{"id":"799d9318.fd385c","type":"ui_gauge","z":"41f61d2.fbe09e4","name":"","group":"30e652f.d9de3ae","order":2,"width":"","height":"","gtype":"gage","title":"Title","label":"gauge","format":"{{value}}","min":0,"max":"100","colors":["#00b500","#e6e600","#ca3838"],"x":270,"y":140,"wires":[]},{"id":"6f18b200.666a4","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"87356b62.92e3d8","order":2,"width":0,"height":0,"passthru":false,"label":"press to talk","tooltip":"","color":"","bgcolor":"","icon":"fa-volume-up","payload":"Hello to Jason Isaacs","payloadType":"str","topic":"","x":110,"y":300,"wires":[["f897d7c2.467a58"]]},{"id":"f897d7c2.467a58","type":"ui_audio","z":"41f61d2.fbe09e4","name":"","group":"30e652f.d9de3ae","voice":"0","x":300,"y":300,"wires":[]},{"id":"da0f7e67.0d38a","type":"ui_slider","z":"41f61d2.fbe09e4","name":"","label":"slider","group":"30e652f.d9de3ae","order":4,"width":0,"height":0,"passthru":true,"topic":"","min":0,"max":"100","step":1,"x":90,"y":140,"wires":[["799d9318.fd385c"]]},{"id":"eabf2bd7.f4e0c8","type":"ui_slider","z":"41f61d2.fbe09e4","name":"","label":"slider","group":"bbdf3e02.e8fee","order":4,"width":0,"height":0,"passthru":true,"topic":"","min":0,"max":"100","step":1,"x":90,"y":200,"wires":[["9f19ee5c.beaef"]]},{"id":"45508d88.744a54","type":"function","z":"41f61d2.fbe09e4","name":"","func":"// create random position\nvar lat = 51 + Math.random() * 0.2;\nvar lon = -1.45 + Math.random() * 0.2;\nmsg.payload={lat:lat, lon:lon, name:\"Jason\", icon:\"male\", url:\"IBM link\"};\nreturn msg;","outputs":1,"noerr":0,"x":270,"y":480,"wires":[["576d953b.3e57dc","1bc50b6.cfc1cf5"]]},{"id":"6ca8cfc2.e0bce","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"c75ad4f0.0cede8","order":2,"width":0,"height":0,"passthru":false,"label":"Where's Jason","color":"","bgcolor":"#910000","icon":"fa-male","payload":"","payloadType":"str","topic":"","x":120,"y":480,"wires":[["45508d88.744a54"]]},{"id":"576d953b.3e57dc","type":"worldmap-tracks","z":"41f61d2.fbe09e4","name":"","depth":20,"layer":"combined","x":450,"y":420,"wires":[["1bc50b6.cfc1cf5"]]},{"id":"814a9c85.e6fb8","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"c75ad4f0.0cede8","order":3,"width":0,"height":0,"passthru":false,"label":"Remove Jason","tooltip":"","color":"","bgcolor":"#910000","icon":"fa-male","payload":"","payloadType":"str","topic":"","x":110,"y":420,"wires":[["b9d3d78b.360d38"]]},{"id":"b9d3d78b.360d38","type":"function","z":"41f61d2.fbe09e4","name":"","func":"// create random position\nmsg.payload={name:\"Jason\", deleted:true};\nreturn msg;","outputs":1,"noerr":0,"x":270,"y":420,"wires":[["576d953b.3e57dc"]]},{"id":"36c05d33.b783b2","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"c75ad4f0.0cede8","order":4,"width":0,"height":0,"passthru":false,"label":"Delete Track","tooltip":"","color":"","bgcolor":"#910000","icon":"fa-male","payload":"","payloadType":"str","topic":"","x":110,"y":360,"wires":[["108b8604.f5bb8a"]]},{"id":"108b8604.f5bb8a","type":"function","z":"41f61d2.fbe09e4","name":"","func":"// create random position\nmsg.payload={name:\"Jason_\", deleted:true};\nreturn msg;","outputs":1,"noerr":0,"x":270,"y":360,"wires":[["1bc50b6.cfc1cf5"]]},{"id":"e90f82d8.46a78","type":"ui_ui_control","z":"41f61d2.fbe09e4","name":"","events":"all","x":320,"y":560,"wires":[[]]},{"id":"c920e625.e95578","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"a8ecb9.c60f4348","order":2,"width":0,"height":0,"passthru":false,"label":"Close Map","tooltip":"","color":"","bgcolor":"","icon":"","payload":"{\"group\":{\"close\":[\"My_Simple_Dashboard_Map\"]}}","payloadType":"json","topic":"","x":130,"y":560,"wires":[["e90f82d8.46a78"]]},{"id":"48892dbf.1d3e64","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"a8ecb9.c60f4348","order":5,"width":0,"height":0,"passthru":false,"label":"Show Map","tooltip":"","color":"","bgcolor":"","icon":"","payload":"{\"group\":{\"show\":[\"My_Simple_Dashboard_Map\"]}}","payloadType":"json","topic":"","x":130,"y":640,"wires":[["e90f82d8.46a78"]]},{"id":"e44dda45.d85038","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"a8ecb9.c60f4348","order":4,"width":0,"height":0,"passthru":false,"label":"Hide Map","tooltip":"","color":"","bgcolor":"","icon":"","payload":"{\"group\":{\"hide\":[\"My_Simple_Dashboard_Map\"]}}","payloadType":"json","topic":"","x":120,"y":680,"wires":[["e90f82d8.46a78"]]},{"id":"1ffc9864.56de48","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"a8ecb9.c60f4348","order":3,"width":0,"height":0,"passthru":false,"label":"Open Map","tooltip":"","color":"","bgcolor":"","icon":"","payload":"{\"group\":{\"open\":[\"My_Simple_Dashboard_Map\"]}}","payloadType":"json","topic":"","x":130,"y":600,"wires":[["e90f82d8.46a78"]]},{"id":"1bc50b6.cfc1cf5","type":"ui_worldmap","z":"41f61d2.fbe09e4","group":"c75ad4f0.0cede8","order":1,"width":0,"height":0,"name":"","lat":"","lon":"","zoom":"","layer":"","cluster":"","maxage":"","usermenu":"hide","layers":"hide","panit":"false","panlock":"false","zoomlock":"false","hiderightclick":"true","coords":"none","showgrid":"false","path":"/worldmap","x":500,"y":480,"wires":[]}] \ No newline at end of file diff --git a/example/electronflow.json b/example/electronflow.json index d8fbe3c..4e8f2fa 100644 --- a/example/electronflow.json +++ b/example/electronflow.json @@ -1 +1 @@ -[{"id":"41f61d2.fbe09e4","type":"tab","label":"Flow 1"},{"id":"52a903f3.ad56fc","type":"ui_tab","z":"41f61d2.fbe09e4","name":"Home","icon":"dashboard"},{"id":"30e652f.d9de3ae","type":"ui_group","z":"41f61d2.fbe09e4","name":"Panel 2","tab":"52a903f3.ad56fc","order":5,"disp":true,"width":"6"},{"id":"a8ecb9.c60f4348","type":"ui_group","z":"41f61d2.fbe09e4","name":"Introduction","tab":"52a903f3.ad56fc","order":1,"disp":false,"width":"4","collapse":false},{"id":"bbdf3e02.e8fee","type":"ui_group","z":"41f61d2.fbe09e4","name":"Panel 1","tab":"52a903f3.ad56fc","order":2,"disp":true,"width":"6"},{"id":"d9ba26fa.6d2b18","type":"ui_base","theme":{"name":"theme-light","lightTheme":{"default":"#0094CE","baseColor":"#8e0d17","baseFont":"Gill Sans,Geneva,sans-serif","edited":true,"reset":false},"darkTheme":{"default":"#097479","baseColor":"#097479","baseFont":"Helvetica Neue","edited":false},"customTheme":{"name":"Untitled Theme 1","default":"#4B7930","baseColor":"#4B7930","baseFont":"Helvetica Neue"},"themeState":{"base-color":{"default":"#0094CE","value":"#d80005","edited":true},"page-titlebar-backgroundColor":{"value":"#8e0d17","edited":false},"page-backgroundColor":{"value":"#fafafa","edited":false},"page-sidebar-backgroundColor":{"value":"#000000","edited":false},"group-textColor":{"value":"#d41322","edited":false},"group-borderColor":{"value":"#ffffff","edited":false},"group-backgroundColor":{"value":"#ffffff","edited":false},"widget-textColor":{"value":"#111111","edited":false},"widget-backgroundColor":{"value":"#8e0d17","edited":false},"widget-borderColor":{"value":"#ffffff","edited":false},"base-font":{"value":"Gill Sans,Geneva,sans-serif"}}},"site":{"name":"Node-RED Dashboard","hideToolbar":"false","allowSwipe":"false","dateFormat":"DD/MM/YYYY","sizes":{"sx":48,"sy":48,"gx":6,"gy":6,"cx":6,"cy":6,"px":0,"py":0}}},{"id":"87356b62.92e3d8","type":"ui_group","z":"","name":"Text to Speech","tab":"52a903f3.ad56fc","order":3,"disp":true,"width":"6"},{"id":"c75ad4f0.0cede8","type":"ui_group","z":"","name":"Map","tab":"52a903f3.ad56fc","order":4,"disp":true,"width":"6"},{"id":"189cf871.681118","type":"ui_template","z":"41f61d2.fbe09e4","group":"a8ecb9.c60f4348","name":"Welcome","order":1,"width":"4","height":"9","format":"

Welcome to the Node-RED Dashboard

\n

On the right you will see a graph and a gauge logging data from the sliders underneath.

\n

There is also an example of embedding a small map.

","storeOutMessages":false,"fwdInMessages":false,"templateScope":"local","x":100,"y":60,"wires":[[]]},{"id":"9f19ee5c.beaef","type":"ui_chart","z":"41f61d2.fbe09e4","name":"","group":"bbdf3e02.e8fee","order":1,"width":"0","height":"0","label":"","chartType":"line","xformat":"HH:mm:ss","interpolate":"basis","nodata":"No Data","dot":false,"ymin":"0","ymax":"100","removeOlder":1,"removeOlderPoints":"","removeOlderUnit":"60","cutout":"","colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"outputs":2,"x":270,"y":200,"wires":[[],[]]},{"id":"799d9318.fd385c","type":"ui_gauge","z":"41f61d2.fbe09e4","name":"","group":"30e652f.d9de3ae","order":2,"width":"","height":"","gtype":"gage","title":"Title","label":"gauge","format":"{{value}}","min":0,"max":"100","colors":["#00b500","#e6e600","#ca3838"],"x":270,"y":140,"wires":[]},{"id":"6f18b200.666a4","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"87356b62.92e3d8","order":2,"width":0,"height":0,"label":"press to talk","color":"","bgcolor":"","icon":"fa-volume-up","payload":"Hello to Jason Isaacs","payloadType":"str","topic":"","x":110,"y":320,"wires":[["f897d7c2.467a58"]]},{"id":"f897d7c2.467a58","type":"ui_audio","z":"41f61d2.fbe09e4","name":"","group":"30e652f.d9de3ae","voice":"0","x":300,"y":320,"wires":[]},{"id":"da0f7e67.0d38a","type":"ui_slider","z":"41f61d2.fbe09e4","name":"","label":"slider","group":"30e652f.d9de3ae","order":4,"width":0,"height":0,"passthru":true,"topic":"","min":0,"max":"100","step":1,"x":90,"y":140,"wires":[["799d9318.fd385c","219da65f.e0b0da"]]},{"id":"eabf2bd7.f4e0c8","type":"ui_slider","z":"41f61d2.fbe09e4","name":"","label":"slider","group":"bbdf3e02.e8fee","order":4,"width":0,"height":0,"passthru":true,"topic":"","min":0,"max":"100","step":1,"x":130,"y":200,"wires":[["9f19ee5c.beaef","ccee40e3.c1618"]]},{"id":"45508d88.744a54","type":"function","z":"41f61d2.fbe09e4","name":"","func":"// create random position\nvar lat = 51 + Math.random() * 0.2;\nvar lon = -1.45 + Math.random() * 0.2;\nmsg.payload={lat:lat, lon:lon, name:\"Jason\", icon:\"male\", url:\"IBM link\"};\nreturn msg;","outputs":1,"noerr":0,"x":290,"y":400,"wires":[["f76b15b1.dd27a8"]]},{"id":"6ca8cfc2.e0bce","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"c75ad4f0.0cede8","order":1,"width":0,"height":0,"passthru":false,"label":"Where's Jason ?","color":"","bgcolor":"#910000","icon":"fa-male","payload":"","payloadType":"str","topic":"","x":110,"y":400,"wires":[["45508d88.744a54"]]},{"id":"219da65f.e0b0da","type":"debug","z":"41f61d2.fbe09e4","name":"","active":true,"tosidebar":true,"console":true,"tostatus":false,"complete":"payload","x":300,"y":100,"wires":[]},{"id":"ccee40e3.c1618","type":"debug","z":"41f61d2.fbe09e4","name":"","active":true,"tosidebar":true,"console":true,"tostatus":false,"complete":"payload","targetType":"msg","x":300,"y":260,"wires":[]},{"id":"1c597308.3cfc0d","type":"worldmap in","z":"41f61d2.fbe09e4","name":"worldmap in","path":"","events":"","x":110,"y":480,"wires":[["7d6cb82c.3f3ea8"]]},{"id":"7d6cb82c.3f3ea8","type":"debug","z":"41f61d2.fbe09e4","name":"","active":true,"tosidebar":false,"console":true,"tostatus":false,"complete":"payload","x":350,"y":480,"wires":[]},{"id":"762cecef.af00d4","type":"inject","z":"41f61d2.fbe09e4","name":"","topic":"","payload":"26","payloadType":"num","repeat":"","crontab":"","once":true,"onceDelay":"2","x":90,"y":260,"wires":[["eabf2bd7.f4e0c8"]]},{"id":"f76b15b1.dd27a8","type":"ui_worldmap","z":"41f61d2.fbe09e4","group":"c75ad4f0.0cede8","order":1,"width":"6","height":"7","name":"","lat":"51.17","lon":"-1.4","zoom":"","layer":"","cluster":"","maxage":"","usermenu":"hide","layers":"hide","panit":"false","panlock":"false","zoomlock":"false","hiderightclick":"true","coords":"none","showgrid":"false","path":"/worldmap","x":440,"y":400,"wires":[]}] \ No newline at end of file +[{"id":"41f61d2.fbe09e4","type":"tab","label":"Flow 1"},{"id":"52a903f3.ad56fc","type":"ui_tab","z":"41f61d2.fbe09e4","name":"My Simple Dashboard","icon":"dashboard","disabled":false,"hidden":false},{"id":"30e652f.d9de3ae","type":"ui_group","z":"41f61d2.fbe09e4","name":"Panel 2","tab":"52a903f3.ad56fc","order":4,"disp":true,"width":"6"},{"id":"a8ecb9.c60f4348","type":"ui_group","z":"41f61d2.fbe09e4","name":"Introduction","tab":"52a903f3.ad56fc","order":1,"disp":false,"width":"3"},{"id":"bbdf3e02.e8fee","type":"ui_group","z":"41f61d2.fbe09e4","name":"Panel 1","tab":"52a903f3.ad56fc","order":2,"disp":true,"width":"6"},{"id":"d9ba26fa.6d2b18","type":"ui_base","theme":{"name":"theme-light","lightTheme":{"default":"#0094CE","baseColor":"#8e0d17","baseFont":"Copperplate,Copperplate Gothic Light,fantasy","edited":true,"reset":false},"darkTheme":{"default":"#097479","baseColor":"#097479","baseFont":"Helvetica Neue","edited":false},"customTheme":{"name":"Untitled Theme 1","default":"#4B7930","baseColor":"#4B7930","baseFont":"Helvetica Neue"},"themeState":{"base-color":{"default":"#0094CE","value":"#d80005","edited":true},"page-titlebar-backgroundColor":{"value":"#8e0d17","edited":false},"page-backgroundColor":{"value":"#fafafa","edited":false},"page-sidebar-backgroundColor":{"value":"#333333","edited":false},"group-textColor":{"value":"#d41322","edited":false},"group-borderColor":{"value":"#ffffff","edited":false},"group-backgroundColor":{"value":"#ffffff","edited":false},"widget-textColor":{"value":"#111111","edited":false},"widget-backgroundColor":{"value":"#8e0d17","edited":false},"widget-borderColor":{"value":"#ffffff","edited":false},"base-font":{"value":"Copperplate,Copperplate Gothic Light,fantasy"}},"angularTheme":{"primary":"indigo","accents":"blue","warn":"red","background":"grey"}},"site":{"name":"Node-RED Dashboard","hideToolbar":"false","allowSwipe":"false","dateFormat":"DD/MM/YYYY","sizes":{"sx":48,"sy":48,"gx":6,"gy":6,"cx":6,"cy":6,"px":0,"py":0}}},{"id":"87356b62.92e3d8","type":"ui_group","z":"","name":"Text to Speech","tab":"52a903f3.ad56fc","order":5,"disp":true,"width":"6","collapse":false},{"id":"c75ad4f0.0cede8","type":"ui_group","z":"","name":"Map","tab":"52a903f3.ad56fc","order":3,"disp":true,"width":"6","collapse":true},{"id":"189cf871.681118","type":"ui_template","z":"41f61d2.fbe09e4","group":"a8ecb9.c60f4348","name":"Welcome","order":1,"width":"3","height":"9","format":"

Welcome to the Node-RED Dashboard

\n

On the right you will see a graph and a chart logging data from the sliders underneath.

","storeOutMessages":false,"fwdInMessages":false,"x":93,"y":45,"wires":[[]]},{"id":"9f19ee5c.beaef","type":"ui_chart","z":"41f61d2.fbe09e4","name":"","group":"bbdf3e02.e8fee","order":1,"width":"0","height":"0","label":"","chartType":"line","xformat":"HH:mm:ss","interpolate":"basis","nodata":"No Data","dot":false,"ymin":"0","ymax":"100","removeOlder":1,"removeOlderPoints":"","removeOlderUnit":"60","cutout":"","colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"outputs":2,"x":270,"y":200,"wires":[[],[]]},{"id":"799d9318.fd385c","type":"ui_gauge","z":"41f61d2.fbe09e4","name":"","group":"30e652f.d9de3ae","order":2,"width":"","height":"","gtype":"gage","title":"Title","label":"gauge","format":"{{value}}","min":0,"max":"100","colors":["#00b500","#e6e600","#ca3838"],"x":270,"y":140,"wires":[]},{"id":"6f18b200.666a4","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"87356b62.92e3d8","order":2,"width":0,"height":0,"passthru":false,"label":"press to talk","tooltip":"","color":"","bgcolor":"","icon":"fa-volume-up","payload":"Hello to Jason Isaacs","payloadType":"str","topic":"","x":110,"y":300,"wires":[["f897d7c2.467a58"]]},{"id":"f897d7c2.467a58","type":"ui_audio","z":"41f61d2.fbe09e4","name":"","group":"30e652f.d9de3ae","voice":"0","x":300,"y":300,"wires":[]},{"id":"da0f7e67.0d38a","type":"ui_slider","z":"41f61d2.fbe09e4","name":"","label":"slider","group":"30e652f.d9de3ae","order":4,"width":0,"height":0,"passthru":true,"topic":"","min":0,"max":"100","step":1,"x":90,"y":140,"wires":[["799d9318.fd385c"]]},{"id":"eabf2bd7.f4e0c8","type":"ui_slider","z":"41f61d2.fbe09e4","name":"","label":"slider","group":"bbdf3e02.e8fee","order":4,"width":0,"height":0,"passthru":true,"topic":"","min":0,"max":"100","step":1,"x":90,"y":200,"wires":[["9f19ee5c.beaef"]]},{"id":"45508d88.744a54","type":"function","z":"41f61d2.fbe09e4","name":"","func":"// create random position\nvar lat = 51 + Math.random() * 0.2;\nvar lon = -1.45 + Math.random() * 0.2;\nmsg.payload={lat:lat, lon:lon, name:\"Jason\", icon:\"male\", url:\"IBM link\"};\nreturn msg;","outputs":1,"noerr":0,"x":270,"y":480,"wires":[["576d953b.3e57dc","1bc50b6.cfc1cf5"]]},{"id":"6ca8cfc2.e0bce","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"c75ad4f0.0cede8","order":2,"width":0,"height":0,"passthru":false,"label":"Where's Jason","color":"","bgcolor":"#910000","icon":"fa-male","payload":"","payloadType":"str","topic":"","x":120,"y":480,"wires":[["45508d88.744a54"]]},{"id":"576d953b.3e57dc","type":"worldmap-tracks","z":"41f61d2.fbe09e4","name":"","depth":20,"layer":"combined","x":450,"y":420,"wires":[["1bc50b6.cfc1cf5"]]},{"id":"814a9c85.e6fb8","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"c75ad4f0.0cede8","order":3,"width":0,"height":0,"passthru":false,"label":"Remove Jason","tooltip":"","color":"","bgcolor":"#910000","icon":"fa-male","payload":"","payloadType":"str","topic":"","x":110,"y":420,"wires":[["b9d3d78b.360d38"]]},{"id":"b9d3d78b.360d38","type":"function","z":"41f61d2.fbe09e4","name":"","func":"// create random position\nmsg.payload={name:\"Jason\", deleted:true};\nreturn msg;","outputs":1,"noerr":0,"x":270,"y":420,"wires":[["576d953b.3e57dc"]]},{"id":"36c05d33.b783b2","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"c75ad4f0.0cede8","order":4,"width":0,"height":0,"passthru":false,"label":"Delete Track","tooltip":"","color":"","bgcolor":"#910000","icon":"fa-male","payload":"","payloadType":"str","topic":"","x":110,"y":360,"wires":[["108b8604.f5bb8a"]]},{"id":"108b8604.f5bb8a","type":"function","z":"41f61d2.fbe09e4","name":"","func":"// create random position\nmsg.payload={name:\"Jason_\", deleted:true};\nreturn msg;","outputs":1,"noerr":0,"x":270,"y":360,"wires":[["1bc50b6.cfc1cf5"]]},{"id":"e90f82d8.46a78","type":"ui_ui_control","z":"41f61d2.fbe09e4","name":"","events":"all","x":320,"y":560,"wires":[[]]},{"id":"c920e625.e95578","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"a8ecb9.c60f4348","order":2,"width":0,"height":0,"passthru":false,"label":"Close Map","tooltip":"","color":"","bgcolor":"","icon":"","payload":"{\"group\":{\"close\":[\"My_Simple_Dashboard_Map\"]}}","payloadType":"json","topic":"","x":130,"y":560,"wires":[["e90f82d8.46a78"]]},{"id":"48892dbf.1d3e64","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"a8ecb9.c60f4348","order":5,"width":0,"height":0,"passthru":false,"label":"Show Map","tooltip":"","color":"","bgcolor":"","icon":"","payload":"{\"group\":{\"show\":[\"My_Simple_Dashboard_Map\"]}}","payloadType":"json","topic":"","x":130,"y":640,"wires":[["e90f82d8.46a78"]]},{"id":"e44dda45.d85038","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"a8ecb9.c60f4348","order":4,"width":0,"height":0,"passthru":false,"label":"Hide Map","tooltip":"","color":"","bgcolor":"","icon":"","payload":"{\"group\":{\"hide\":[\"My_Simple_Dashboard_Map\"]}}","payloadType":"json","topic":"","x":120,"y":680,"wires":[["e90f82d8.46a78"]]},{"id":"1ffc9864.56de48","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"a8ecb9.c60f4348","order":3,"width":0,"height":0,"passthru":false,"label":"Open Map","tooltip":"","color":"","bgcolor":"","icon":"","payload":"{\"group\":{\"open\":[\"My_Simple_Dashboard_Map\"]}}","payloadType":"json","topic":"","x":130,"y":600,"wires":[["e90f82d8.46a78"]]},{"id":"1bc50b6.cfc1cf5","type":"ui_worldmap","z":"41f61d2.fbe09e4","group":"c75ad4f0.0cede8","order":1,"width":0,"height":0,"name":"","lat":"","lon":"","zoom":"","layer":"","cluster":"","maxage":"","usermenu":"hide","layers":"hide","panit":"false","panlock":"false","zoomlock":"false","hiderightclick":"true","coords":"none","showgrid":"false","path":"/worldmap","x":500,"y":480,"wires":[]}] \ No newline at end of file diff --git a/main.js b/main.js index a5cb980..345a32e 100755 --- a/main.js +++ b/main.js @@ -70,6 +70,7 @@ if (editable === true) { } store.set("electronFlow",flowfile) } + else { flowfile = path.join(userdir,flowfile); } } else { // We set the user directory to be in the users home directory... userdir = os.homedir() + '/.node-red'; From 28b2322e2b87b132ce3bbe45345955db02295ae5 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Tue, 6 Oct 2020 09:09:52 +0100 Subject: [PATCH 091/127] tweak travis --- .travis.yml | 6 +++--- example/package.json | 2 +- main.js | 1 + package-template.json | 10 ++++++---- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/.travis.yml b/.travis.yml index 8dc0cb9..5727730 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,9 +9,9 @@ matrix: - ELECTRON_CACHE=$HOME/.cache/electron - ELECTRON_BUILDER_CACHE=$HOME/.cache/electron-builder - - os: linux - services: docker - language: generic + # - os: linux + # services: docker + # language: generic cache: directories: diff --git a/example/package.json b/example/package.json index 462e5c4..6af4fab 100644 --- a/example/package.json +++ b/example/package.json @@ -1,7 +1,7 @@ { "name": "electron_node_red", + "version": "1.1.3", "description": "Electron Node-RED application starter kit for development", - "version": "1.0.2", "dependencies": { "node-red-contrib-play-audio": "*", "node-red-contrib-web-worldmap": "*", diff --git a/main.js b/main.js index 345a32e..f630f41 100755 --- a/main.js +++ b/main.js @@ -127,6 +127,7 @@ var settings = { userDir: userdir, flowFile: flowfile, flowFilePretty: true, + autoInstallModules: true, editorTheme: { projects:{ enabled:false }, header: { title: options.productName }, diff --git a/package-template.json b/package-template.json index ef9c260..a58b001 100644 --- a/package-template.json +++ b/package-template.json @@ -46,17 +46,19 @@ }, "homepage": "https://github.com/dceejay/electron-node-red#readme", "devDependencies": { - "electron": "~10.1.1", - "electron-builder": "^22.8.0" + "electron": "~10.1.3", + "electron-builder": "^22.8.1" }, "build": { "appId": "com.electron.node-red-app", "productName": "My Node-RED Electron App", "copyright": "Copyright © 2018,2020 D.Conway-Jones", - "extraResources": [ + "buildDependenciesFromSource": true, + "files": [ + "**/*", { "from": "node_modules/@node-red/nodes/examples", - "to": "app/node_modules/@node-red/nodes/examples" + "to": "node_modules/@node-red/nodes/examples" } ], "mac": { From aeced8b86acd790dcbe33fb108a383e36057e9b4 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Tue, 6 Oct 2020 09:19:22 +0100 Subject: [PATCH 092/127] Update .travis.yml --- .travis.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.travis.yml b/.travis.yml index 5727730..9c3a814 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,17 +1,17 @@ matrix: include: - - os: osx - osx_image: xcode10.2 - language: node_js - node_js: "12" - env: - - ELECTRON_CACHE=$HOME/.cache/electron - - ELECTRON_BUILDER_CACHE=$HOME/.cache/electron-builder + # - os: osx + # osx_image: xcode10.2 + # language: node_js + # node_js: "12" + # env: + # - ELECTRON_CACHE=$HOME/.cache/electron + # - ELECTRON_BUILDER_CACHE=$HOME/.cache/electron-builder - # - os: linux - # services: docker - # language: generic + - os: linux + services: docker + language: generic cache: directories: From 1f8129768ff6eb9f28fd4af266bf71c8f04fe498 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Tue, 6 Oct 2020 10:14:08 +0100 Subject: [PATCH 093/127] Revert Travis - it is what it is --- .travis.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index 9c3a814..8dc0cb9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,13 +1,13 @@ matrix: include: - # - os: osx - # osx_image: xcode10.2 - # language: node_js - # node_js: "12" - # env: - # - ELECTRON_CACHE=$HOME/.cache/electron - # - ELECTRON_BUILDER_CACHE=$HOME/.cache/electron-builder + - os: osx + osx_image: xcode10.2 + language: node_js + node_js: "12" + env: + - ELECTRON_CACHE=$HOME/.cache/electron + - ELECTRON_BUILDER_CACHE=$HOME/.cache/electron-builder - os: linux services: docker From 0be25a09bc28e511b3046c96a8d6c838684e944d Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Tue, 6 Oct 2020 11:49:19 +0100 Subject: [PATCH 094/127] Tidy flow --- electronflow.json | 616 +++++++++++++++++++++++++++++++++++++- example/electronflow.json | 616 +++++++++++++++++++++++++++++++++++++- main.js | 1 + 3 files changed, 1231 insertions(+), 2 deletions(-) diff --git a/electronflow.json b/electronflow.json index 4e8f2fa..87986e8 100644 --- a/electronflow.json +++ b/electronflow.json @@ -1 +1,615 @@ -[{"id":"41f61d2.fbe09e4","type":"tab","label":"Flow 1"},{"id":"52a903f3.ad56fc","type":"ui_tab","z":"41f61d2.fbe09e4","name":"My Simple Dashboard","icon":"dashboard","disabled":false,"hidden":false},{"id":"30e652f.d9de3ae","type":"ui_group","z":"41f61d2.fbe09e4","name":"Panel 2","tab":"52a903f3.ad56fc","order":4,"disp":true,"width":"6"},{"id":"a8ecb9.c60f4348","type":"ui_group","z":"41f61d2.fbe09e4","name":"Introduction","tab":"52a903f3.ad56fc","order":1,"disp":false,"width":"3"},{"id":"bbdf3e02.e8fee","type":"ui_group","z":"41f61d2.fbe09e4","name":"Panel 1","tab":"52a903f3.ad56fc","order":2,"disp":true,"width":"6"},{"id":"d9ba26fa.6d2b18","type":"ui_base","theme":{"name":"theme-light","lightTheme":{"default":"#0094CE","baseColor":"#8e0d17","baseFont":"Copperplate,Copperplate Gothic Light,fantasy","edited":true,"reset":false},"darkTheme":{"default":"#097479","baseColor":"#097479","baseFont":"Helvetica Neue","edited":false},"customTheme":{"name":"Untitled Theme 1","default":"#4B7930","baseColor":"#4B7930","baseFont":"Helvetica Neue"},"themeState":{"base-color":{"default":"#0094CE","value":"#d80005","edited":true},"page-titlebar-backgroundColor":{"value":"#8e0d17","edited":false},"page-backgroundColor":{"value":"#fafafa","edited":false},"page-sidebar-backgroundColor":{"value":"#333333","edited":false},"group-textColor":{"value":"#d41322","edited":false},"group-borderColor":{"value":"#ffffff","edited":false},"group-backgroundColor":{"value":"#ffffff","edited":false},"widget-textColor":{"value":"#111111","edited":false},"widget-backgroundColor":{"value":"#8e0d17","edited":false},"widget-borderColor":{"value":"#ffffff","edited":false},"base-font":{"value":"Copperplate,Copperplate Gothic Light,fantasy"}},"angularTheme":{"primary":"indigo","accents":"blue","warn":"red","background":"grey"}},"site":{"name":"Node-RED Dashboard","hideToolbar":"false","allowSwipe":"false","dateFormat":"DD/MM/YYYY","sizes":{"sx":48,"sy":48,"gx":6,"gy":6,"cx":6,"cy":6,"px":0,"py":0}}},{"id":"87356b62.92e3d8","type":"ui_group","z":"","name":"Text to Speech","tab":"52a903f3.ad56fc","order":5,"disp":true,"width":"6","collapse":false},{"id":"c75ad4f0.0cede8","type":"ui_group","z":"","name":"Map","tab":"52a903f3.ad56fc","order":3,"disp":true,"width":"6","collapse":true},{"id":"189cf871.681118","type":"ui_template","z":"41f61d2.fbe09e4","group":"a8ecb9.c60f4348","name":"Welcome","order":1,"width":"3","height":"9","format":"

Welcome to the Node-RED Dashboard

\n

On the right you will see a graph and a chart logging data from the sliders underneath.

","storeOutMessages":false,"fwdInMessages":false,"x":93,"y":45,"wires":[[]]},{"id":"9f19ee5c.beaef","type":"ui_chart","z":"41f61d2.fbe09e4","name":"","group":"bbdf3e02.e8fee","order":1,"width":"0","height":"0","label":"","chartType":"line","xformat":"HH:mm:ss","interpolate":"basis","nodata":"No Data","dot":false,"ymin":"0","ymax":"100","removeOlder":1,"removeOlderPoints":"","removeOlderUnit":"60","cutout":"","colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"outputs":2,"x":270,"y":200,"wires":[[],[]]},{"id":"799d9318.fd385c","type":"ui_gauge","z":"41f61d2.fbe09e4","name":"","group":"30e652f.d9de3ae","order":2,"width":"","height":"","gtype":"gage","title":"Title","label":"gauge","format":"{{value}}","min":0,"max":"100","colors":["#00b500","#e6e600","#ca3838"],"x":270,"y":140,"wires":[]},{"id":"6f18b200.666a4","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"87356b62.92e3d8","order":2,"width":0,"height":0,"passthru":false,"label":"press to talk","tooltip":"","color":"","bgcolor":"","icon":"fa-volume-up","payload":"Hello to Jason Isaacs","payloadType":"str","topic":"","x":110,"y":300,"wires":[["f897d7c2.467a58"]]},{"id":"f897d7c2.467a58","type":"ui_audio","z":"41f61d2.fbe09e4","name":"","group":"30e652f.d9de3ae","voice":"0","x":300,"y":300,"wires":[]},{"id":"da0f7e67.0d38a","type":"ui_slider","z":"41f61d2.fbe09e4","name":"","label":"slider","group":"30e652f.d9de3ae","order":4,"width":0,"height":0,"passthru":true,"topic":"","min":0,"max":"100","step":1,"x":90,"y":140,"wires":[["799d9318.fd385c"]]},{"id":"eabf2bd7.f4e0c8","type":"ui_slider","z":"41f61d2.fbe09e4","name":"","label":"slider","group":"bbdf3e02.e8fee","order":4,"width":0,"height":0,"passthru":true,"topic":"","min":0,"max":"100","step":1,"x":90,"y":200,"wires":[["9f19ee5c.beaef"]]},{"id":"45508d88.744a54","type":"function","z":"41f61d2.fbe09e4","name":"","func":"// create random position\nvar lat = 51 + Math.random() * 0.2;\nvar lon = -1.45 + Math.random() * 0.2;\nmsg.payload={lat:lat, lon:lon, name:\"Jason\", icon:\"male\", url:\"IBM link\"};\nreturn msg;","outputs":1,"noerr":0,"x":270,"y":480,"wires":[["576d953b.3e57dc","1bc50b6.cfc1cf5"]]},{"id":"6ca8cfc2.e0bce","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"c75ad4f0.0cede8","order":2,"width":0,"height":0,"passthru":false,"label":"Where's Jason","color":"","bgcolor":"#910000","icon":"fa-male","payload":"","payloadType":"str","topic":"","x":120,"y":480,"wires":[["45508d88.744a54"]]},{"id":"576d953b.3e57dc","type":"worldmap-tracks","z":"41f61d2.fbe09e4","name":"","depth":20,"layer":"combined","x":450,"y":420,"wires":[["1bc50b6.cfc1cf5"]]},{"id":"814a9c85.e6fb8","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"c75ad4f0.0cede8","order":3,"width":0,"height":0,"passthru":false,"label":"Remove Jason","tooltip":"","color":"","bgcolor":"#910000","icon":"fa-male","payload":"","payloadType":"str","topic":"","x":110,"y":420,"wires":[["b9d3d78b.360d38"]]},{"id":"b9d3d78b.360d38","type":"function","z":"41f61d2.fbe09e4","name":"","func":"// create random position\nmsg.payload={name:\"Jason\", deleted:true};\nreturn msg;","outputs":1,"noerr":0,"x":270,"y":420,"wires":[["576d953b.3e57dc"]]},{"id":"36c05d33.b783b2","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"c75ad4f0.0cede8","order":4,"width":0,"height":0,"passthru":false,"label":"Delete Track","tooltip":"","color":"","bgcolor":"#910000","icon":"fa-male","payload":"","payloadType":"str","topic":"","x":110,"y":360,"wires":[["108b8604.f5bb8a"]]},{"id":"108b8604.f5bb8a","type":"function","z":"41f61d2.fbe09e4","name":"","func":"// create random position\nmsg.payload={name:\"Jason_\", deleted:true};\nreturn msg;","outputs":1,"noerr":0,"x":270,"y":360,"wires":[["1bc50b6.cfc1cf5"]]},{"id":"e90f82d8.46a78","type":"ui_ui_control","z":"41f61d2.fbe09e4","name":"","events":"all","x":320,"y":560,"wires":[[]]},{"id":"c920e625.e95578","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"a8ecb9.c60f4348","order":2,"width":0,"height":0,"passthru":false,"label":"Close Map","tooltip":"","color":"","bgcolor":"","icon":"","payload":"{\"group\":{\"close\":[\"My_Simple_Dashboard_Map\"]}}","payloadType":"json","topic":"","x":130,"y":560,"wires":[["e90f82d8.46a78"]]},{"id":"48892dbf.1d3e64","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"a8ecb9.c60f4348","order":5,"width":0,"height":0,"passthru":false,"label":"Show Map","tooltip":"","color":"","bgcolor":"","icon":"","payload":"{\"group\":{\"show\":[\"My_Simple_Dashboard_Map\"]}}","payloadType":"json","topic":"","x":130,"y":640,"wires":[["e90f82d8.46a78"]]},{"id":"e44dda45.d85038","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"a8ecb9.c60f4348","order":4,"width":0,"height":0,"passthru":false,"label":"Hide Map","tooltip":"","color":"","bgcolor":"","icon":"","payload":"{\"group\":{\"hide\":[\"My_Simple_Dashboard_Map\"]}}","payloadType":"json","topic":"","x":120,"y":680,"wires":[["e90f82d8.46a78"]]},{"id":"1ffc9864.56de48","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"a8ecb9.c60f4348","order":3,"width":0,"height":0,"passthru":false,"label":"Open Map","tooltip":"","color":"","bgcolor":"","icon":"","payload":"{\"group\":{\"open\":[\"My_Simple_Dashboard_Map\"]}}","payloadType":"json","topic":"","x":130,"y":600,"wires":[["e90f82d8.46a78"]]},{"id":"1bc50b6.cfc1cf5","type":"ui_worldmap","z":"41f61d2.fbe09e4","group":"c75ad4f0.0cede8","order":1,"width":0,"height":0,"name":"","lat":"","lon":"","zoom":"","layer":"","cluster":"","maxage":"","usermenu":"hide","layers":"hide","panit":"false","panlock":"false","zoomlock":"false","hiderightclick":"true","coords":"none","showgrid":"false","path":"/worldmap","x":500,"y":480,"wires":[]}] \ No newline at end of file +[ + { + "id": "41f61d2.fbe09e4", + "type": "tab", + "label": "Flow 1" + }, + { + "id": "52a903f3.ad56fc", + "type": "ui_tab", + "z": "41f61d2.fbe09e4", + "name": "My Simple Dashboard", + "icon": "dashboard", + "disabled": false, + "hidden": false + }, + { + "id": "30e652f.d9de3ae", + "type": "ui_group", + "z": "41f61d2.fbe09e4", + "name": "Panel 2", + "tab": "52a903f3.ad56fc", + "order": 4, + "disp": true, + "width": "6" + }, + { + "id": "a8ecb9.c60f4348", + "type": "ui_group", + "z": "41f61d2.fbe09e4", + "name": "Introduction", + "tab": "52a903f3.ad56fc", + "order": 1, + "disp": false, + "width": "3" + }, + { + "id": "bbdf3e02.e8fee", + "type": "ui_group", + "z": "41f61d2.fbe09e4", + "name": "Panel 1", + "tab": "52a903f3.ad56fc", + "order": 2, + "disp": true, + "width": "6" + }, + { + "id": "d9ba26fa.6d2b18", + "type": "ui_base", + "theme": { + "name": "theme-light", + "lightTheme": { + "default": "#0094CE", + "baseColor": "#8e0d17", + "baseFont": "Copperplate,Copperplate Gothic Light,fantasy", + "edited": true, + "reset": false + }, + "darkTheme": { + "default": "#097479", + "baseColor": "#097479", + "baseFont": "Helvetica Neue", + "edited": false + }, + "customTheme": { + "name": "Untitled Theme 1", + "default": "#4B7930", + "baseColor": "#4B7930", + "baseFont": "Helvetica Neue" + }, + "themeState": { + "base-color": { + "default": "#0094CE", + "value": "#d80005", + "edited": true + }, + "page-titlebar-backgroundColor": { + "value": "#8e0d17", + "edited": false + }, + "page-backgroundColor": { + "value": "#fafafa", + "edited": false + }, + "page-sidebar-backgroundColor": { + "value": "#333333", + "edited": false + }, + "group-textColor": { + "value": "#d41322", + "edited": false + }, + "group-borderColor": { + "value": "#ffffff", + "edited": false + }, + "group-backgroundColor": { + "value": "#ffffff", + "edited": false + }, + "widget-textColor": { + "value": "#111111", + "edited": false + }, + "widget-backgroundColor": { + "value": "#8e0d17", + "edited": false + }, + "widget-borderColor": { + "value": "#ffffff", + "edited": false + }, + "base-font": { + "value": "Copperplate,Copperplate Gothic Light,fantasy" + } + }, + "angularTheme": { + "primary": "indigo", + "accents": "blue", + "warn": "red", + "background": "grey" + } + }, + "site": { + "name": "Node-RED Dashboard", + "hideToolbar": "false", + "allowSwipe": "false", + "dateFormat": "DD/MM/YYYY", + "sizes": { + "sx": 48, + "sy": 48, + "gx": 6, + "gy": 6, + "cx": 6, + "cy": 6, + "px": 0, + "py": 0 + } + } + }, + { + "id": "87356b62.92e3d8", + "type": "ui_group", + "z": "", + "name": "Text to Speech", + "tab": "52a903f3.ad56fc", + "order": 5, + "disp": true, + "width": "6", + "collapse": false + }, + { + "id": "c75ad4f0.0cede8", + "type": "ui_group", + "z": "", + "name": "Map", + "tab": "52a903f3.ad56fc", + "order": 3, + "disp": true, + "width": "6", + "collapse": true + }, + { + "id": "189cf871.681118", + "type": "ui_template", + "z": "41f61d2.fbe09e4", + "group": "a8ecb9.c60f4348", + "name": "Welcome", + "order": 1, + "width": "3", + "height": "9", + "format": "

Welcome to the Node-RED Dashboard

\n

On the right you will see a graph and a chart logging data from the sliders underneath.

", + "storeOutMessages": false, + "fwdInMessages": false, + "x": 93, + "y": 45, + "wires": [ + [] + ] + }, + { + "id": "9f19ee5c.beaef", + "type": "ui_chart", + "z": "41f61d2.fbe09e4", + "name": "", + "group": "bbdf3e02.e8fee", + "order": 1, + "width": "0", + "height": "0", + "label": "Chart Title", + "chartType": "line", + "xformat": "HH:mm:ss", + "interpolate": "basis", + "nodata": "No Data", + "dot": false, + "ymin": "0", + "ymax": "100", + "removeOlder": 1, + "removeOlderPoints": "", + "removeOlderUnit": "60", + "cutout": "", + "useOneColor": false, + "useUTC": false, + "colors": [ + "#1f77b4", + "#aec7e8", + "#ff7f0e", + "#2ca02c", + "#98df8a", + "#d62728", + "#ff9896", + "#9467bd", + "#c5b0d5" + ], + "outputs": 1, + "x": 290, + "y": 200, + "wires": [ + [] + ] + }, + { + "id": "799d9318.fd385c", + "type": "ui_gauge", + "z": "41f61d2.fbe09e4", + "name": "", + "group": "30e652f.d9de3ae", + "order": 2, + "width": "", + "height": "", + "gtype": "gage", + "title": "Gauge Title", + "label": "gauge", + "format": "{{value}}", + "min": 0, + "max": "100", + "colors": [ + "#00b500", + "#e6e600", + "#ca3838" + ], + "seg1": "", + "seg2": "", + "x": 290, + "y": 140, + "wires": [] + }, + { + "id": "6f18b200.666a4", + "type": "ui_button", + "z": "41f61d2.fbe09e4", + "name": "", + "group": "87356b62.92e3d8", + "order": 2, + "width": 0, + "height": 0, + "passthru": false, + "label": "press to talk", + "tooltip": "", + "color": "", + "bgcolor": "", + "icon": "fa-volume-up", + "payload": "Hello to Jason Isaacs", + "payloadType": "str", + "topic": "", + "x": 110, + "y": 300, + "wires": [ + [ + "f897d7c2.467a58" + ] + ] + }, + { + "id": "f897d7c2.467a58", + "type": "ui_audio", + "z": "41f61d2.fbe09e4", + "name": "", + "group": "30e652f.d9de3ae", + "voice": "0", + "x": 280, + "y": 300, + "wires": [] + }, + { + "id": "da0f7e67.0d38a", + "type": "ui_slider", + "z": "41f61d2.fbe09e4", + "name": "", + "label": "slider", + "group": "30e652f.d9de3ae", + "order": 4, + "width": 0, + "height": 0, + "passthru": true, + "topic": "", + "min": 0, + "max": "100", + "step": 1, + "x": 90, + "y": 140, + "wires": [ + [ + "799d9318.fd385c" + ] + ] + }, + { + "id": "eabf2bd7.f4e0c8", + "type": "ui_slider", + "z": "41f61d2.fbe09e4", + "name": "", + "label": "slider", + "group": "bbdf3e02.e8fee", + "order": 4, + "width": 0, + "height": 0, + "passthru": true, + "topic": "", + "min": 0, + "max": "100", + "step": 1, + "x": 90, + "y": 200, + "wires": [ + [ + "9f19ee5c.beaef" + ] + ] + }, + { + "id": "45508d88.744a54", + "type": "function", + "z": "41f61d2.fbe09e4", + "name": "", + "func": "// create random position\nvar lat = 51 + Math.random() * 0.2;\nvar lon = -1.45 + Math.random() * 0.2;\nmsg.payload={lat:lat, lon:lon, name:\"Jason\", icon:\"male\", url:\"IBM link\"};\nreturn msg;", + "outputs": 1, + "noerr": 0, + "x": 280, + "y": 480, + "wires": [ + [ + "576d953b.3e57dc", + "1bc50b6.cfc1cf5" + ] + ] + }, + { + "id": "6ca8cfc2.e0bce", + "type": "ui_button", + "z": "41f61d2.fbe09e4", + "name": "", + "group": "c75ad4f0.0cede8", + "order": 2, + "width": 0, + "height": 0, + "passthru": false, + "label": "Where's Jason", + "color": "", + "bgcolor": "#910000", + "icon": "fa-male", + "payload": "", + "payloadType": "str", + "topic": "", + "x": 120, + "y": 480, + "wires": [ + [ + "45508d88.744a54" + ] + ] + }, + { + "id": "576d953b.3e57dc", + "type": "worldmap-tracks", + "z": "41f61d2.fbe09e4", + "name": "", + "depth": 20, + "layer": "combined", + "x": 470, + "y": 440, + "wires": [ + [ + "1bc50b6.cfc1cf5" + ] + ] + }, + { + "id": "814a9c85.e6fb8", + "type": "ui_button", + "z": "41f61d2.fbe09e4", + "name": "", + "group": "c75ad4f0.0cede8", + "order": 3, + "width": 0, + "height": 0, + "passthru": false, + "label": "Remove Jason", + "tooltip": "", + "color": "", + "bgcolor": "#910000", + "icon": "fa-male", + "payload": "", + "payloadType": "str", + "topic": "", + "x": 110, + "y": 420, + "wires": [ + [ + "b9d3d78b.360d38" + ] + ] + }, + { + "id": "b9d3d78b.360d38", + "type": "function", + "z": "41f61d2.fbe09e4", + "name": "", + "func": "// create random position\nmsg.payload={name:\"Jason\", deleted:true};\nreturn msg;", + "outputs": 1, + "noerr": 0, + "x": 280, + "y": 420, + "wires": [ + [ + "576d953b.3e57dc" + ] + ] + }, + { + "id": "36c05d33.b783b2", + "type": "ui_button", + "z": "41f61d2.fbe09e4", + "name": "", + "group": "c75ad4f0.0cede8", + "order": 4, + "width": 0, + "height": 0, + "passthru": false, + "label": "Delete Track", + "tooltip": "", + "color": "", + "bgcolor": "#910000", + "icon": "fa-male", + "payload": "", + "payloadType": "str", + "topic": "", + "x": 110, + "y": 360, + "wires": [ + [ + "108b8604.f5bb8a" + ] + ] + }, + { + "id": "108b8604.f5bb8a", + "type": "function", + "z": "41f61d2.fbe09e4", + "name": "", + "func": "// create random position\nmsg.payload={name:\"Jason_\", deleted:true};\nreturn msg;", + "outputs": 1, + "noerr": 0, + "x": 280, + "y": 360, + "wires": [ + [ + "1bc50b6.cfc1cf5" + ] + ] + }, + { + "id": "e90f82d8.46a78", + "type": "ui_ui_control", + "z": "41f61d2.fbe09e4", + "name": "", + "events": "all", + "x": 340, + "y": 560, + "wires": [ + [] + ] + }, + { + "id": "c920e625.e95578", + "type": "ui_button", + "z": "41f61d2.fbe09e4", + "name": "", + "group": "a8ecb9.c60f4348", + "order": 2, + "width": 0, + "height": 0, + "passthru": false, + "label": "Close Map", + "tooltip": "", + "color": "", + "bgcolor": "", + "icon": "", + "payload": "{\"group\":{\"close\":[\"My_Simple_Dashboard_Map\"]}}", + "payloadType": "json", + "topic": "", + "x": 130, + "y": 560, + "wires": [ + [ + "e90f82d8.46a78" + ] + ] + }, + { + "id": "48892dbf.1d3e64", + "type": "ui_button", + "z": "41f61d2.fbe09e4", + "name": "", + "group": "a8ecb9.c60f4348", + "order": 5, + "width": 0, + "height": 0, + "passthru": false, + "label": "Show Map", + "tooltip": "", + "color": "", + "bgcolor": "", + "icon": "", + "payload": "{\"group\":{\"show\":[\"My_Simple_Dashboard_Map\"]}}", + "payloadType": "json", + "topic": "", + "x": 130, + "y": 640, + "wires": [ + [ + "e90f82d8.46a78" + ] + ] + }, + { + "id": "e44dda45.d85038", + "type": "ui_button", + "z": "41f61d2.fbe09e4", + "name": "", + "group": "a8ecb9.c60f4348", + "order": 4, + "width": 0, + "height": 0, + "passthru": false, + "label": "Hide Map", + "tooltip": "", + "color": "", + "bgcolor": "", + "icon": "", + "payload": "{\"group\":{\"hide\":[\"My_Simple_Dashboard_Map\"]}}", + "payloadType": "json", + "topic": "", + "x": 120, + "y": 680, + "wires": [ + [ + "e90f82d8.46a78" + ] + ] + }, + { + "id": "1ffc9864.56de48", + "type": "ui_button", + "z": "41f61d2.fbe09e4", + "name": "", + "group": "a8ecb9.c60f4348", + "order": 3, + "width": 0, + "height": 0, + "passthru": false, + "label": "Open Map", + "tooltip": "", + "color": "", + "bgcolor": "", + "icon": "", + "payload": "{\"group\":{\"open\":[\"My_Simple_Dashboard_Map\"]}}", + "payloadType": "json", + "topic": "", + "x": 130, + "y": 600, + "wires": [ + [ + "e90f82d8.46a78" + ] + ] + }, + { + "id": "1bc50b6.cfc1cf5", + "type": "ui_worldmap", + "z": "41f61d2.fbe09e4", + "group": "c75ad4f0.0cede8", + "order": 1, + "width": 0, + "height": 0, + "name": "", + "lat": "", + "lon": "", + "zoom": "", + "layer": "", + "cluster": "", + "maxage": "", + "usermenu": "hide", + "layers": "hide", + "panit": "false", + "panlock": "false", + "zoomlock": "false", + "hiderightclick": "true", + "coords": "none", + "showgrid": "false", + "path": "/worldmap", + "x": 480, + "y": 360, + "wires": [] + } +] \ No newline at end of file diff --git a/example/electronflow.json b/example/electronflow.json index 4e8f2fa..87986e8 100644 --- a/example/electronflow.json +++ b/example/electronflow.json @@ -1 +1,615 @@ -[{"id":"41f61d2.fbe09e4","type":"tab","label":"Flow 1"},{"id":"52a903f3.ad56fc","type":"ui_tab","z":"41f61d2.fbe09e4","name":"My Simple Dashboard","icon":"dashboard","disabled":false,"hidden":false},{"id":"30e652f.d9de3ae","type":"ui_group","z":"41f61d2.fbe09e4","name":"Panel 2","tab":"52a903f3.ad56fc","order":4,"disp":true,"width":"6"},{"id":"a8ecb9.c60f4348","type":"ui_group","z":"41f61d2.fbe09e4","name":"Introduction","tab":"52a903f3.ad56fc","order":1,"disp":false,"width":"3"},{"id":"bbdf3e02.e8fee","type":"ui_group","z":"41f61d2.fbe09e4","name":"Panel 1","tab":"52a903f3.ad56fc","order":2,"disp":true,"width":"6"},{"id":"d9ba26fa.6d2b18","type":"ui_base","theme":{"name":"theme-light","lightTheme":{"default":"#0094CE","baseColor":"#8e0d17","baseFont":"Copperplate,Copperplate Gothic Light,fantasy","edited":true,"reset":false},"darkTheme":{"default":"#097479","baseColor":"#097479","baseFont":"Helvetica Neue","edited":false},"customTheme":{"name":"Untitled Theme 1","default":"#4B7930","baseColor":"#4B7930","baseFont":"Helvetica Neue"},"themeState":{"base-color":{"default":"#0094CE","value":"#d80005","edited":true},"page-titlebar-backgroundColor":{"value":"#8e0d17","edited":false},"page-backgroundColor":{"value":"#fafafa","edited":false},"page-sidebar-backgroundColor":{"value":"#333333","edited":false},"group-textColor":{"value":"#d41322","edited":false},"group-borderColor":{"value":"#ffffff","edited":false},"group-backgroundColor":{"value":"#ffffff","edited":false},"widget-textColor":{"value":"#111111","edited":false},"widget-backgroundColor":{"value":"#8e0d17","edited":false},"widget-borderColor":{"value":"#ffffff","edited":false},"base-font":{"value":"Copperplate,Copperplate Gothic Light,fantasy"}},"angularTheme":{"primary":"indigo","accents":"blue","warn":"red","background":"grey"}},"site":{"name":"Node-RED Dashboard","hideToolbar":"false","allowSwipe":"false","dateFormat":"DD/MM/YYYY","sizes":{"sx":48,"sy":48,"gx":6,"gy":6,"cx":6,"cy":6,"px":0,"py":0}}},{"id":"87356b62.92e3d8","type":"ui_group","z":"","name":"Text to Speech","tab":"52a903f3.ad56fc","order":5,"disp":true,"width":"6","collapse":false},{"id":"c75ad4f0.0cede8","type":"ui_group","z":"","name":"Map","tab":"52a903f3.ad56fc","order":3,"disp":true,"width":"6","collapse":true},{"id":"189cf871.681118","type":"ui_template","z":"41f61d2.fbe09e4","group":"a8ecb9.c60f4348","name":"Welcome","order":1,"width":"3","height":"9","format":"

Welcome to the Node-RED Dashboard

\n

On the right you will see a graph and a chart logging data from the sliders underneath.

","storeOutMessages":false,"fwdInMessages":false,"x":93,"y":45,"wires":[[]]},{"id":"9f19ee5c.beaef","type":"ui_chart","z":"41f61d2.fbe09e4","name":"","group":"bbdf3e02.e8fee","order":1,"width":"0","height":"0","label":"","chartType":"line","xformat":"HH:mm:ss","interpolate":"basis","nodata":"No Data","dot":false,"ymin":"0","ymax":"100","removeOlder":1,"removeOlderPoints":"","removeOlderUnit":"60","cutout":"","colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"outputs":2,"x":270,"y":200,"wires":[[],[]]},{"id":"799d9318.fd385c","type":"ui_gauge","z":"41f61d2.fbe09e4","name":"","group":"30e652f.d9de3ae","order":2,"width":"","height":"","gtype":"gage","title":"Title","label":"gauge","format":"{{value}}","min":0,"max":"100","colors":["#00b500","#e6e600","#ca3838"],"x":270,"y":140,"wires":[]},{"id":"6f18b200.666a4","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"87356b62.92e3d8","order":2,"width":0,"height":0,"passthru":false,"label":"press to talk","tooltip":"","color":"","bgcolor":"","icon":"fa-volume-up","payload":"Hello to Jason Isaacs","payloadType":"str","topic":"","x":110,"y":300,"wires":[["f897d7c2.467a58"]]},{"id":"f897d7c2.467a58","type":"ui_audio","z":"41f61d2.fbe09e4","name":"","group":"30e652f.d9de3ae","voice":"0","x":300,"y":300,"wires":[]},{"id":"da0f7e67.0d38a","type":"ui_slider","z":"41f61d2.fbe09e4","name":"","label":"slider","group":"30e652f.d9de3ae","order":4,"width":0,"height":0,"passthru":true,"topic":"","min":0,"max":"100","step":1,"x":90,"y":140,"wires":[["799d9318.fd385c"]]},{"id":"eabf2bd7.f4e0c8","type":"ui_slider","z":"41f61d2.fbe09e4","name":"","label":"slider","group":"bbdf3e02.e8fee","order":4,"width":0,"height":0,"passthru":true,"topic":"","min":0,"max":"100","step":1,"x":90,"y":200,"wires":[["9f19ee5c.beaef"]]},{"id":"45508d88.744a54","type":"function","z":"41f61d2.fbe09e4","name":"","func":"// create random position\nvar lat = 51 + Math.random() * 0.2;\nvar lon = -1.45 + Math.random() * 0.2;\nmsg.payload={lat:lat, lon:lon, name:\"Jason\", icon:\"male\", url:\"IBM link\"};\nreturn msg;","outputs":1,"noerr":0,"x":270,"y":480,"wires":[["576d953b.3e57dc","1bc50b6.cfc1cf5"]]},{"id":"6ca8cfc2.e0bce","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"c75ad4f0.0cede8","order":2,"width":0,"height":0,"passthru":false,"label":"Where's Jason","color":"","bgcolor":"#910000","icon":"fa-male","payload":"","payloadType":"str","topic":"","x":120,"y":480,"wires":[["45508d88.744a54"]]},{"id":"576d953b.3e57dc","type":"worldmap-tracks","z":"41f61d2.fbe09e4","name":"","depth":20,"layer":"combined","x":450,"y":420,"wires":[["1bc50b6.cfc1cf5"]]},{"id":"814a9c85.e6fb8","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"c75ad4f0.0cede8","order":3,"width":0,"height":0,"passthru":false,"label":"Remove Jason","tooltip":"","color":"","bgcolor":"#910000","icon":"fa-male","payload":"","payloadType":"str","topic":"","x":110,"y":420,"wires":[["b9d3d78b.360d38"]]},{"id":"b9d3d78b.360d38","type":"function","z":"41f61d2.fbe09e4","name":"","func":"// create random position\nmsg.payload={name:\"Jason\", deleted:true};\nreturn msg;","outputs":1,"noerr":0,"x":270,"y":420,"wires":[["576d953b.3e57dc"]]},{"id":"36c05d33.b783b2","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"c75ad4f0.0cede8","order":4,"width":0,"height":0,"passthru":false,"label":"Delete Track","tooltip":"","color":"","bgcolor":"#910000","icon":"fa-male","payload":"","payloadType":"str","topic":"","x":110,"y":360,"wires":[["108b8604.f5bb8a"]]},{"id":"108b8604.f5bb8a","type":"function","z":"41f61d2.fbe09e4","name":"","func":"// create random position\nmsg.payload={name:\"Jason_\", deleted:true};\nreturn msg;","outputs":1,"noerr":0,"x":270,"y":360,"wires":[["1bc50b6.cfc1cf5"]]},{"id":"e90f82d8.46a78","type":"ui_ui_control","z":"41f61d2.fbe09e4","name":"","events":"all","x":320,"y":560,"wires":[[]]},{"id":"c920e625.e95578","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"a8ecb9.c60f4348","order":2,"width":0,"height":0,"passthru":false,"label":"Close Map","tooltip":"","color":"","bgcolor":"","icon":"","payload":"{\"group\":{\"close\":[\"My_Simple_Dashboard_Map\"]}}","payloadType":"json","topic":"","x":130,"y":560,"wires":[["e90f82d8.46a78"]]},{"id":"48892dbf.1d3e64","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"a8ecb9.c60f4348","order":5,"width":0,"height":0,"passthru":false,"label":"Show Map","tooltip":"","color":"","bgcolor":"","icon":"","payload":"{\"group\":{\"show\":[\"My_Simple_Dashboard_Map\"]}}","payloadType":"json","topic":"","x":130,"y":640,"wires":[["e90f82d8.46a78"]]},{"id":"e44dda45.d85038","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"a8ecb9.c60f4348","order":4,"width":0,"height":0,"passthru":false,"label":"Hide Map","tooltip":"","color":"","bgcolor":"","icon":"","payload":"{\"group\":{\"hide\":[\"My_Simple_Dashboard_Map\"]}}","payloadType":"json","topic":"","x":120,"y":680,"wires":[["e90f82d8.46a78"]]},{"id":"1ffc9864.56de48","type":"ui_button","z":"41f61d2.fbe09e4","name":"","group":"a8ecb9.c60f4348","order":3,"width":0,"height":0,"passthru":false,"label":"Open Map","tooltip":"","color":"","bgcolor":"","icon":"","payload":"{\"group\":{\"open\":[\"My_Simple_Dashboard_Map\"]}}","payloadType":"json","topic":"","x":130,"y":600,"wires":[["e90f82d8.46a78"]]},{"id":"1bc50b6.cfc1cf5","type":"ui_worldmap","z":"41f61d2.fbe09e4","group":"c75ad4f0.0cede8","order":1,"width":0,"height":0,"name":"","lat":"","lon":"","zoom":"","layer":"","cluster":"","maxage":"","usermenu":"hide","layers":"hide","panit":"false","panlock":"false","zoomlock":"false","hiderightclick":"true","coords":"none","showgrid":"false","path":"/worldmap","x":500,"y":480,"wires":[]}] \ No newline at end of file +[ + { + "id": "41f61d2.fbe09e4", + "type": "tab", + "label": "Flow 1" + }, + { + "id": "52a903f3.ad56fc", + "type": "ui_tab", + "z": "41f61d2.fbe09e4", + "name": "My Simple Dashboard", + "icon": "dashboard", + "disabled": false, + "hidden": false + }, + { + "id": "30e652f.d9de3ae", + "type": "ui_group", + "z": "41f61d2.fbe09e4", + "name": "Panel 2", + "tab": "52a903f3.ad56fc", + "order": 4, + "disp": true, + "width": "6" + }, + { + "id": "a8ecb9.c60f4348", + "type": "ui_group", + "z": "41f61d2.fbe09e4", + "name": "Introduction", + "tab": "52a903f3.ad56fc", + "order": 1, + "disp": false, + "width": "3" + }, + { + "id": "bbdf3e02.e8fee", + "type": "ui_group", + "z": "41f61d2.fbe09e4", + "name": "Panel 1", + "tab": "52a903f3.ad56fc", + "order": 2, + "disp": true, + "width": "6" + }, + { + "id": "d9ba26fa.6d2b18", + "type": "ui_base", + "theme": { + "name": "theme-light", + "lightTheme": { + "default": "#0094CE", + "baseColor": "#8e0d17", + "baseFont": "Copperplate,Copperplate Gothic Light,fantasy", + "edited": true, + "reset": false + }, + "darkTheme": { + "default": "#097479", + "baseColor": "#097479", + "baseFont": "Helvetica Neue", + "edited": false + }, + "customTheme": { + "name": "Untitled Theme 1", + "default": "#4B7930", + "baseColor": "#4B7930", + "baseFont": "Helvetica Neue" + }, + "themeState": { + "base-color": { + "default": "#0094CE", + "value": "#d80005", + "edited": true + }, + "page-titlebar-backgroundColor": { + "value": "#8e0d17", + "edited": false + }, + "page-backgroundColor": { + "value": "#fafafa", + "edited": false + }, + "page-sidebar-backgroundColor": { + "value": "#333333", + "edited": false + }, + "group-textColor": { + "value": "#d41322", + "edited": false + }, + "group-borderColor": { + "value": "#ffffff", + "edited": false + }, + "group-backgroundColor": { + "value": "#ffffff", + "edited": false + }, + "widget-textColor": { + "value": "#111111", + "edited": false + }, + "widget-backgroundColor": { + "value": "#8e0d17", + "edited": false + }, + "widget-borderColor": { + "value": "#ffffff", + "edited": false + }, + "base-font": { + "value": "Copperplate,Copperplate Gothic Light,fantasy" + } + }, + "angularTheme": { + "primary": "indigo", + "accents": "blue", + "warn": "red", + "background": "grey" + } + }, + "site": { + "name": "Node-RED Dashboard", + "hideToolbar": "false", + "allowSwipe": "false", + "dateFormat": "DD/MM/YYYY", + "sizes": { + "sx": 48, + "sy": 48, + "gx": 6, + "gy": 6, + "cx": 6, + "cy": 6, + "px": 0, + "py": 0 + } + } + }, + { + "id": "87356b62.92e3d8", + "type": "ui_group", + "z": "", + "name": "Text to Speech", + "tab": "52a903f3.ad56fc", + "order": 5, + "disp": true, + "width": "6", + "collapse": false + }, + { + "id": "c75ad4f0.0cede8", + "type": "ui_group", + "z": "", + "name": "Map", + "tab": "52a903f3.ad56fc", + "order": 3, + "disp": true, + "width": "6", + "collapse": true + }, + { + "id": "189cf871.681118", + "type": "ui_template", + "z": "41f61d2.fbe09e4", + "group": "a8ecb9.c60f4348", + "name": "Welcome", + "order": 1, + "width": "3", + "height": "9", + "format": "

Welcome to the Node-RED Dashboard

\n

On the right you will see a graph and a chart logging data from the sliders underneath.

", + "storeOutMessages": false, + "fwdInMessages": false, + "x": 93, + "y": 45, + "wires": [ + [] + ] + }, + { + "id": "9f19ee5c.beaef", + "type": "ui_chart", + "z": "41f61d2.fbe09e4", + "name": "", + "group": "bbdf3e02.e8fee", + "order": 1, + "width": "0", + "height": "0", + "label": "Chart Title", + "chartType": "line", + "xformat": "HH:mm:ss", + "interpolate": "basis", + "nodata": "No Data", + "dot": false, + "ymin": "0", + "ymax": "100", + "removeOlder": 1, + "removeOlderPoints": "", + "removeOlderUnit": "60", + "cutout": "", + "useOneColor": false, + "useUTC": false, + "colors": [ + "#1f77b4", + "#aec7e8", + "#ff7f0e", + "#2ca02c", + "#98df8a", + "#d62728", + "#ff9896", + "#9467bd", + "#c5b0d5" + ], + "outputs": 1, + "x": 290, + "y": 200, + "wires": [ + [] + ] + }, + { + "id": "799d9318.fd385c", + "type": "ui_gauge", + "z": "41f61d2.fbe09e4", + "name": "", + "group": "30e652f.d9de3ae", + "order": 2, + "width": "", + "height": "", + "gtype": "gage", + "title": "Gauge Title", + "label": "gauge", + "format": "{{value}}", + "min": 0, + "max": "100", + "colors": [ + "#00b500", + "#e6e600", + "#ca3838" + ], + "seg1": "", + "seg2": "", + "x": 290, + "y": 140, + "wires": [] + }, + { + "id": "6f18b200.666a4", + "type": "ui_button", + "z": "41f61d2.fbe09e4", + "name": "", + "group": "87356b62.92e3d8", + "order": 2, + "width": 0, + "height": 0, + "passthru": false, + "label": "press to talk", + "tooltip": "", + "color": "", + "bgcolor": "", + "icon": "fa-volume-up", + "payload": "Hello to Jason Isaacs", + "payloadType": "str", + "topic": "", + "x": 110, + "y": 300, + "wires": [ + [ + "f897d7c2.467a58" + ] + ] + }, + { + "id": "f897d7c2.467a58", + "type": "ui_audio", + "z": "41f61d2.fbe09e4", + "name": "", + "group": "30e652f.d9de3ae", + "voice": "0", + "x": 280, + "y": 300, + "wires": [] + }, + { + "id": "da0f7e67.0d38a", + "type": "ui_slider", + "z": "41f61d2.fbe09e4", + "name": "", + "label": "slider", + "group": "30e652f.d9de3ae", + "order": 4, + "width": 0, + "height": 0, + "passthru": true, + "topic": "", + "min": 0, + "max": "100", + "step": 1, + "x": 90, + "y": 140, + "wires": [ + [ + "799d9318.fd385c" + ] + ] + }, + { + "id": "eabf2bd7.f4e0c8", + "type": "ui_slider", + "z": "41f61d2.fbe09e4", + "name": "", + "label": "slider", + "group": "bbdf3e02.e8fee", + "order": 4, + "width": 0, + "height": 0, + "passthru": true, + "topic": "", + "min": 0, + "max": "100", + "step": 1, + "x": 90, + "y": 200, + "wires": [ + [ + "9f19ee5c.beaef" + ] + ] + }, + { + "id": "45508d88.744a54", + "type": "function", + "z": "41f61d2.fbe09e4", + "name": "", + "func": "// create random position\nvar lat = 51 + Math.random() * 0.2;\nvar lon = -1.45 + Math.random() * 0.2;\nmsg.payload={lat:lat, lon:lon, name:\"Jason\", icon:\"male\", url:\"IBM link\"};\nreturn msg;", + "outputs": 1, + "noerr": 0, + "x": 280, + "y": 480, + "wires": [ + [ + "576d953b.3e57dc", + "1bc50b6.cfc1cf5" + ] + ] + }, + { + "id": "6ca8cfc2.e0bce", + "type": "ui_button", + "z": "41f61d2.fbe09e4", + "name": "", + "group": "c75ad4f0.0cede8", + "order": 2, + "width": 0, + "height": 0, + "passthru": false, + "label": "Where's Jason", + "color": "", + "bgcolor": "#910000", + "icon": "fa-male", + "payload": "", + "payloadType": "str", + "topic": "", + "x": 120, + "y": 480, + "wires": [ + [ + "45508d88.744a54" + ] + ] + }, + { + "id": "576d953b.3e57dc", + "type": "worldmap-tracks", + "z": "41f61d2.fbe09e4", + "name": "", + "depth": 20, + "layer": "combined", + "x": 470, + "y": 440, + "wires": [ + [ + "1bc50b6.cfc1cf5" + ] + ] + }, + { + "id": "814a9c85.e6fb8", + "type": "ui_button", + "z": "41f61d2.fbe09e4", + "name": "", + "group": "c75ad4f0.0cede8", + "order": 3, + "width": 0, + "height": 0, + "passthru": false, + "label": "Remove Jason", + "tooltip": "", + "color": "", + "bgcolor": "#910000", + "icon": "fa-male", + "payload": "", + "payloadType": "str", + "topic": "", + "x": 110, + "y": 420, + "wires": [ + [ + "b9d3d78b.360d38" + ] + ] + }, + { + "id": "b9d3d78b.360d38", + "type": "function", + "z": "41f61d2.fbe09e4", + "name": "", + "func": "// create random position\nmsg.payload={name:\"Jason\", deleted:true};\nreturn msg;", + "outputs": 1, + "noerr": 0, + "x": 280, + "y": 420, + "wires": [ + [ + "576d953b.3e57dc" + ] + ] + }, + { + "id": "36c05d33.b783b2", + "type": "ui_button", + "z": "41f61d2.fbe09e4", + "name": "", + "group": "c75ad4f0.0cede8", + "order": 4, + "width": 0, + "height": 0, + "passthru": false, + "label": "Delete Track", + "tooltip": "", + "color": "", + "bgcolor": "#910000", + "icon": "fa-male", + "payload": "", + "payloadType": "str", + "topic": "", + "x": 110, + "y": 360, + "wires": [ + [ + "108b8604.f5bb8a" + ] + ] + }, + { + "id": "108b8604.f5bb8a", + "type": "function", + "z": "41f61d2.fbe09e4", + "name": "", + "func": "// create random position\nmsg.payload={name:\"Jason_\", deleted:true};\nreturn msg;", + "outputs": 1, + "noerr": 0, + "x": 280, + "y": 360, + "wires": [ + [ + "1bc50b6.cfc1cf5" + ] + ] + }, + { + "id": "e90f82d8.46a78", + "type": "ui_ui_control", + "z": "41f61d2.fbe09e4", + "name": "", + "events": "all", + "x": 340, + "y": 560, + "wires": [ + [] + ] + }, + { + "id": "c920e625.e95578", + "type": "ui_button", + "z": "41f61d2.fbe09e4", + "name": "", + "group": "a8ecb9.c60f4348", + "order": 2, + "width": 0, + "height": 0, + "passthru": false, + "label": "Close Map", + "tooltip": "", + "color": "", + "bgcolor": "", + "icon": "", + "payload": "{\"group\":{\"close\":[\"My_Simple_Dashboard_Map\"]}}", + "payloadType": "json", + "topic": "", + "x": 130, + "y": 560, + "wires": [ + [ + "e90f82d8.46a78" + ] + ] + }, + { + "id": "48892dbf.1d3e64", + "type": "ui_button", + "z": "41f61d2.fbe09e4", + "name": "", + "group": "a8ecb9.c60f4348", + "order": 5, + "width": 0, + "height": 0, + "passthru": false, + "label": "Show Map", + "tooltip": "", + "color": "", + "bgcolor": "", + "icon": "", + "payload": "{\"group\":{\"show\":[\"My_Simple_Dashboard_Map\"]}}", + "payloadType": "json", + "topic": "", + "x": 130, + "y": 640, + "wires": [ + [ + "e90f82d8.46a78" + ] + ] + }, + { + "id": "e44dda45.d85038", + "type": "ui_button", + "z": "41f61d2.fbe09e4", + "name": "", + "group": "a8ecb9.c60f4348", + "order": 4, + "width": 0, + "height": 0, + "passthru": false, + "label": "Hide Map", + "tooltip": "", + "color": "", + "bgcolor": "", + "icon": "", + "payload": "{\"group\":{\"hide\":[\"My_Simple_Dashboard_Map\"]}}", + "payloadType": "json", + "topic": "", + "x": 120, + "y": 680, + "wires": [ + [ + "e90f82d8.46a78" + ] + ] + }, + { + "id": "1ffc9864.56de48", + "type": "ui_button", + "z": "41f61d2.fbe09e4", + "name": "", + "group": "a8ecb9.c60f4348", + "order": 3, + "width": 0, + "height": 0, + "passthru": false, + "label": "Open Map", + "tooltip": "", + "color": "", + "bgcolor": "", + "icon": "", + "payload": "{\"group\":{\"open\":[\"My_Simple_Dashboard_Map\"]}}", + "payloadType": "json", + "topic": "", + "x": 130, + "y": 600, + "wires": [ + [ + "e90f82d8.46a78" + ] + ] + }, + { + "id": "1bc50b6.cfc1cf5", + "type": "ui_worldmap", + "z": "41f61d2.fbe09e4", + "group": "c75ad4f0.0cede8", + "order": 1, + "width": 0, + "height": 0, + "name": "", + "lat": "", + "lon": "", + "zoom": "", + "layer": "", + "cluster": "", + "maxage": "", + "usermenu": "hide", + "layers": "hide", + "panit": "false", + "panlock": "false", + "zoomlock": "false", + "hiderightclick": "true", + "coords": "none", + "showgrid": "false", + "path": "/worldmap", + "x": 480, + "y": 360, + "wires": [] + } +] \ No newline at end of file diff --git a/main.js b/main.js index f630f41..d469f0e 100755 --- a/main.js +++ b/main.js @@ -107,6 +107,7 @@ flowfile = store.get('electronFlow',flowfile); // console.log("UserDir :",userdir); console.log("FlowFile :",flowfile); // console.log("PORT",listenPort); +console.log("Store",app.getPath('userData')) // Keep a global reference of the window objects, if you don't, the window will // be closed automatically when the JavaScript object is garbage collected. From 57ea6bde1967137a352085541d0a92cf4703c87f Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Wed, 7 Oct 2020 14:17:02 +0100 Subject: [PATCH 095/127] Update package.json --- package.json | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index c6bdb05..051a945 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "NRelectron": { "productName": "Node-RED Electron App", "editable": true, - "allowLoadSave": false, + "allowLoadSave": true, "showMap": false, "kioskMode": false, "addNodes": true, @@ -64,10 +64,16 @@ "files": [ "**/*", { - "from": "node_modules/@node-red/nodes/examples", + "from": "node_modules/@node-red/nodes/examples", "to": "node_modules/@node-red/nodes/examples" } ], + "fileAssociations": [ + { + "ext": "flow", + "name": "Flow file" + } + ], "mac": { "category": "public.app-category.developer-tools", "target": "dmg" From a57d640236fc3a9fa885b9c3590f511be10cb653 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Thu, 8 Oct 2020 23:59:35 +0100 Subject: [PATCH 096/127] slightly smarter about what we show when --- main.js | 44 +++++++++++++++++++++++++++++++------------- 1 file changed, 31 insertions(+), 13 deletions(-) diff --git a/main.js b/main.js index d469f0e..b5c5a99 100755 --- a/main.js +++ b/main.js @@ -3,12 +3,14 @@ const pkg = require('./package.json'); let options; if (pkg.hasOwnProperty("NRelectron")) { options = pkg["NRelectron"] } +let packages; +if (pkg.hasOwnProperty("dependencies")) { packages = pkg["dependencies"] } // Some settings you can edit if you don't set them in package.json //console.log(options) const editable = options.editable || false; // set this to false to create a run only application - no editor/no console const allowLoadSave = options.allowLoadSave || false; // set to true to allow import and export of flow file -const showMap = options.showMap || false; // set to true to add Worldmap to the menu +let showMap = options.showMap || false; // set to true to add Worldmap to the menu const kioskMode = options.kioskMode || false; // set to true to start in kiosk mode const addNodes = options.addNodes || false; // set to false to block installing extra nodes let flowfile = options.flowFile || 'electronflow.json'; // default Flows file name - loaded at start @@ -18,10 +20,13 @@ const urledit = "/red"; // url for the editor page const urlconsole = "/console.htm"; // url for the console page const urlmap = "/worldmap"; // url for the worldmap const nrIcon = "nodered.png" // Icon for the app in root dir (usually 256x256) -let urlStart; // Start on this page + +let urlStart = urldash; // Start on this page +if (!packages.hasOwnProperty("node-red-dashboard")) { urlStart = urledit; } if (options.start.toLowerCase() === "editor") { urlStart = urledit; } -else if (options.start.toLowerCase() === "map") { urlStart = urlmap; } -else { urlStart = urldash; } +if (options.start.toLowerCase() === "map") { urlStart = urlmap; } + +if (!packages.hasOwnProperty("node-red-contrib-web-worldmap")) { showMap = false; } // TCP port to use //const listenPort = "18880"; // fix it if you like @@ -43,7 +48,7 @@ const ipc = electron.ipcMain; const dialog = electron.dialog; const BrowserWindow = electron.BrowserWindow; const Tray = electron.Tray; -const { TouchBarButton } = TouchBar; +const { TouchBarButton, TouchBarSpacer } = TouchBar; var RED = require("node-red"); var red_app = express(); @@ -61,7 +66,7 @@ if (editable === true) { // if running as raw electron use the current directory (mainly for dev) if (process.argv[1] && (process.argv[1] === "main.js")) { userdir = __dirname; - if ((process.argv.length > 2) && (process.argv[process.argv.length-1].indexOf(".json") > -1)) { + if ((process.argv.length > 2) && ((process.argv[process.argv.length-1].indexOf(".json") > -1)||(process.argv[process.argv.length-1].indexOf(".flow") > -1))) { if (path.isAbsolute(process.argv[process.argv.length-1])) { flowfile = process.argv[process.argv.length-1]; } @@ -73,11 +78,12 @@ if (editable === true) { else { flowfile = path.join(userdir,flowfile); } } else { // We set the user directory to be in the users home directory... + console.log("ARG",process.argv) userdir = os.homedir() + '/.node-red'; if (!fs.existsSync(userdir)) { fs.mkdirSync(userdir); } - if ((process.argv.length > 1) && (process.argv[process.argv.length-1].indexOf(".json") > -1)) { + if ((process.argv.length > 1) && ((process.argv[process.argv.length-1].indexOf(".json") > -1) || (process.argv[process.argv.length-1].indexOf(".flow") > -1))) { if (path.isAbsolute(process.argv[process.argv.length-1])) { flowfile = process.argv[process.argv.length-1]; } @@ -262,7 +268,7 @@ if (isDev) { function saveFlow() { const file_path = dialog.showSaveDialogSync({ title:"Save Flow As", - filters:[{ name:'JSON', extensions:['json'] }], + filters:[{ name:'JSON', extensions:['json','flow'] }], properties: ["showHiddenFiles"], defaultPath: flowfile, buttonLabel: "Save Flow" @@ -288,7 +294,7 @@ function saveFlow() { function openFlow() { const fileNames = dialog.showOpenDialogSync({ title:"Load Flow File", - filters:[{ name:'JSON', extensions:['json'] }], + filters:[{ name:'JSON', extensions:['json','flow'] }], properties: ["openFile","showHiddenFiles"], defaultPath: flowfile, buttonLabel: "Load Flow" @@ -324,7 +330,7 @@ function createConsole() { height: 600, icon: path.join(__dirname, nrIcon), autoHideMenuBar: true, - titleBarStyle: "hidden", + // titleBarStyle: "hidden", webPreferences: { nodeIntegration: true } @@ -341,13 +347,13 @@ function createConsole() { conWindow = null; }); //conWindow.webContents.openDevTools(); - const touchButton4 = new TouchBarButton({ + const touchButton5 = new TouchBarButton({ label: 'Clear Log', backgroundColor: '#910000', click: () => { logBuffer = []; conWindow.webContents.send('logBuff', logBuffer); } }); const consoleTouchBar = new TouchBar({ - items: [ touchButton4 ] + items: [ touchButton5 ] }); conWindow.setTouchBar(consoleTouchBar); } @@ -361,7 +367,7 @@ function createWindow() { icon: path.join(__dirname, nrIcon), fullscreenable: true, autoHideMenuBar: false, - titleBarStyle: "hidden", + // titleBarStyle: "hidden", kiosk: kioskMode, webPreferences: { nodeIntegration: false @@ -432,9 +438,21 @@ function createWindow() { click: () => { mainWindow.loadURL("http://localhost:"+listenPort+urlmap); } }); + const spacer = new TouchBarSpacer({ size: 'flexible' }); + + const touchButton4 = new TouchBarButton({ + label: 'Console', + backgroundColor: '#910000', + click: () => { createConsole(); } + }); + var items = [ touchButton2 ]; if (editable) { items.push(touchButton1) } if (showMap) { items.push(touchButton3) } + if (editable) { + items.push(spacer); + items.push(touchButton4); + } const mainTouchBar = new TouchBar({ items: items }); From 4816ef481600ed77e48c0798baf5fcc07f9894d6 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Fri, 9 Oct 2020 10:01:41 +0100 Subject: [PATCH 097/127] Update main.js --- main.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/main.js b/main.js index b5c5a99..66b0b36 100755 --- a/main.js +++ b/main.js @@ -107,13 +107,19 @@ if (editable === true) { else { store.clear(); } flowfile = store.get('electronFlow',flowfile); +var myFlow; +try { myFlow = fs.readFileSync(flowfile) } +catch(e) { myFlow = []; } +if (urlStart == urlmap && myFlow.indexOf("worldmap") == -1) { urlStart = urledit; } +if (urlStart == urldash && myFlow.indexOf("ui-base") == -1) { urlStart = urledit; } +myFlow = null; // console.log("CWD",process.cwd()); // console.log("DIR",__dirname); // console.log("UserDir :",userdir); -console.log("FlowFile :",flowfile); // console.log("PORT",listenPort); console.log("Store",app.getPath('userData')) +console.log("FlowFile :",flowfile); // Keep a global reference of the window objects, if you don't, the window will // be closed automatically when the JavaScript object is garbage collected. From 5e3c7eede5c09d58c7c907d78da2d191b1667a1b Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Sat, 10 Oct 2020 17:10:47 +0100 Subject: [PATCH 098/127] tidy up touchbar --- main.js | 25 +++++++++++++------------ merger.js | 10 +++++----- package-template.json | 2 +- 3 files changed, 19 insertions(+), 18 deletions(-) diff --git a/main.js b/main.js index 66b0b36..0624ce3 100755 --- a/main.js +++ b/main.js @@ -426,16 +426,17 @@ function createWindow() { // If on a Mac add some touchbar buttons... if (process.platform === 'darwin') { + const touchButton1 = new TouchBarButton({ - label: 'Editor', + label: 'Dashboard', backgroundColor: '#910000', - click: () => { mainWindow.loadURL("http://localhost:"+listenPort+urledit); } + click: () => { mainWindow.loadURL("http://localhost:"+listenPort+urldash); } }); const touchButton2 = new TouchBarButton({ - label: 'Dashboard', + label: 'Editor', backgroundColor: '#910000', - click: () => { mainWindow.loadURL("http://localhost:"+listenPort+urldash); } + click: () => { mainWindow.loadURL("http://localhost:"+listenPort+urledit); } }); const touchButton3 = new TouchBarButton({ @@ -444,25 +445,25 @@ function createWindow() { click: () => { mainWindow.loadURL("http://localhost:"+listenPort+urlmap); } }); - const spacer = new TouchBarSpacer({ size: 'flexible' }); - const touchButton4 = new TouchBarButton({ label: 'Console', backgroundColor: '#910000', click: () => { createConsole(); } }); - var items = [ touchButton2 ]; - if (editable) { items.push(touchButton1) } + var items = [ touchButton1 ]; + if (editable) { items.push(touchButton2) } if (showMap) { items.push(touchButton3) } if (editable) { - items.push(spacer); + items.push(new TouchBarSpacer({ size: 'flexible' })); items.push(touchButton4); } - const mainTouchBar = new TouchBar({ items: items }); - - mainWindow.setTouchBar(mainTouchBar); + // Only bother to add buttons if more than one + if (items.length != 1) { + const mainTouchBar = new TouchBar({ items: items }); + mainWindow.setTouchBar(mainTouchBar); + } } // Start the app full screen diff --git a/merger.js b/merger.js index 9ff06b9..62ca180 100755 --- a/merger.js +++ b/merger.js @@ -22,8 +22,8 @@ if (process.argv.length === 3 ) { app = require(arg); } } - else { - app = require(path.join(arg, "package.json")); + else { + app = require(path.join(arg, "package.json")); dn = arg; } } @@ -40,12 +40,12 @@ const merge = { pkg.dependencies = merge; // Try to get flow file name from package.json setiings if (app.hasOwnProperty("node-red") && app["node-red"].hasOwnProperty("settings") && app["node-red"].settings.hasOwnProperty("flowFile") ) { - pkg.NRelectron.flowFile = app["node-red"].settings.flowFile; + pkg.NRelectron.flowFile = app["node-red"].settings.flowFile; } // or the npm scripts if there is a run command else if (app.hasOwnProperty("scripts") && app.scripts.hasOwnProperty("start")) { pkg.NRelectron.flowFile = app.scripts.start.split(' ').pop(); } // or the command line if the user gave us a name - or just guess flow.json. -else { +else { pkg.NRelectron.flowFile = flowfile || "flow.json"; } @@ -73,7 +73,7 @@ fs.copyFile(path.join(arg, creds), path.join("./", creds), (err) => { else { console.log('Copied creds file - '+creds); } }); -// Finally re-write th new package.json +// Finally re-write the new package.json fs.writeFile("./package.json", JSON.stringify(pkg, null, 4), 'utf8', function (err) { if (err) { console.log("Failed to re-write package.json file."); } else { diff --git a/package-template.json b/package-template.json index a58b001..13ad2b8 100644 --- a/package-template.json +++ b/package-template.json @@ -11,7 +11,7 @@ "kioskMode": false, "addNodes": true, "flowFile": "electronflow.json", - "start": "editor" + "start": "dashboard" }, "scripts": { "pack": "electron-builder --dir", From c2ab01aa0bc295ee8fe58689d612654e7e675b19 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Thu, 15 Oct 2020 14:25:30 +0100 Subject: [PATCH 099/127] Bump to Node-RED 1.2.0 --- .gitignore | 2 +- main.js | 4 ++-- package-template.json | 6 +++--- package.json | 6 +++--- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 2c41b3f..8cfcfe9 100644 --- a/.gitignore +++ b/.gitignore @@ -3,7 +3,7 @@ dist/* lib/* node_modules logs -.config.json +.config.* .electronflow* .sessions.json *darwin-x64* diff --git a/main.js b/main.js index 0624ce3..92290fc 100755 --- a/main.js +++ b/main.js @@ -108,10 +108,10 @@ else { store.clear(); } flowfile = store.get('electronFlow',flowfile); var myFlow; -try { myFlow = fs.readFileSync(flowfile) } +try { myFlow = fs.readFileSync(flowfile).toString() } catch(e) { myFlow = []; } if (urlStart == urlmap && myFlow.indexOf("worldmap") == -1) { urlStart = urledit; } -if (urlStart == urldash && myFlow.indexOf("ui-base") == -1) { urlStart = urledit; } +if (urlStart == urldash && myFlow.indexOf("ui_base") == -1) { urlStart = urledit; } myFlow = null; // console.log("CWD",process.cwd()); diff --git a/package-template.json b/package-template.json index 13ad2b8..7594c4f 100644 --- a/package-template.json +++ b/package-template.json @@ -1,6 +1,6 @@ { "name": "electron_node_red", - "version": "1.1.3", + "version": "1.2.0", "description": "Electron Node-RED application starter kit for development", "main": "main.js", "NRelectron": { @@ -29,7 +29,7 @@ "electron-is-dev": "^1.2.0", "electron-store": "^6.0.0", "express": "^4.17.1", - "node-red": "1.1.3" + "node-red": "1.2.0" }, "keywords": [ "electron", @@ -47,7 +47,7 @@ "homepage": "https://github.com/dceejay/electron-node-red#readme", "devDependencies": { "electron": "~10.1.3", - "electron-builder": "^22.8.1" + "electron-builder": "^22.9.1" }, "build": { "appId": "com.electron.node-red-app", diff --git a/package.json b/package.json index 051a945..3a1b187 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "electron_node_red", - "version": "1.1.3", + "version": "1.2.0", "description": "Electron Node-RED application starter kit for development", "main": "main.js", "NRelectron": { @@ -29,7 +29,7 @@ "electron-is-dev": "^1.2.0", "electron-store": "^6.0.0", "express": "^4.17.1", - "node-red": "1.1.3", + "node-red": "1.2.0", "node-red-contrib-play-audio": "*", "node-red-contrib-web-worldmap": "*", "node-red-dashboard": "*", @@ -54,7 +54,7 @@ "homepage": "https://github.com/dceejay/electron-node-red#readme", "devDependencies": { "electron": "~10.1.3", - "electron-builder": "^22.8.1" + "electron-builder": "^22.9.1" }, "build": { "appId": "com.electron.node-red", From bf2ad5649121facef03f4d86cfa1b1b72e91e2a3 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Mon, 19 Oct 2020 22:11:56 +0100 Subject: [PATCH 100/127] update to 1.2.2 --- main.js | 10 +++++----- package.json | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/main.js b/main.js index 92290fc..11e0b95 100755 --- a/main.js +++ b/main.js @@ -355,7 +355,7 @@ function createConsole() { //conWindow.webContents.openDevTools(); const touchButton5 = new TouchBarButton({ label: 'Clear Log', - backgroundColor: '#910000', + backgroundColor: '#640000', click: () => { logBuffer = []; conWindow.webContents.send('logBuff', logBuffer); } }); const consoleTouchBar = new TouchBar({ @@ -429,25 +429,25 @@ function createWindow() { const touchButton1 = new TouchBarButton({ label: 'Dashboard', - backgroundColor: '#910000', + backgroundColor: '#640000', click: () => { mainWindow.loadURL("http://localhost:"+listenPort+urldash); } }); const touchButton2 = new TouchBarButton({ label: 'Editor', - backgroundColor: '#910000', + backgroundColor: '#640000', click: () => { mainWindow.loadURL("http://localhost:"+listenPort+urledit); } }); const touchButton3 = new TouchBarButton({ label: 'Map', - backgroundColor: '#910000', + backgroundColor: '#640000', click: () => { mainWindow.loadURL("http://localhost:"+listenPort+urlmap); } }); const touchButton4 = new TouchBarButton({ label: 'Console', - backgroundColor: '#910000', + backgroundColor: '#640000', click: () => { createConsole(); } }); diff --git a/package.json b/package.json index 3a1b187..b75692a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "electron_node_red", - "version": "1.2.0", + "version": "1.2.2", "description": "Electron Node-RED application starter kit for development", "main": "main.js", "NRelectron": { @@ -29,7 +29,7 @@ "electron-is-dev": "^1.2.0", "electron-store": "^6.0.0", "express": "^4.17.1", - "node-red": "1.2.0", + "node-red": "1.2.2", "node-red-contrib-play-audio": "*", "node-red-contrib-web-worldmap": "*", "node-red-dashboard": "*", From 5ade1c9b6d5c7894ed21a0015d7b7a1a03a48383 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Tue, 17 Nov 2020 22:13:05 +0000 Subject: [PATCH 101/127] bump to 1.2.4 --- main.js | 1 + package.json | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/main.js b/main.js index 11e0b95..e8be469 100755 --- a/main.js +++ b/main.js @@ -135,6 +135,7 @@ ipc.on('clearLogBuffer', function() { logBuffer = []; }); // Create the settings object - see default settings.js file for other options var settings = { uiHost: "localhost", // only allow local connections, remove if you want to allow external access + uiPort: listenPort, httpAdminRoot: "/red", // set to false to disable editor and deploy httpNodeRoot: "/", userDir: userdir, diff --git a/package.json b/package.json index b75692a..2284ae9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "electron_node_red", - "version": "1.2.2", + "version": "1.2.4", "description": "Electron Node-RED application starter kit for development", "main": "main.js", "NRelectron": { @@ -29,7 +29,7 @@ "electron-is-dev": "^1.2.0", "electron-store": "^6.0.0", "express": "^4.17.1", - "node-red": "1.2.2", + "node-red": "1.2.4", "node-red-contrib-play-audio": "*", "node-red-contrib-web-worldmap": "*", "node-red-dashboard": "*", @@ -53,7 +53,7 @@ }, "homepage": "https://github.com/dceejay/electron-node-red#readme", "devDependencies": { - "electron": "~10.1.3", + "electron": "~10.1.5", "electron-builder": "^22.9.1" }, "build": { From b84f3774d3ea8aeb6769e297758884637367268a Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Tue, 17 Nov 2020 23:27:03 +0000 Subject: [PATCH 102/127] bump to v1.2.5 --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 2284ae9..ea3cdf1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "electron_node_red", - "version": "1.2.4", + "version": "1.2.5", "description": "Electron Node-RED application starter kit for development", "main": "main.js", "NRelectron": { @@ -29,7 +29,7 @@ "electron-is-dev": "^1.2.0", "electron-store": "^6.0.0", "express": "^4.17.1", - "node-red": "1.2.4", + "node-red": "1.2.5", "node-red-contrib-play-audio": "*", "node-red-contrib-web-worldmap": "*", "node-red-dashboard": "*", From 115dd4ffe6b1e9aaa785051e72135979f9c16dff Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Tue, 17 Nov 2020 23:44:04 +0000 Subject: [PATCH 103/127] remove travis job (wasn't doing anything useful) --- .travis.yml => .travis.bak | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .travis.yml => .travis.bak (100%) diff --git a/.travis.yml b/.travis.bak similarity index 100% rename from .travis.yml rename to .travis.bak From a757c7d2b18a05c4237e175a0a9df984eb123777 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Wed, 25 Nov 2020 21:27:20 +0000 Subject: [PATCH 104/127] bump to 1.2.6 --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index ea3cdf1..8213b66 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "electron_node_red", - "version": "1.2.5", + "version": "1.2.6", "description": "Electron Node-RED application starter kit for development", "main": "main.js", "NRelectron": { @@ -29,7 +29,7 @@ "electron-is-dev": "^1.2.0", "electron-store": "^6.0.0", "express": "^4.17.1", - "node-red": "1.2.5", + "node-red": "1.2.6", "node-red-contrib-play-audio": "*", "node-red-contrib-web-worldmap": "*", "node-red-dashboard": "*", From ac98d1cc3d747385e87dbc296de91dafdb4f5901 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Wed, 6 Jan 2021 14:20:39 +0000 Subject: [PATCH 105/127] bump to 1.27 --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 8213b66..369575a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "electron_node_red", - "version": "1.2.6", + "version": "1.2.7", "description": "Electron Node-RED application starter kit for development", "main": "main.js", "NRelectron": { @@ -29,7 +29,7 @@ "electron-is-dev": "^1.2.0", "electron-store": "^6.0.0", "express": "^4.17.1", - "node-red": "1.2.6", + "node-red": "1.2.7", "node-red-contrib-play-audio": "*", "node-red-contrib-web-worldmap": "*", "node-red-dashboard": "*", From 794b47c67e56cfaefdd9fbd3db8b99770268c7e1 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Sun, 31 Jan 2021 16:23:55 +0000 Subject: [PATCH 106/127] bump electron package dep and prevent multiple instances --- main.js | 24 ++++++++++++++++++++---- package.json | 4 ++-- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/main.js b/main.js index e8be469..da825ab 100755 --- a/main.js +++ b/main.js @@ -50,6 +50,9 @@ const BrowserWindow = electron.BrowserWindow; const Tray = electron.Tray; const { TouchBarButton, TouchBarSpacer } = TouchBar; +const gotTheLock = app.requestSingleInstanceLock() +if (!gotTheLock) { console.log("Second instance - quitting."); app.quit(); } + var RED = require("node-red"); var red_app = express(); @@ -123,7 +126,7 @@ console.log("FlowFile :",flowfile); // Keep a global reference of the window objects, if you don't, the window will // be closed automatically when the JavaScript object is garbage collected. -let mainWindow; +let mainWindow = null; let conWindow; let tray; let logBuffer = []; @@ -496,9 +499,22 @@ function createTray() { } // Called when Electron has finished initialization and is ready to create browser windows. -app.on('ready', () => { - createTray() - createWindow() +// app.on('ready', () => { +// createTray() +// myWindow = createWindow() +// }) + +app.whenReady().then(() => { + createTray(); + createWindow(); +}) + +app.on('second-instance', (event, commandLine, workingDirectory) => { + // Someone tried to run a second instance, we should focus our window. + if (mainWindow) { + if (mainWindow.isMinimized()) { mainWindow.restore(); } + mainWindow.focus(); + } }) // Quit when all windows are closed. diff --git a/package.json b/package.json index 369575a..d2e9db0 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ }, "dependencies": { "electron-is-dev": "^1.2.0", - "electron-store": "^6.0.0", + "electron-store": "^7.0.0", "express": "^4.17.1", "node-red": "1.2.7", "node-red-contrib-play-audio": "*", @@ -53,7 +53,7 @@ }, "homepage": "https://github.com/dceejay/electron-node-red#readme", "devDependencies": { - "electron": "~10.1.5", + "electron": "~11.2.1", "electron-builder": "^22.9.1" }, "build": { From 2f6ce08129760e2bb367a2d364ed2b0f90843fcf Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Thu, 8 Apr 2021 17:19:18 +0100 Subject: [PATCH 107/127] Bump to NR 1.3.1 and other latest packages --- package.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index d2e9db0..ee9726e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "electron_node_red", - "version": "1.2.7", + "version": "1.3.1", "description": "Electron Node-RED application starter kit for development", "main": "main.js", "NRelectron": { @@ -26,10 +26,10 @@ "url": "git+https://github.com/dceejay/electron-node-red.git" }, "dependencies": { - "electron-is-dev": "^1.2.0", - "electron-store": "^7.0.0", + "electron-is-dev": "^2.0.0", + "electron-store": "^7.0.3", "express": "^4.17.1", - "node-red": "1.2.7", + "node-red": "1.3.1", "node-red-contrib-play-audio": "*", "node-red-contrib-web-worldmap": "*", "node-red-dashboard": "*", @@ -53,8 +53,8 @@ }, "homepage": "https://github.com/dceejay/electron-node-red#readme", "devDependencies": { - "electron": "~11.2.1", - "electron-builder": "^22.9.1" + "electron": "~12.0.2", + "electron-builder": "^22.10.5" }, "build": { "appId": "com.electron.node-red", From d85c966e895a6c4a8fc8a521c5b718554dfdfc73 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Tue, 13 Apr 2021 14:25:21 +0100 Subject: [PATCH 108/127] bump to 1.3.2 and enable ExternalModules --- main.js | 1 + package.json | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/main.js b/main.js index da825ab..43fcf47 100755 --- a/main.js +++ b/main.js @@ -151,6 +151,7 @@ var settings = { palette: { editable:addNodes } }, // enable projects feature functionGlobalContext: { }, // enables global context - add extras ehre if you need them + functionExternalModules: true, logging: { websock: { level: 'info', diff --git a/package.json b/package.json index ee9726e..a3d4367 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "electron_node_red", - "version": "1.3.1", + "version": "1.3.2", "description": "Electron Node-RED application starter kit for development", "main": "main.js", "NRelectron": { @@ -29,7 +29,7 @@ "electron-is-dev": "^2.0.0", "electron-store": "^7.0.3", "express": "^4.17.1", - "node-red": "1.3.1", + "node-red": "1.3.2", "node-red-contrib-play-audio": "*", "node-red-contrib-web-worldmap": "*", "node-red-dashboard": "*", From 95b7febe65140dacf3f7b43183cc4780a18d0e56 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Tue, 20 Apr 2021 15:21:53 +0100 Subject: [PATCH 109/127] bump to 1.3.3 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a3d4367..0b39ea2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "electron_node_red", - "version": "1.3.2", + "version": "1.3.3", "description": "Electron Node-RED application starter kit for development", "main": "main.js", "NRelectron": { From f88f8d069b2c2cfd707313afcaadc09de19ee2d1 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Thu, 29 Apr 2021 14:51:26 +0100 Subject: [PATCH 110/127] Bump for 1.3.4 --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 0b39ea2..86b7773 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "electron_node_red", - "version": "1.3.3", + "version": "1.3.4", "description": "Electron Node-RED application starter kit for development", "main": "main.js", "NRelectron": { @@ -29,7 +29,7 @@ "electron-is-dev": "^2.0.0", "electron-store": "^7.0.3", "express": "^4.17.1", - "node-red": "1.3.2", + "node-red": "1.3.4", "node-red-contrib-play-audio": "*", "node-red-contrib-web-worldmap": "*", "node-red-dashboard": "*", From 7695a1d89d4fde7cfdbdac50d16c1c241a1b4bcf Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Tue, 18 May 2021 22:25:42 +0100 Subject: [PATCH 111/127] Bump to 1.3.5 --- electronflow.json | 6 ++---- package.json | 10 +++++----- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/electronflow.json b/electronflow.json index 87986e8..c555e0a 100644 --- a/electronflow.json +++ b/electronflow.json @@ -140,7 +140,6 @@ { "id": "87356b62.92e3d8", "type": "ui_group", - "z": "", "name": "Text to Speech", "tab": "52a903f3.ad56fc", "order": 5, @@ -151,7 +150,6 @@ { "id": "c75ad4f0.0cede8", "type": "ui_group", - "z": "", "name": "Map", "tab": "52a903f3.ad56fc", "order": 3, @@ -171,8 +169,8 @@ "format": "

Welcome to the Node-RED Dashboard

\n

On the right you will see a graph and a chart logging data from the sliders underneath.

", "storeOutMessages": false, "fwdInMessages": false, - "x": 93, - "y": 45, + "x": 100, + "y": 40, "wires": [ [] ] diff --git a/package.json b/package.json index 86b7773..33325e1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "electron_node_red", - "version": "1.3.4", + "version": "1.3.5", "description": "Electron Node-RED application starter kit for development", "main": "main.js", "NRelectron": { @@ -27,9 +27,9 @@ }, "dependencies": { "electron-is-dev": "^2.0.0", - "electron-store": "^7.0.3", + "electron-store": "^8.0.0", "express": "^4.17.1", - "node-red": "1.3.4", + "node-red": "1.3.5", "node-red-contrib-play-audio": "*", "node-red-contrib-web-worldmap": "*", "node-red-dashboard": "*", @@ -53,8 +53,8 @@ }, "homepage": "https://github.com/dceejay/electron-node-red#readme", "devDependencies": { - "electron": "~12.0.2", - "electron-builder": "^22.10.5" + "electron": "~12.0.8", + "electron-builder": "^22.11.4" }, "build": { "appId": "com.electron.node-red", From 00c2dbc77e66326de750d94f16ce31eb359e34cf Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Thu, 15 Jul 2021 09:05:21 +0100 Subject: [PATCH 112/127] bump --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 33325e1..c2f1cac 100644 --- a/package.json +++ b/package.json @@ -53,8 +53,8 @@ }, "homepage": "https://github.com/dceejay/electron-node-red#readme", "devDependencies": { - "electron": "~12.0.8", - "electron-builder": "^22.11.4" + "electron": "^12.0.13", + "electron-builder": "^22.11.7" }, "build": { "appId": "com.electron.node-red", From 79fda2f91eb97ae3704f0d90be88de2599546143 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Tue, 20 Jul 2021 16:49:41 +0100 Subject: [PATCH 113/127] bump for NR v2.0.1 --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index c2f1cac..0681bcc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "electron_node_red", - "version": "1.3.5", + "version": "2.0.1", "description": "Electron Node-RED application starter kit for development", "main": "main.js", "NRelectron": { @@ -29,7 +29,7 @@ "electron-is-dev": "^2.0.0", "electron-store": "^8.0.0", "express": "^4.17.1", - "node-red": "1.3.5", + "node-red": "2.0.1", "node-red-contrib-play-audio": "*", "node-red-contrib-web-worldmap": "*", "node-red-dashboard": "*", From 02e95ee9e957f94355c90aff561c0c07e0a8ccb9 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Thu, 22 Jul 2021 17:31:48 +0100 Subject: [PATCH 114/127] bump to 2.0.2 --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 0681bcc..c5751f1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "electron_node_red", - "version": "2.0.1", + "version": "2.0.2", "description": "Electron Node-RED application starter kit for development", "main": "main.js", "NRelectron": { @@ -29,7 +29,7 @@ "electron-is-dev": "^2.0.0", "electron-store": "^8.0.0", "express": "^4.17.1", - "node-red": "2.0.1", + "node-red": "2.0.2", "node-red-contrib-play-audio": "*", "node-red-contrib-web-worldmap": "*", "node-red-dashboard": "*", From ea3c778931ab30e466d27d65f3fda70073844c7d Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Fri, 23 Jul 2021 15:46:40 +0100 Subject: [PATCH 115/127] bump for 2.0.3 --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index c5751f1..6daa347 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "electron_node_red", - "version": "2.0.2", + "version": "2.0.3", "description": "Electron Node-RED application starter kit for development", "main": "main.js", "NRelectron": { @@ -29,7 +29,7 @@ "electron-is-dev": "^2.0.0", "electron-store": "^8.0.0", "express": "^4.17.1", - "node-red": "2.0.2", + "node-red": "2.0.3", "node-red-contrib-play-audio": "*", "node-red-contrib-web-worldmap": "*", "node-red-dashboard": "*", From 6acdda677b35afc2de21f35e2787f0833de17d8f Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Wed, 28 Jul 2021 12:59:28 +0100 Subject: [PATCH 116/127] bump to 2.0.4 --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 6daa347..4e74ecf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "electron_node_red", - "version": "2.0.3", + "version": "2.0.4", "description": "Electron Node-RED application starter kit for development", "main": "main.js", "NRelectron": { @@ -29,7 +29,7 @@ "electron-is-dev": "^2.0.0", "electron-store": "^8.0.0", "express": "^4.17.1", - "node-red": "2.0.3", + "node-red": "2.0.4", "node-red-contrib-play-audio": "*", "node-red-contrib-web-worldmap": "*", "node-red-dashboard": "*", From 80b08506e604b5e3656c38e67af93eacd6f9a0c3 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Thu, 9 Sep 2021 23:46:34 +0100 Subject: [PATCH 117/127] bump to electron 14 --- main.js | 8 +++++--- package.json | 8 ++++---- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/main.js b/main.js index 43fcf47..43a5946 100755 --- a/main.js +++ b/main.js @@ -343,7 +343,8 @@ function createConsole() { autoHideMenuBar: true, // titleBarStyle: "hidden", webPreferences: { - nodeIntegration: true + nodeIntegration: true, + nativeWindowOpen: true } }); conWindow.loadURL(url.format({ @@ -381,7 +382,8 @@ function createWindow() { // titleBarStyle: "hidden", kiosk: kioskMode, webPreferences: { - nodeIntegration: false + nodeIntegration: false, + nativeWindowOpen: true } }); @@ -538,7 +540,7 @@ if (process.platform === 'darwin') { app.setAboutPanelOptions({ applicationVersion: pkg.version, version: pkg.dependencies["node-red"], - copyright: "Copyright © 2020 "+pkg.author.name, + copyright: "Copyright © 2021 "+pkg.author.name, credits: "Node-RED and other components are copyright the JS Foundation and other contributors." }); // Don't show in the dock bar if you like diff --git a/package.json b/package.json index 4e74ecf..f55a875 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "electron_node_red", - "version": "2.0.4", + "version": "2.0.6", "description": "Electron Node-RED application starter kit for development", "main": "main.js", "NRelectron": { @@ -29,7 +29,7 @@ "electron-is-dev": "^2.0.0", "electron-store": "^8.0.0", "express": "^4.17.1", - "node-red": "2.0.4", + "node-red": "2.0.6", "node-red-contrib-play-audio": "*", "node-red-contrib-web-worldmap": "*", "node-red-dashboard": "*", @@ -53,13 +53,13 @@ }, "homepage": "https://github.com/dceejay/electron-node-red#readme", "devDependencies": { - "electron": "^12.0.13", + "electron": "^14.0.0", "electron-builder": "^22.11.7" }, "build": { "appId": "com.electron.node-red", "productName": "Node-RED Electron", - "copyright": "Copyright © 2018,2020 D.Conway-Jones", + "copyright": "Copyright © 2018,2021 D.Conway-Jones", "buildDependenciesFromSource": true, "files": [ "**/*", From 09be6797e12b17a135eeb941501ff750808cb799 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Mon, 4 Oct 2021 21:05:28 +0100 Subject: [PATCH 118/127] tweak levels --- electron_node_red-v2.0.6.tgz | Bin 0 -> 325261 bytes package.json | 12 ++++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 electron_node_red-v2.0.6.tgz diff --git a/electron_node_red-v2.0.6.tgz b/electron_node_red-v2.0.6.tgz new file mode 100644 index 0000000000000000000000000000000000000000..116715d935b5834bcc7f7b4d52a77d736aa57091 GIT binary patch literal 325261 zcmV)3K+C@$iwFP!000006YPBlKoeKoc-RnzfQWz~M?eV}LK4DO%N7&`8BSC#$ps=I zi5Uz<%TRHP*1B6!aW87E)v7JSU3aT()hdp08Flm0Dp?mHw=CnBgqGn5`h&7s}&a(rw?TFRg?vC*-K@qK&}QwGKdvW2)Xmk1=Jgix)N z%i3xllbMtp7oXPAYXJg{L@FYbbOUsx5}AfVNJS_MBtin*70HEppj}I3atIlrlnCi` z)GvfuBvFFCECNcm~#|55_>~F|bjQm^zoB=tg3PDK#=IAV8Uq zW$Eb|0Jsq#mPiS#HxqosO0XOyp}+zP;xXSWWl5IIS9ePSZpFpNWcDi=loA&|rbNey zlHt*5;O{}H1ILuaCV~IcVw2-bw9sWl_tSo)?xe-1ri`J!ATH{^r9}^lO{Bi1W+o?t z)`K(S(=*1DM5m?>i65Sl2F6H_9aGXT5&TKYNX(2GQxXFo4^1CalAe*4lv+ae>FZ~R zX94CjA$4fn#E3wJQa%B(gvOuFAy%gct+L0pJ{9bzXo-qmW93xSCLbI|_}G2#^A1BZl_ui6jP7 zf>Cf4LB63W0{?>ENo6FYDndJmVN-NVETIbsv0O=v(FuP5281U-DehQ?10nEqxX|M7xCLW2?i`CNWzXef;TK`I#XU;Ot^ zT-YC7(F$njv1AY{$#f2*&1(puR7rrJXh6%m1fg@uJ| z91X*kD{}&+l3*YZlL_yj4!CSAju1;^5;Xu$#inbaVQ4X8V5(ePD#h{%Tn6JNOid{BRTyx{ zm{2Ygk#AwZ7h=Fsvw)WbF@#7XgtuARu3%e{LiJ$Lb4Ms z=wB(<Vg9sw%2@DsaUMMI4 z89-YqVE_%Z0D^d#92yW51Pf9YhARo`ixdIPg4n>j8X1g|g!24+UF5HAh!slIxnw`& zfNU&5u0(Kv*he7;5~HW8j^PxK7}{PK2o)8^l=zXa$_oi4OB>olAS5#KGYeD8F(D3^ z4%<<|G3$lyg_+JTspFT$453Izd1E&|FV zl^6QysSrmfB?W+r1q22OqGGg^060e5G|*zN?TMrT1vtp^AoFBM6-96iDE&ZsNLvMm zLhORNP?#$b<{B6Sz${pr0Gg>J3M7b?P>KO*w0Z&(K3pJIQr|!qS~eSMleRPH

p! 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 C<0MD` literal 0 HcmV?d00001 diff --git a/package.json b/package.json index f55a875..97fe439 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ }, "dependencies": { "electron-is-dev": "^2.0.0", - "electron-store": "^8.0.0", + "electron-store": "^8.0.1", "express": "^4.17.1", "node-red": "2.0.6", "node-red-contrib-play-audio": "*", @@ -53,7 +53,7 @@ }, "homepage": "https://github.com/dceejay/electron-node-red#readme", "devDependencies": { - "electron": "^14.0.0", + "electron": "^14.1.0", "electron-builder": "^22.11.7" }, "build": { @@ -66,6 +66,14 @@ { "from": "node_modules/@node-red/nodes/examples", "to": "node_modules/@node-red/nodes/examples" + }, + { + "from": "patch/registry/lib", + "to": "node_modules/@node-red/registry/lib" + }, + { + "from": "patch/util/lib", + "to": "node_modules/@node-red/util/lib" } ], "fileAssociations": [ From 26b8c68599e9f4eb4b95b59dc4311bd91f98416c Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Mon, 25 Oct 2021 16:49:44 +0100 Subject: [PATCH 119/127] bump --- package.json | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 97fe439..871f333 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "electron_node_red", - "version": "2.0.6", + "version": "2.1.2", "description": "Electron Node-RED application starter kit for development", "main": "main.js", "NRelectron": { @@ -29,13 +29,14 @@ "electron-is-dev": "^2.0.0", "electron-store": "^8.0.1", "express": "^4.17.1", - "node-red": "2.0.6", + "node-red": "2.1.2", "node-red-contrib-play-audio": "*", "node-red-contrib-web-worldmap": "*", "node-red-dashboard": "*", "node-red-node-base64": "*", "node-red-node-geofence": "*", "node-red-node-random": "*", + "node-red-node-rbe": "*", "node-red-node-smooth": "*" }, "keywords": [ @@ -53,8 +54,8 @@ }, "homepage": "https://github.com/dceejay/electron-node-red#readme", "devDependencies": { - "electron": "^14.1.0", - "electron-builder": "^22.11.7" + "electron": "^14.2.0", + "electron-builder": "^22.13.1" }, "build": { "appId": "com.electron.node-red", From bb6a2cfffe725ab4226b09e64a3bd48cdf0149a4 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Thu, 2 Dec 2021 09:57:34 +0000 Subject: [PATCH 120/127] bump --- package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 871f333..1799962 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "electron-is-dev": "^2.0.0", "electron-store": "^8.0.1", "express": "^4.17.1", - "node-red": "2.1.2", + "node-red": "2.1.4", "node-red-contrib-play-audio": "*", "node-red-contrib-web-worldmap": "*", "node-red-dashboard": "*", @@ -54,8 +54,8 @@ }, "homepage": "https://github.com/dceejay/electron-node-red#readme", "devDependencies": { - "electron": "^14.2.0", - "electron-builder": "^22.13.1" + "electron": "^14.2.2", + "electron-builder": "^22.14.5" }, "build": { "appId": "com.electron.node-red", From 0029993ba0c824c0ec41a75b7f8ea3f39b8cea31 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Thu, 2 Dec 2021 09:59:28 +0000 Subject: [PATCH 121/127] Update package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 1799962..42943c6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "electron_node_red", - "version": "2.1.2", + "version": "2.1.4", "description": "Electron Node-RED application starter kit for development", "main": "main.js", "NRelectron": { From b88c8ebb5b23979c13219013029156c836a8808e Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Tue, 30 Aug 2022 09:27:34 +0100 Subject: [PATCH 122/127] bump --- package.json | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 42943c6..9b996f0 100644 --- a/package.json +++ b/package.json @@ -28,8 +28,9 @@ "dependencies": { "electron-is-dev": "^2.0.0", "electron-store": "^8.0.1", - "express": "^4.17.1", - "node-red": "2.1.4", + "express": "^4.17.2", + "fs-extra": "^10.0.0", + "node-red": "3.0.2", "node-red-contrib-play-audio": "*", "node-red-contrib-web-worldmap": "*", "node-red-dashboard": "*", @@ -54,8 +55,8 @@ }, "homepage": "https://github.com/dceejay/electron-node-red#readme", "devDependencies": { - "electron": "^14.2.2", - "electron-builder": "^22.14.5" + "electron": "^15.0.0", + "electron-builder": "^23.3.3" }, "build": { "appId": "com.electron.node-red", From 91e6d22ca09a23c026063babe5c4f4e0fe5ebb6a Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Sat, 22 Oct 2022 18:38:46 +0100 Subject: [PATCH 123/127] bump version to stay in sync --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 9b996f0..88d12f9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "electron_node_red", - "version": "2.1.4", + "version": "3.0.2", "description": "Electron Node-RED application starter kit for development", "main": "main.js", "NRelectron": { @@ -38,7 +38,8 @@ "node-red-node-geofence": "*", "node-red-node-random": "*", "node-red-node-rbe": "*", - "node-red-node-smooth": "*" + "node-red-node-smooth": "*", + "node-red-node-tail": "*" }, "keywords": [ "electron", From 3abecac97377c8aa5dfa54e7c8dd1b42cf838876 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Tue, 13 Dec 2022 10:09:43 +0000 Subject: [PATCH 124/127] bump libraries --- main.js | 14 ++++++++------ package.json | 2 +- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/main.js b/main.js index 43a5946..44dfdc5 100755 --- a/main.js +++ b/main.js @@ -344,14 +344,16 @@ function createConsole() { // titleBarStyle: "hidden", webPreferences: { nodeIntegration: true, - nativeWindowOpen: true + nativeWindowOpen: true, + contextIsolation: false } }); - conWindow.loadURL(url.format({ - pathname: path.join(__dirname, urlconsole), - protocol: 'file:', - slashes: true - })) + // conWindow.loadURL(url.format({ + // pathname: path.join(__dirname, urlconsole), + // protocol: 'file:', + // slashes: true + // })) + conWindow.loadURL(path.join(__dirname, urlconsole)); conWindow.webContents.on('did-finish-load', () => { conWindow.webContents.send('logBuff', logBuffer); }); diff --git a/package.json b/package.json index 88d12f9..7deba21 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "electron-is-dev": "^2.0.0", "electron-store": "^8.0.1", "express": "^4.17.2", - "fs-extra": "^10.0.0", + "fs-extra": "^11.1.0", "node-red": "3.0.2", "node-red-contrib-play-audio": "*", "node-red-contrib-web-worldmap": "*", From 15fbafd63179b7297311d72051884bee863d41d9 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Tue, 23 Jan 2024 09:31:27 +0000 Subject: [PATCH 125/127] Bump some library versions temp remove isDev mode --- electron_node_red-v2.0.6.tgz | Bin 325261 -> 0 bytes main.js | 38 +++++++++++++++++------------------ package.json | 10 ++++----- 3 files changed, 24 insertions(+), 24 deletions(-) delete mode 100644 electron_node_red-v2.0.6.tgz diff --git a/electron_node_red-v2.0.6.tgz b/electron_node_red-v2.0.6.tgz deleted file mode 100644 index 116715d935b5834bcc7f7b4d52a77d736aa57091..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 325261 zcmV)3K+C@$iwFP!000006YPBlKoeKoc-RnzfQWz~M?eV}LK4DO%N7&`8BSC#$ps=I zi5Uz<%TRHP*1B6!aW87E)v7JSU3aT()hdp08Flm0Dp?mHw=CnBgqGn5`h&7s}&a(rw?TFRg?vC*-K@qK&}QwGKdvW2)Xmk1=Jgix)N z%i3xllbMtp7oXPAYXJg{L@FYbbOUsx5}AfVNJS_MBtin*70HEppj}I3atIlrlnCi` z)GvfuBvFFCECNcm~#|55_>~F|bjQm^zoB=tg3PDK#=IAV8Uq zW$Eb|0Jsq#mPiS#HxqosO0XOyp}+zP;xXSWWl5IIS9ePSZpFpNWcDi=loA&|rbNey zlHt*5;O{}H1ILuaCV~IcVw2-bw9sWl_tSo)?xe-1ri`J!ATH{^r9}^lO{Bi1W+o?t z)`K(S(=*1DM5m?>i65Sl2F6H_9aGXT5&TKYNX(2GQxXFo4^1CalAe*4lv+ae>FZ~R zX94CjA$4fn#E3wJQa%B(gvOuFAy%gct+L0pJ{9bzXo-qmW93xSCLbI|_}G2#^A1BZl_ui6jP7 zf>Cf4LB63W0{?>ENo6FYDndJmVN-NVETIbsv0O=v(FuP5281U-DehQ?10nEqxX|M7xCLW2?i`CNWzXef;TK`I#XU;Ot^ zT-YC7(F$njv1AY{$#f2*&1(puR7rrJXh6%m1fg@uJ| z91X*kD{}&+l3*YZlL_yj4!CSAju1;^5;Xu$#inbaVQ4X8V5(ePD#h{%Tn6JNOid{BRTyx{ zm{2Ygk#AwZ7h=Fsvw)WbF@#7XgtuARu3%e{LiJ$Lb4Ms z=wB(<Vg9sw%2@DsaUMMI4 z89-YqVE_%Z0D^d#92yW51Pf9YhARo`ixdIPg4n>j8X1g|g!24+UF5HAh!slIxnw`& zfNU&5u0(Kv*he7;5~HW8j^PxK7}{PK2o)8^l=zXa$_oi4OB>olAS5#KGYeD8F(D3^ z4%<<|G3$lyg_+JTspFT$453Izd1E&|FV zl^6QysSrmfB?W+r1q22OqGGg^060e5G|*zN?TMrT1vtp^AoFBM6-96iDE&ZsNLvMm zLhORNP?#$b<{B6Sz${pr0Gg>J3M7b?P>KO*w0Z&(K3pJIQr|!qS~eSMleRPH

p! z6hwU-3?`Q%r2wxiYqfP&N^RMy^o-<;};HdC>GJ_0bU(auF&?jttp;Ac~Mjh_G!+A~aTvL4e*k zW~i%dMr##r5nt=jrZn&mLmoo{Li?ECVo)p>03#p>SXdJh$dUt~4ad=W-?=-W`GbAYp%H+00TqFuDx^3Nbln{Q zGwEto=#Dn9FwENw!+f1BM!|Bc5!-O*$hMFS3Nm0&Dh`eA{{ikW$to^XFpzSnsSpVO zs3H?0KTJX5YQQ}Zu7l2U@d5%xc@#h>kCuzYFwO%`fRF<7Oa2Wkid?BC8KbiU+CW(w z6(Tc3VFpP+@`xH0S16<~-IU7!(-D=S?b3oKl;RRVZ?dfca)64c6GQ6i?4}H8uS$h0 zB}hBPN??7cjE0aj!E%Cl}4h5s7i?((g^^HQNZhCf)-Y>BLjzg0tvWEn`-O(5$c&!Orb^b zBOgVoaMBB*)m##(kcmo0wVFaD8hRbmx;!eXBE17tQOG??R&W&+u!+D;O89it1--#M zQAC;oJ{wCT3@bxyG;}^*tha0}tq`z-5-PT7W{*0E@(@d4*a!yG03(Ow2u3vEU%AdB zH&2^M7v7E~W9d^NL=e4bqB!yoEi;KoG-cr{2;3tgHke*V&fS=`HIwt-caqdW5AHxU>rm3GB5#c zXi6)}B7PZkMWvoN;2|zTIi_Cdh&IUzjS>#)yawH9jT*8HBq9g}*6YyKpqsWS+$LR- zuz^0{{4GqU46F3oSM=Hn0wc8QK?^2M!KkOTo+nUERkb@KugT+5)d zGtgz`=sjTT{^d$mYbxVZtY=W=(&h$jP)XcEQ&0c_GC-19phKl703une? z0}BENNoYncnT0|7)tbx({6@h8nM&)5d?1I=C$BIIb%5xl;%*T$3)*^R+mkzCvcG%UT^h*7dw+)gTDSe?_U66y~QZBWhA1JG)=s+kwo zMcuHLj6!KBN6pGIx=f`-CeVx_!6@0$&IFLTsy+%-v9U}U@S-ZjG@=MDW0Ao07xic` zL87Z~6t|2b4T@O?Wvq5fSNcdFj@Yu0Lxy?+!|L;&NzJrj76Q{iV8|}W&{aguK9cVb zlB?lMy4f4#Uj%Y8DT8X8gVHj4sFmDWIY*CCULg z9TNOvt%jhCj3^?61|}XEUL8S{L=LVb=apLK9@@Ep5MT4>Gk@yqk!^fZJ9P#MG>LV%!_6}qGYR%%<-XDMx>_@?y+ZMXoEQlV@tPNG7o z6P&aaV?#mw3FuO+Qvw~Rf?_g(MVU8DvGisDaSsr9%GosV6q;v)r6P=!vP7!x#QbuA*W(GDiIxQ`FP)1UGI+l`VI4z%& zfJF})jtxi}6bHf`2{{8?1goPeJth)lS40M7QoRPDIw?-ssbY}iB2uA*NZH!N0%B$) zWhBS50M!QtBn?VPOB&QKeqj8d3>G#pJ}ov8Kp7pAl$?|?9EnguQpTY8baMGXw6>4b z=rq8v%;e}aEHyJNH6=Zs^tR+|p%l(60QePPPzjoKKr=IBR@huz0Oyo)g;D~;bA+%M zNEd8^|`$t)>*VQlc7 zA}M?+S%M2BQZ#v<1U)YX!XKF$!9n%`Zb?zG6Tk>EZG%z^HIoGdNNrd$kP$gj35dRg zgda;c+s$fL%GFhV{!reTWS{_R`cjDi1#}3w99WOg&0A1Is^JO*6`CDyTR%wa+01>w zq720{sRRwItq362;&6>~vl>2pn_3c}UmT!P5O8kYVD=d(6bNj|sRS6nkTqR6A*bz> zve2;R2H=L}Y9%>m4!yX}SHoH3mWeK+rbcIDG~^wLOv_9IyJ}c5V0JhsPC*6HmdZ(i z&5_GRg%YV@?Jy5GWw}Cu!zv++2{aIJF)op6l%zMprDBatAKV}(*v3i_I12!U*N`6M zz=R424wOR}ptmf({WLO1Wl5PwaYhv255;uEpE_uPijCo8;ce~p8%;qSzb7D zwBAu0D8Ak|i(P}~v-%?^xw$*C5A57ZZJekGwSs4l@s zlo!HGh)gAQ1Vi*R=va>*TG1kt8q9|1Vs7oU2rA-gZ$m?>H=_t%6zS+^QS=sFUnw#W z18q$h=1dYXX`i9OllqQmBi7MIM2JDULcReaV^JHWb6lB^ED;r4>!_$#XN^*+pDoi? zj)6@ESvgEr$s#JNb=_D{tPM8w2o*yL=xM48<_is^(I9Np!9ogf{Gd4KSKC?!_coSH zQ|mv|;-ljR#l#iH~sKJL-^$SU;cmVKmUo#8;hs*Hw==C zh=8>CI68f#*GPpFSHrr+C?;H_sfq{;l;r2IRk;#EDpIi}@<0JD0%Aio3qUW!w*!FM z`03w*8)U#8xUka?_S;XQPSgmf#Si*+s5`b;qb!D<=i~;8gak1bFYduh(CsmReZlV8 zs)8K9H+$6(25o}WE{5ceNNPDM)ob7%fkVE=2L7)7R{{l6xganf2S!;*Exq=m(@_>B zK{Xd0SJXs4Br-B}M7{tRpOF-!+NLsTgiZ2oU9R5L&4MBq}uRPnII!3MOP#i^()wJ4`X<8>m%g zWQ+|%4G_$ceZvJz$jN5ILXLPC`TdEXyI-4h^~!%^i(4ION2>1h{OOA z-rm?yB_J2+ZQ7Rugf8fa0O5!dbp_%b6icW;HU=CgKoRa6Lp45Kd6!%#2j5recEph( zpOz{LxdctL;c9w^QmA_w|1W`}RRk2iF2!dP^S2{gAI~#7aqO${aG{Gh)a2PVl zvHao=P?$(Z8}!gdD(FzuurIA1X;j+0oRWh8N~aCw6(`$3uId&8K>-6;BdDQ5Y1x7_ z1?Gz+Qn22W4^vVVt67mmzy1)uTL?*p>P!lSZtWSV(y%|62(b{i!T5O+xhfAz9h|jL z3p zool6&bv1p5h&)2wV8ty>zHX)iP#_;}7?DbgN&6M6U3yJbODKhdt_4Xw%*#miq8{ng z%-_G|u0(%-L)Vu}NEKRppmlzfSAw=xr{f0x2Cc%w6y#P)9jgQc@bQ54cs?+ixKcNF zB~j8xHk;_u`)Rn-g#wO^KnV0hYieLe!1PFjSe{H?C?!Bdg8~6m8-mP>hTc`7gz_^E zEy^tw!kYgZ6Ylmy7H;j-dl zI*4jO76hOCnK%cYDgnCeC)X>3L7zeq*6Iz=I*Eb|v_=YT2r8BXA}6$jRi%ORWzF_S z>)+KGXao07nrLK~frQ0qr3jPCg>ccdMy8hJ10OJ4Z)cJC!jMN>Bm!;pghG%}+iYRE zfb7{Yw9@uT#Y0N%P*lv!rfZXK(pI50n#CxrfYLxHm2#yDX&LFWipl*kDx@W_0;7ae z9|Xv>;RFf}L>blVpk%^+#*&K>$N)l1LH*VO8JS`G`vU?3VUWX*0wqyMea01Ps5GQS zVbKvKlmv3msN|gw)D?HW}TuT*POpgBb7!l^$}#mPT4xV@l0P@heg*aR7@z38zWWMhX#0M!2dE18R*X2nlix z6kH+)asp(%4ZIa87BI*_))ogoFkdCfM$iu>smelkMfo}8T|g}oI)NM}G4K%~$VPXv z*-Aw|*(w>5h^@uDg)jBu!EfJC{otSGwnmF=w3VM7?sB&@2B~T*)?8(*`I;lgSsvwUC`At#- zE$-8eLzj@%SPALQr4qniZ8rgAp^J2RBgvJEe@KPq+ChTrjs6bMQ5N{t0EAuuc|1h` zycdAXV*n6qkZ2Ho25Bg;k;PQnsRfe~S`s4zfkG2lNb9r_bt`sCWCij(fUv(mJgfki zIdYYyM7t& z0sq?R7gYThDaYS5#%rGc5W?kfgF-_>$^HNTo&WWZTonJ|9FZJkb-C*Nw?4)noc|TX z59Xuuze0leLA($y;C~Phf&c3N|HReXD=sBAV|Z#j$m{Z@ed)d7Kj;*!J`6&}=!>SY zdglTw-B-65uQv#(aWstyGW|XbjanQK#%TE%MhF2g4ln4#7#5Hj9S{rRMPQCWF2$hM z%=BR-#rJ`^uHoBiiCRkZ)fwqnQZRc5lJ{GT0^L?0MuCJVgj1#l9T!SO>fAoS*-C^& z0Q$nB9AAJ6I8>q!mxatc`UW$+J{-6ixk!?)$=A1lt2_*D7{W=`vh+9Lg%&OXkDZfD z$Z~+g?1S-wIgxENktl@Vp*Bxp`cfX$*N+XJq(OhCB$UlxEWnj$OCWe}3mzX>osIE7*ln0#_!JxOE6oJNUy(2UZTD2C*{y7*m`iVlqGip~+zY!pcBu zl$bFv8Fav4wC(^9o~;6uXZn)h$a7*eaO&Qdg)z__Mu&L7*8$YNQu00U789+lVZn_e zxF6Q1Z~OSb7Jm^V*b{rKTq0vKdJB|+eOm$B;yVQ{>T94X=k?)bD>SNHCTi3M5yco2 zHIkAF&{wYvfS=_1s$7X!&Gd_GLBO|;GQ9qR_!?5Icc7uR_YTzC!``qP5Udsh^T5c* zl{pew1SgUKQwcdP>ch~hCDV_A8JG_-uvFB0@N)pFBNj*aCKA#DLJdM!Y!IO#0AHfv zu6`D#yAM)TT&4;Dwo4+8#L&Ac$#^0nT%nFMG*BW*0VV+;Kwt^D-IW|n06cyUs_=ru zQ7TtPc!zVL%ZkKMVGgKXgjiBUh$2DS2+0z`4N(-q<^8~hMu3(*Kts4(L6#E{1|Bf_ z_Lj&LFj6j7z}_`#HQF7o#SBnE9f8)NL}Da)0+eL0!HOaV(0-`~G>e7$g#nd=gcE|e zJ+BW#XA}V8A_M#O4g~nLfgLFs)OZwRd41OJQv|ADLJ@vs4ENe3sx{_i^mmc*syLBotT4{2qz zYTf*t;kMtR>WYjuPny-;^Y-=+oJdZ0XwM7QH3~F5Mfgu0N&8n$qV4zq+W(Wz?!T+m zMcMyWh2OV0M#uG^pkRJT2K8~6;Fl;6f0!t5?iQ0My!eCenfa;dyZCW~PF=Cbpn~ z2v_F4E(yXz`Jv%|OoEQvQ6y+yX6g{hKgNPw_}2j*lr&_@P#Ir@p|;ILzD=C@F`?l> zoIl37<96-f+#yOxZqwm@^tLgA{gMT=HlMe`q+J0df3Y2dt_P@HjcN{1Ya!_nqBj6UjKlxlHX!iOi#Mc95W3zXK*)gv zz;iWT8wL@d8^q(ibr=N5ySzSY(DnAAcmpAM+mHa~nM0`m98r*Ht@Tdt02;4rNBX7$~!R?_kwF-rr(ze}k zA+AJui;@tv?dK@jfQ@pLL<>~(Xc(ZtP)XYGZ#r+Sn}lyGkwPs&Qbc6PRfj3Kt*3e z@IfY{BvLf$f$-SZ9As`d0mWVB{#>*HIlx zPq>&HP7uLDwt&D1aXZ3;2=ONMh&H9E{Srur62oa*Vw&C7)ed73>oQ=r(oC=5?F=nq za9f(;!y>)BB_>AX=SQei&B}f7;97-TN+xnJZjdy4E|WtEA-x@tI<;Yf!4S#SZLqgE zUm|OTLvcP{g!G!z?6#7~mlqHz($*9*c#;Zt%&J;a-k?FIOo9*$Y1X$;qn2ybEnm~9 zh!mMFHEszzc$%3J+r|T=lC32Y1heAMP=TSCkhgI{7~0GvlefjKfA{7IaSl(| z>UMaTNF3HOr2|P#2rrb^R^Q=a;UTR%;fI6@T16(_!e9YM6s!+|Mj1-1My=2wiW_nS z@{bqZQf+yhx2U(F;o+k2AZ{32ED8z>Zm;m2gKKjBl*#WQw!+iVC5 z<{Z2^yr|v)AM}Hmv{q=H!neXyugnuBpa6d2M8n6V<{2`iZMADxnmHUnFsEgqh~Z6y z5Fu^c7UDr+L1Asnkc!CRwj>C+$7^}7ZK>k6?F~AXo)9rNOaSDO9TF0Pw>c>T>$Btv zthXgS9mJX)Ne`zj;W50az*Q=Bu2R#6Dbh&?d2$?#9B^q~Gju`9p_V9G0!@|Un%xxS zw0WDF1`^`|1#+n-p9p9kL@MxNxPp&CmJOwH2u6Q+un(4`!f~Ohjkc7BQmK{AfmKL^ zZAk@}+fpimUdPrn`-U2d!@@&Fp+X)TSVBBFta;-1x~8dRCv8g?t`SM(|Ac8OkV}L_ zD=&+bDeN`L)-k>!oFfh;LPFUbV2bf}&?V!=zlyI;pj&tMXRI{;FX~x~9HvdVd|d;p zQWJ_c+~@1sxj&NVmVWY$B$~hlVxB-0$`}Tj?_a^cn&Fu;7~!Qh3lJ1Ti9u zfgDm6gM~qF2EOOxQUZR}D5c8tSy_xgcBcfq^5NiDsLjvP@1Wl`X`mZQINbdn54(4h<272L}n*K}2w{z<&dg_vew@oQVoUsS$$PxDD!7x zC+#kQc0wp9cu@NJYN{%7emP^mX^ z5S%bUSO|yD76%IiAeVk4Nov{2|4_Xi^A9Tao3i6=_-i7ZBM#$zlEI} z+bXnb&(HM5Yj*9;3jc3K)>=fkZOa-} zh5Iwo_Gfa;w$?lSp=7l^dDLoYg|xL0jF-#vTfeC-0ydL2sRsVAM9bUxcoAHt(c&)L z{hd$9prj+q)v9+@TTc|Yc12Rl<-G8TR1Q+(ww^%@+I;QlC(CxARz zN)%Bybtg$;95%l6S$mzc{bm2fm*ij64_NVVz_u4TAN|5R`L)CTmz*On z9iF|wt~}yCd7ggxr{se#C11Wse)3}Mug|8>n*CvQ^{kKfe6)T0)X#rexc}J3lV|sR zd#UoP7i-QwoBsIux<}9J>g!LOIPu;2^L3Y=9=-Cz*_(G7Z@;|o
zUR?O?&-CXeHkK@0{_Om-+L<{qDV;}o` z6>TzoN}3m~@7trH{bEoe&x_!sUoPPf3#SEJByPKD6n>)qR*zxXNN8{xBnO)-# zl#X9IBgv&ykj*f&dTy53#5M~kAM8JPnBt^Mon6qQi^jCmQJ)R{$#hl2t~l?WrU%bV z+`CIyL!0JgwjeF~y)~U*RV>POPG6LrmEz9pyMX(Zm)Xhp`@ZipA~<7IB+W0zxjs5} z>Wpo@%i?F3Zz|uU*=8&YDzE4@`_ueGGj4OT8;sxE=4jcJ?XdA8i{F=)O&e@fk>+gi za?L7Zvl;0lB{jEFr$NBVEunzeVrj}LzMZ8ClHcW1{;xIW6c zx^&>h?H5eHnf+;L;F0BrFvqek3M1v=K2fi(ly?nraIr935Jq#urzFOY461%mZ?Rai z_NtTYY|m@6dL5m5ZBFm2VM~aC!@m_e_$f}+nYm?^M(6rjhKuGU3LexgaLLA&mWGSM z%`65FdQxg)lX#?l_Oc&pV;ANweG*5v%}xDbfnBMq*vNL=q8lHi#NAxGK*6gkHL;gg zj$9b(G-F+7cb_NX6_Z9-tx5^Io_edMXvE_6^Ghb(&RKlpiu3K7>PyvYri^Dl?XkGD z;KBNomE|+mPLcj}n^>-zRO>$=Y)8ZfyRq!DSc_2&w`t~OL&CDQe)j0jby4EzrXJ?5 z>e7ZSRXaD{>l~I`Ae!&$g#9SF<<)EK%0YJZ@6Yt8>Gn#vyK3he@0~SAux3d?46P|E+g!ieXMPuD67IYc$jpuP4~&kkB)bataPyD?rr+{q}#Pau2vzJvv`)i z!pSCIzGL!YyDhKt>FC1_-9~NqjST%>-N02y4}9%7Q>r!});X@?+{nTJzEgT^*5hx9 zL#mMTeGgUd?83D72sz=!chYoKt)+2#btQGy;P9){axOjOEx)j3yiL&Ztt053ld%bwobt$5Lxu(&OO5?$>&)m1 zx}WKaC9}T!Y+4MxdgSS|d#BYs{&bscpY;SwpNy0V^sMKX%B?ScTD2t0FEz#3^7=?Q z$C+1K_kw<}aK&>U|J0P1&wrR%9n^)t{^ZM-y>{LI%A%)>=ZhQt%4;&C&Dc$zud-++ zuC*d_FHSw}_Ru=B;vPl4qmAu;Sy%UKeYM$1?>UynVf9bHms{|n>Mi@%HFTL($4EFl z#yIluzD}RZJNdidk4+P!pT#q#uxtd@c%rH6ncArVyH<7=+1GmvnLDZH122bEY`_23 zrjn1ZG`-wa8Q0^EQK^yos@=e*PrVLDnPxg&wMuA;Vql7?FRn3cvK0-)_3fujakao{ z-q2}IHK%9%w#>*nyDEy!7_6F*Sa13Bw0;f`#?A2kU1*TC&aR5Br9be!Oil8~ z{@mYn7Hv^xZzJpOnr+#4>PPiw_TUX)|7E|In=E;|*04Vveth5~=9EJhds;7lbTsdr z&$9Z}MELRH?};Pc`{2Q>b-iyUogAO$WvMsg<}@=}8g00t8E4Eep(#>#)j%^ook{bG zSs7L7e(`@VU&eql^%x1>9J6N6DZDsBL zUF;^OWgkpGeJwI<`G9pYVD=_Ft#-k#M3q+Bn}sPaomTT;aZKst;;BqaMWM}bz(ZGA>Irbr77n*GFYXnplXlQ|X{ zUk@>@6uB+Qw4&WRQ@8&tZCnZSl#S6?&Bn}Q_7e|$bMHi|wN;b7Ta(@Q?)2Wn9+cK! z`h4>br(87HyP0 z&kff-qwS`zo|6*sfHt2yXt??8ke$bGod=$~M*;nIk_ExRsl=;i2NJwDI; z3*);+8yeFdMsNGPr?rt~@8Di$+cqUElbXL8w#;Y@4WCENWYu024B6^b6_s~)i)VH1toK<-osk+qYt=WcuvlK)Zjl$I(bjes;2E=0Wk8dyQHs|r&t(q;3cf;+6 zM$j2wvtJq4INd$})OKHSc#G^kQhu&(zyD#nxJ&ZM2U7GMt`C*e8V_rT#ccH3}2ebC_=fCw?=GFL| zRucWfuAhb5tf+UN&HS*or^*$-l5K8enr(aUrn{>a}eAVwwF8!PwA8<5#S9kuBiFK)~o*VpJ zI6s$jIPf4XTD8}B{L#+clcpG(=k8@#3b7u>Uel(3E&MQdy=8y<&m7GI!bH2>zdJhA znD^eYm`*kYPwGb*JHCG@CdInMYCxZjvn*}yeW_4v*kkpA*}@)Y(uNt@W5LG8D{8Gh zp6fU0n&6`>H+N)@!?V5=o!K{e^^IL6Glp!tKYET$-}}F%+d5lUOs;SS)_Bs)1fFNI zho^r@oJZHrQ>Jv5O-S%hrU7HTU{(^ddsnwjUCpK^xR+agykm#+_ysVsc6M?Gp*4Ta z+Bl}|W|xg_w%g*|yL|GMWfyn<8L^(GPEL-Ozc+0>aIkcf%dOjPW`bA`7wfM-ws!dD zyGW)9@B=R{cX6`+KIq0zS)W;0E*gi0n8ue`Supy~3d8Fv2gT5`m!3U2#>|?=alE*) zp<=4q#h#%)<$s`$yLGuy+$jXGTP>XMdg|WIUclx+>@4eZb72Msb1%A+q=`8 zT#D{3&NHL2{az(Ku484J=lXirKU^~G+fi0SJ`Ta6U3Sh}H`wdIi_+T{!xx%882KW- zymZ<4ep`P$MKd5y-itnKEm%bjQncZY&OOQJu_ytDI`(}wUnYpUN1 ziMz2fM@(z5m?2vlXJN6+YQ2%FAR%r+&5-b;?`?Ek8MC^yXH*%jYyD8c+{NN*!JOUO zzb&KHe{|5t=-VzIJI`G>-k!B^+0sLs-?^Ms8M8jVsj9)kCggV`dS}6&SGRL+S~YE@ z{nTUXCi@i|sv7onKCw)?iyu~g*<$*d0cNv!KTS9=#nD;%U}?a{Jr5e~b2b>$J(ou& z?N`Pbt(eGI+{Cr=N-Y1#@7IaR#+E)ctVf3@m1OfQIjfT!f>?)E#vJln;U09Od!lLh}UmZHnRFog;G0i^og6f-`>awsSeF_~-)5ESdoq9O?_p7sl zF5RCzdy$t3osrRZr_H>PD;q3*)uS73GS*i;aay+G!IRr7=3-B8^*dD;ey8@mKJlKr=j6dXmv-N-T~QUY@!+CM z6K?MAc5>CPU#+PAtZCktRSlM`T2A@i&lb(Dn0z~Cn%DMOp%$Udo!nI&ZQXFDTcZPeif7i9rOe-BTm<%g?=P#j7T8y~eN7wcz8^Q$ zEbh^LPSs={>*%woznA;lJ)CwX?JCXc@H*#)?02)>y=-{vd-PiR&@91pmE)qr@qIVY z%*WVxyWrJb-H*+~%yV`K9K3cU^!%yTOtE0K^}#UA?fU6i2@9M}Ro@*p`pUt?bE9hGvUdZPH&BD&a*<9(`h zTIJ?w8(vb_vw&lZe%USTK0CLXkn%Ae08NHjkMAmHVnG9>NI7gBeUdB&qT)`fAIURk56a+R1{eG>%wQR z;{0q2il(^PGWn%5lXy&zDkd+{vujtEPD_?{a*>t*!|lErgweBx_;vT`w#BErEWyKV z*(aUc+y&vx__xKD1(axQ%e?Q;F*=&DPlKSBL-WFaJ>-uiw>=M>h8BLw^XtH8g zEzRijnVm~BpIP{S7gcVLWj(+WEa%v{a`@7s%8D5&kr_^lORLw$&wB1SjmxcgOA zR8XCNPakX3WSj6l3Pwflj3puYqj#LLy>Vi3-yoW8!~)AXEVDU+($vxoXV-PMbDuUs zRc2=FDK0VbZM->TtKYPxH4k$$D$@q0Y;dU>^5gmS&gRus6Eue_#}!r_{3_4U!q#>1 zvJt^Yt{53Nj=eBMvAfupcerp$|D}6OD(`-im};}$a{P~zjXXw&*f|-CqE~tve_8(! z56PeTsjA<_@5d)u+Pg-TmiD;VX`G!+cUDndX@&A=sc3yF_lTukKhHDoY$N9TYGr9aB}8?C}Zo4C?g|}1!7ZM=cP>y zt23XtET47k2rVk!+@-W`w&Sh!E=B#9W7n(BltsnN3L5m#$i#a6+3W8?vux_lS!haU zeYTjG_foyY)Pn9}UuQJXO(9(3M612%Ahk=nzRah{+t<;ZWnZ_dD8!0b@!6K|Zd6Zp z8^7K`-Mu!KR@|2!Rg+kgy=K|uh-=r@cyOxf)-I12VYIZmyV3Rc7c{uuT@$;W7G+!@ zyTdeVd|o`6?tJe2s;TQnkDpK5`*dlPndzpWnDHaNj`9Mb+J`!f(bu zdg5m*XdGB@*>AP&@3Wa9pIfRqH)q_Bc}8-JB5ZfukY^lwWqiEXEJehv3!k&2zTDQZ`J&&=4OKC8@iU+D~ zqV`=se%9;o0`GCzpBoQ-Rhehvxcqm(TV@eeq&QosspULthwwmaU{MD7VRqsx$ue{<~HS%IS}~zGLz0wn+}| z&St%C)tUIuRd&8uZ8qxEXEyX`bI!Mz#n7g5=LM%G8z--P?(g!2a*4eaFSpDl$I_(h zq|^!F$t&$A{NB*bu1pb-xXRj9yx-ey+W0v8D)G|9DPQhwnlW^_bC;Q=wJzBYXK+tl zbsiaH5;)0WmY`;p&9S0`z0Q^P58WT_dSTju&_VB6&ba)Zcee{J6>f>0EJ6>LVMi(} z-0nS`HSxJQCa+6Ou;a}odiyx%r!I{T**u3o@4v(^U&D zPU#Wvdf0vPT=Nw>jC}L6P2QP0|NSlMA9{V6IAFwwW8YuwRKrgCZlB2Lt9cFXLI+v3 z$>5&pOGY1w4pN0D=PDDIp4=g3Zh8{?tX@1an%2@zry1JmRrIsBb#{7VN^ax#lOr~4 zDoWle-m_>xSNDKDm#=mTjoqe-+!0c8(s$!dO_}TH)QMA*_w#{oHfEcwr}>j`dGS~ z&CJ6^xhbpS9Gjk(&_0@*HPw!J!YZkgFdU6rpIlt-c1WW zQuLc)+-Krbr=;U)y+_;K?U6ZRp5>f4&yba=(PzKvXJg}%`~B0XSR<#*=`l0HoK3A% z4^Nz_iVmL3a`&JgoV_X2t#VG>i{AIFf4=^WM;LF+=jT-)U9{**r_Et4**0czc;Lw0 z(;k^@Cb9P8$K$kCz4uIW+pRt0#vClAAcPcZTQV1;>lA7zNyjGKNDXC?_F11x+` zoA@U=jMB_c_HLMa>v$H&wsFOY6BtXFFuJFi8=q;HGHZr|@1wh2S2B`rELi%Y-+l|T ztnB(Siy0x`JN$NgXhX%5hc`VWan-4Hrk%0cx~UdJf?h3f;x{e2T;a1&VLaMtNVJKC zE2HV^RF@GP8aHu$^<}Fb^O^XJbo*U(M(nYctIdwGrp>7cpP%SGH$nY?W^6%wa<$4G zD~zKj_8cBFF_}?cKX-6{zw4&Xy??#(zW3NCO-ZB1KZ#l_NV6L5=)bFU^-}KzXT|C04}Zz@v-LJMn5unbV8izWX8Gg!O<~1w2Kav~x(2 z&}s>LDPvtXcIg#UlTv(*6R!rlROGSYsJE@Bf>XE6gjP3CzUiZH7H&;G!!e=HR5UDH z`%<#=W|#6Uh26J*^|ELF&WiOm1Yfygos*294Yuakfsv7x|6O+a% zHSU~YZ)8MUzbAIr{jFH7HT!VneTT>Xn31tLh8dZ4`DIfj{r+dzgE}+75*i(N7$bB3 za@u~{^4M5wj=l8ZfnIfY57%2-S4GkIm9wIZy*t;=wCS?#*mi4PT?uqnQ7T%~($e?w}oUa20^wFH{=k2lmoD=Po!^zR_zW8}_Oy_*{ z@f_dU9ZP&a{ZaL0KyK*c-n=oRLd{kWiTmi1%gjE(cJ3o*KR)cx>*@U~uYNdus=I(o|^3Z#HTcY{_XU6 zH21?tY?i1#bo-q||yyYBGX_1T{4eLc?k*2MeuXgsiK+=6ZXUfqt}a6NhYOyZnX z=kE9Ly%Xcl`2LcQm*3%7PoJANb2Uw$Znd->>)W(1(kmu`?R0VPM~sKj2|Zl5W4V)Q zii*l8v-fKg*DF>|ON*=B@8^88vF|u9p7dg_%w$J@ufk(4!_WBif5q_M{)^R>`Pjb2 zK{>1TEKwbfp5JEx-*l%*zf(P@vy9)n5-mP6yZdj!Q@Z$%ov!GoXsWJvc0KFixpz|j zx%#Way!Nj8aK9vO%XuHa&n8V#Tv^z-r)Yzp`$NZ0Gqx(16tBP9ib+$RuK39-I@aQ0ICi9*NTrDYap z*1f7X+ZwmBq2hT`m{+N@<7p#PJ5DWLX*D*r>m=`(+^f@V7zvn3@6VYlD&5@|POiB5 zIA@hLb1ifKjDXK>T`S?yr|-AnI=Nn%_stJQUFr6{>sG&KF)2*w^mKT!_x$yKekNrD z%ZHCKVkY`EsS{Q$S~I_2b!t>epNQ1UxyuJeR}>G~*;KV~+LZ^_E_Pe96l{wi%ko&;L)$ONcD^{cX`s>L^8?t% zPez=g^@u!WUt4GLMcvT79=%IT_x*Nt(|t3KUwVzJ>#}FUN1wX;Y_2_Y!+iHbTc1Vl zjYsyaJvQ!;P2j2R@s5qjJ;7MQ9l0tE#xLdv39-(-_k*`+DOUsgw7eAN?DTS@tl~r(cg>Fq;WeD(ozyjE`Dh z{+XG&t8w<6aUL$Erv6c7JssznZQtb)nHB><`>qlRI#3XXhE}Dbss0 z1*-QqT{Uv5qM2D{&)m6*KC)nnd*IsThbwL4a1*oaFP?vWXWHQjD_+@PMn6f5ao~yymUr>xGT$*Nah#vNyv8(jSbqz< zrm0Kg+-ar5`g`#lXt~yFm}aSESO}+dg%oG~{FRY$YW1SJ5&^sN2|cd|*LcvZI@)?- zKTgL3##Llp7srN+)99)t7cxV)_#GPdee1Hvh-L;m`ThPIM5Mu%Y&b2M;I@V`*z2Id zUUw?jY3smko|4V!l9QJUGgSrUiD3i$Q_2$jM^2nL(rJw`z}CZw{>zRX>$RgajyK|~%{OD2z85ZR^yFXe7qrRDY_@g`EDK-IU!aMaN*Fl%O893j2$y@MWu~{kJF3=IW`Q3lFp+tb}+9EJLu5s z_gPW(+%t!&82#*eNzyF)zf$)4@+?1XT2kjZ9-YdM9r-$LT4f)CWqrQWSO@oEA9wFu z9^;ZerLpghd#+s1%oO2;=M6^|#7!GJ((9mc|GS;fMfgQ+@8WD6KVrKBu_ODO@!*Tx zu(aw^cYm$8TvNWoan(n0Q)i8?JmQpgZ}APA!&9TC`|(%*GV6=D`;5l^t2KFNV=_uC zqa*iMI<3yx|LyT-LD@02l{J>pf{Jn1CcYY2Ke*BSe%HW)XD2`T4ZP_dS01 z8rS{Z=R{$>`7ffKjio1DEkDS$a{LIZcp>@bl~Hkgs!Ob`b4=lwsjKEJLt7nHYHq_)V z8vL-PBsjU>51CAC_a(FLC7cBdx13FF%p2o4zrmvW{@c+ObGsC04#`g_YxH53j9c&qcw1llyJiiS-f!IT_1dxd7RQve%#_{?=QD?Ic-g5oUS02n}KhgX# z^7d{`V#cc%yYBg}d3^dzrJ!lg`q{9~i1hINKqc@5XqCld?ti$jbW-#UnxEOa+$pPF ztv+2z9r|h5Rln<_$>>>JfpLdlhK)dBz=Q}VWhHObB&|qmz5vZOt0ODv2aVdVZd5-o z`8H=}FuyipoAYV*V7W*r<73oOT}`(0SDf73jTv6XN23kO z1Q>%Yz9T;!r&(FYBEZ@fTI4`&s$+!yD#Zgr?wKCya7eVd{8je(`k1@IS?lqO{>tS z)bh`7ibd%eZ2U2td|ZRQzIxIeYK8tl2#vaZ5pN8klpd@?xn3$$m{VsQfeJ>$t}IHg z>tSYWdp6pek68uFSj|!PJ_!(pl0n7b$c;0y)szCpeDH4Y0ys%N7<_cpitM}6}2zRZnun` zh>y5TPq$O-USGJMqOCJlHUcsL*-w-e+5T%LY+7=$3^}IvAk1o&en*J=w$8d~MN8u^ z*t|_Sr%_JXSwCxAGi+nyNEUAoMOfMa8{6K&A<2)Gl}Rs3Gbb*cn;Yh0Z|me_Yn#82 zooTUg<04->GZKCq-Yjv&Bp1i>b^9IXct>-p4{vU;+}^aa&VSF^{kGQYHZ)k14!4tb zdDU(kajn_B#n)lqe(TP4Io=Ld7uq+Hvdi3v9oM?H6JOoBbD*<({YSfmX9=^*VvAkS zyPyMFcF(5Ub!<^SnsGLd@Z9gk98ZqIKz)W|e7SA@Akzm+3N{T|IP#;S_LY>nD0f51 z%e=fYxIlX(L2oNHwd;Y?@A9?O2Op-Z=U-g&dP-CmgD0D}kZ3o^e7(^I&pW2u zC|5nqed~-Cd%m2q(_wDyx- zE&h|#k!y@IQfjrR=H@YLOkBPZw1_F1wd-eB#Xj3K3EfCvNlyw^tM#vjwyxil)>^%4 z>)f;^<-xh_9!0fFE_SLI^D3x18=kx<53^TIYTdTzTfwTjvrZP(>dTvw@*=&ZUY^=`Z_@)7hyx4NSXnhhTv{(SelP0Na^tv1IobGCbI)K-}O=7>h}Oq*8K zGlJ{}3f}AM2J45J zXx6#CT@f{=JAtq))9EHGaDQm7vxdIEe>Ah=!|OQjpzM2Brdl_BDx=Oj@L0LxwY%H8 zARD)@1?9)?IW^3jbMNM$qh=FK#T(4NEu(|q83<((eLEvW>p=%oKTmgXK;IqO9lVM*U|(dsOY|V zS-qOm&eY{EE_=E{?%1_~7~KjK+6D4doKnhvT~2-p-M7a~;}`fjY}itqpZ@4-a@|8=ag(TkMCQ!7>muDx_?MRf~rvgS>n<0U^F@{WWMRXE0G3K zHLv#X!DyEWtae2E#e7vqDUvrTtJNK-TBq$#V;iEje)fwRcFsAQl0)1uWYmmO*`pqP zh-Rbsfa9jf3F^rmj04lQJ8?sfb+W?>&z(FQzB_H;X3BnceeuLyh6&f|k3QM|eUVFc zX7V)0JnMpj84dvscII|=^XEm4a&;XwYN;19zi@*s*VnMfT^s?Ak9~ ztT8X|xPIg2e#g7@)=Ruy4n4VKWBH)N>($K@Z`!-6pZV0|KF``dtzglNW4Pa_t$Q&S zZWXg{&mhcdU2N)@xEf5Lmuk3^-A*l`xXoo{l?;p<2Rk+kqXt9KFh!2`+GTQ zTKkzT_ER>K=S9cd+Ft~hFi=A`D_LY)f_ zs}@xqRaDc4-WzG$=PHqXJr> zpxyl&9c7?VX}UoD#h1$L&dNHH%gMEqK0V69{J)Axx?}kC@lhhkGroN}C@=**d zN}v*b+Ob;2G`F*9aTE{YD`t%BtU(!5r_aC+qej$L4$tK`hZ$>{LQIE4pOZV}Z!1ukhu>4sIjZd``pWA-h- zsQIRT$gH|-6@QIvuZ?Oi%lV3!k8!LRg0Ab1O2d?IHU)0}#WqSdcq6-635~g4ZTdB9 zIjSb!&Wl@6>aaLfK((W1t#nG_s_;5)G@TA5njVKW3!6GEbHX_^%7_PTGj^yT?_X}O z>OFGSG|b=vv&GdDTU6rAf$e&D`Uf3Yti$d-IaqM{Hk%l(m!tcxX?>Y8nZ7CeZnz>= zDWZ!Hs~kRBd6+@D4pzZmu=9bMdKbl*=p8spq1L_&^<>RhMY2-i!>#puHRm_|Zc-Rj zUD~LyVorOvmpOE{?p5Wn6z{u6ygRO1=H5Hq-fDF2M4v1jpPjSumYtyhQx&xmqoUwa zC%|av3Yy-#Ei3hS(f;rkUwNRxy$hcfMF+h=YZt6H#2OVZf?Wr)05gnz)T4G6=QY>l z$D^2%`B#JHyj;Wo^{xGw5~?dl#Q@s%t$nom@b*lDRqMBI&sIQ9LnURs*TE1R(X9Qs zTpa{mQbL>8&EKfI!gK882-H|3PZj;Hu|qIyv_bbeO(+@t zWk+d#*Y`=Es_Sh1Ml1}nG2>t39M4vRI*Vf`JXCZkGc?MmKo4yfJoa4Wv*BFTCIy9B zJta#`^l)5>s!=U@s7fJ!K;2>!hi)=D&EV94+W{8dlRWRD$N?H3&&H1{M(L;(^3}RE z#`~7A>+b&PzxyjLUU#Tx7d$k)y-1W%QL<{BlRf zb=#blROMxCn&#u+w8hbS>o!~aU1>>sa`)F;pRhi(^XPJ3R_@l5?Wb%jPN&TsKkmZC zlb0*6ri@?e>CkfPRNKAhj~-vNwR`Y9FWdIX;k)miyV$>a>d@8wzI8~s?Qs(_KRZ_U z<0-=JWAm$GTVp+TFDOda+;%Y*y>a6y{Udhfw^WZW2v}-7vsLr?_`Ehf{G{gC?8PJ2 zmyo7BD}G+}aNO_m1+!iloz}@K$|rA9HE#S+J*hgN(vpVNd3>=pfgN(^xsG|qNSClj zw{I?8(6oz1tuq*}tGqBd_F?Vg=Q$^Qb|sXb4Q{I1btgIHL(X!7m$p;W0u8g-XX_Kf zj0i3$l;HmH>8HG7YyB5{`n2K*D9u`OWex_78l!k1!0beU9zJrf|GQBC*h|{#&sJ1G zpI#L2psX|)_FXaF)CE-*SVm6fqtw!l$FKE#+VyfoWKBd)4oXSw?7Fc*kl;Nl!`?Sy z&b-K$aT@i<4O4~*_!y1LTHB`W9(L&SqkGxcZfATPffD!>Z))E#?NWJ zoVR)NiWxi`veKZO8Uf0nWnCDTBA~1l>=F*4qp}gVywA( z+1#>in25O{u(WI5-qK<28Sl^2^w{d4-%8#Vut~GIuI18|AA+&u6MyqEOgQPj7|8CtMjXkB;MYhM!QQjz-ta!tA%%j|;-G zqesppH=Wy*kY+Z;#gfr{VQf%Q*Vt@m94x!p6}aZuPd_|Vmt>J|on_#@HeF?ExVNaA z@G3s47;m_E^J++FeM@wdUA2#=9mIIFQk_sIP*As7c6hg>*=Vl78L~$ zgIA#*7NAy~$j(t2LPa$_TAbe%=St8m?MAP~A9cZ&Jh1xusM@P6`|(a+H2;2i^7?KC zql(KuDjQb@{vM@PGH>ZNCDo62U7s$j;WM#wrX-EhvLiFopBv_~Cp+GG_a^=Ax}acw zs&}=(1FadsM=L57e9eD$CiL!)ce}ig3GQDuW4eF#jD?*O4I6>rhi1WsBk#}nWo0!l z2=+i*)*bz{|3aFU4o2lk%rRxV&h&Qe9BlX0##UPAynC={w+u!f*Q-k&AmAT8za$3} zA;{KfA*0F8ibm}_lk^XFDhpOL;xi)nI$aTHE4KS)wMqqp3PXh#&fY36o#-KalZw%G z=(ZDGm~&p)uQIad4{{J-^jq&M)?Mf07H2CAwy82W)y*HkLm8K;H7T!oc8u^X*f{qP zO5ci|-Sv7YLp36UKkQ4ZpM8j$-7u(Ws52Qeh*3CqnW{JT@JaNh_<%U{A+qMzdO!8< zcY`R;XQ;SBj{dk@oA?ipG=tkw1A{q>hQ^{!*_jp`u&U0RwJOwQ8OnEH%G(tN?E>Y) z_4uYyzUhP8`BvO5X#1V-gCYtiDCA5(OX8?6ZdF&r8ngwtG`+WA4A^wDY>1K|Tn8(E z_5%ycX}R6S>h}dRft+?&9T&Lkx~1dF%g;GC>s(G-aT7asr&&3yWZia1U!VAtnc|SS zDDmM3=ZqZcyamp#+4GCW`9~e$;%H!?6R3{>ts93n+gOYfny4TvdFnWctRFnDL)q-KytWcs8L?C=CMR!pV2v zKHWElg}VPVkL;bDjkLDdcNpbj11oi%fY~1R4=QSpdtby1JUL+Svx_sYkrc_vmG(Nz zhL6uGz<#uNUvqG$r)p8WUE#-el~eb9y#|mT)!fUndUf0*8C^={V~pDU)~lv(JfN|J}hZ+vI zzfkj?FZoq-w8Da$Fbct&J;Ut|Jg4T9>LS({wPd#6Vl99De1t>Gmd;vwX}HhvxYD5q z31j!4h%9wznbr8DrXtTg*L-`*nk93`m^a-*ZP!4p-ICE-(X6_!G-9=`iMmbGP8~}= zKD(jK#xo1Ao8GKyM}CJ!>s#^#=yqIJ+}3KyhdL-uk_Nu zrMm3*>&8imyv&Tp8cq<$<1%oQb~T z`5|=g?vthb{W>$a!U#!|O4*amp4k1R{N@{h8F`+u$s3~evBqqh83(!h8phF2Ib!M6 zsT+&78XeZ_LMdyusNWfCUIAg$hA)Gf?@XYs@rn1TfUQ&m7Xe>k>0q0?2E<&!DAj#j z((jz}ORCx56x2W7J)~fu%Wlv&Zw>tZ4!U0Y9cMJFtWja>_g^T*&w20AYOQ8LIcmo( zsyxv{M|YtPWUo0I>o>_mWi%>B zor+Q%#xK_@%6I>oP?~i{NAcIkgJa*LFDRgf=b#3vW@~tM^4Uuj6pXtCw*um`JH77w zGEYH&d|a(y^f5xkW0lU3mbWQuEhvg#`3f4bf>iU{Cd#CW>Xp?3g&}2?>h_vBA76K- z4Lo~aq2ZLvmV!PoRqe38zPQ|1W9{r)#z9-oO1n=_IT5f5)DLAFUe3dl*KYP*Oq|+T zp*wS9}?Cxr;e&sl{&3w8bV$Ay$RcSePUY%!WWTBKkFMMJhTZZ`@9;&?i;z(T= zrNF60q1b9OA5BDRD@mmGG+C*gyj3IOM!@}2Bwp>Au+Ag5xkS}$RmsYSs8)M>7wl;x4&tIX8 zUS(Xeu6D`>UA3x>=;}E&TlP&_qPw%MPHpwx{l~mrP$>nCb%iM6QNh_n?Olz9bIi-n zcDPN$VrkF@DKEHaUhNxZ)9?M-rH;wlsZI?K=B8a zvac_#tg0*?^6OVy(>v3FgGqYIht;AN`L1GXp9>4y>*uL7)^yvWX{){b&k)UDb*gP5 z3~62FHSL8iXQ_YwZ>!W9dgBEVW`Sm|$w!Nu?`w>xysgWgmc)BpvMqr7>=`jPICy-c zHmV|Nnd+Hsu@{-ko12(J^1gO@vB-Pkv`;Z1j&IXWlukO3Q-*+J7d96R+zNq|T5 z96@Vv@QK2QHV+KrHbn${I4j6Tsiq`WZ2mHb){;N|E#zF`xj;=@pI{&e+)r=8Zo59f zrNa63#n+7TDgLuuoQB#3XLR$MDJ{+GTu;Y-F-qI|pkr^`y`9EBDjG(v6*lLOM7_Zg zT{P<>Dm@i%K5Pi8oU}2oWPW|rGAUH&1&(jL@zmHm@YcL_xh*MB8&@tkoNv`&q0=|O&R)S)t zRilBz{P>CF$PyLZ26CzEB~7nIMkl+>26|`^DT{SArmV~uXV*}<)Tzuqs?Z15B?z0! z@teP5rfYy#f!QUO$Au;n4j60LTedw~^!2{r-u#F_o6T7JSq4kgV_k<33evx+RBZUZ zZ{tHv-qDDf>bxoQk7o_6n~GLedgXO-^--#I9^?Q}&EpzsnwqOL&(j z;cK^zUY%^Q^YG_ywOC?xMb5VC%kPJyTlJy4JI_Mbn)g~Qn{h%#X%-u;e0@wX$}{>v zXY;|%1Hn(UOy}~m6<}lVw?JVnr`&kp-Nw4+!xr_Z`Sqc#!Tg3n73CxajR+fqy%)DY z)<-^MrSF<;GOMCVL387_H;uPS-3S9z%(k=D?ffrhHyDs_zdeRFoV=n*6|YWGKW?YA zr}fv?h1o%?m zZ}(5B$i9H{8qLLC-IVKf(fpPLX{xScMbnvAvpYT3>d*PHMz z9i@j&eKhIuUB|Mfmrx41;tH`i__wE;MRCOh-APMdHoeqT{N4EK$hL^@uUntq-R(k5 zVS9A74|t1q=eM#)zi-`O)BL`J$M#UZ=(oY6h+n}zq|LdF{DRN%or#9Ivz0ebT{$S1or|-qH2avGqq~BfZlJ5E z@6_dKkTVD~1VUfQtH@D$pqa0+b^~ngdSTahDn>+A>SF4%-wv@=FjPfjKYHchJ$Eba z^=ek#dVTEc04;-++7W~2_<7roTNS6`cIDoq_oQX_hBa*fO1npY#}JU!72?&{R=w@WF{pNiH#pHdJaJ+|3o(Z)K+!A?LR6|a{X5LTF*GRzgxdiG4vi|? zyf*|Pr}bzqVmbtZcrC>8;sK-{&BZn4+s7k(Ba?*Nt-tQYHAHQhoPa3gg{g8W`efQ7 z#p1^BvH_gHVX=4+mCk_(iQGhZ_EI4`N2e6{9}$bp9Nb?h!Zq$<;>uG*7B^u3jrxlE-m1HV}qDsC~KxH>rJ^@&g*sfSlNhV zDGy@MxjY&(n1$ehvvqNCvBC8-3*xDWrl&wsna!Zbi5W}|7MsH1(gK(~g50Zh&263R zUFVPLf-El3e8Q4wxsqs^62QnZMet8) z8AwDgTL^wjOJjLFwrnZ*EiHvbGLm9aS^+0|gp<}0i5poc;%8Dwbgnlosjn(lbgmVZ zmL#ni3bP!o&zf9NBCW_3Rbq+5c!ga;4Bxtdt zWS)}XpA%t|R9s4>Q((m_TS53lT<*z%MJbIll@3p5vTQZE0&(py4kcB#68J4HOP65j ziM*;righTwHfS6OATNF-8D$KM7ZyvK0Q7}BkU=CsGa8o{3abqU%!}}nWJV$71fp=E zNn3!WBWqpYLTT_%s!;L3tzf+X(;u;2NbqDM;K2i!$Y6zmH%f>2c*}Bzc&!4~0LAdv zIY2PFi`fX7A9w|Lz)G0{agq0iz%nxtHbH7IiOMEDgR2Ur{=q0tnIJR^vD5j75_@eiOMFxvmmz8hzM{{ z8>kF-NP?Eo5S7|@un+}C2T_zF7w!lyhfOvnuns6(SeztFS0OO05q+4*;Q%s95g`C? z3)V@1*6@lWBES%nm&1wzqmK%eF5Pdy{z zl>}R-u*?@R7cd=hmg2sN*xn6===P1Ch*6~N-9!zA|BIT!+&z^hc8PkfC14)YfTbla z<3h2($&%C{kw_9;)V} zB?D4e7z6VcUY5V`vXFr#5uXYkyJ2~-piCG20u$6@fRa|QuNDgXRLmGy*kxj)D7>gx z0x&Y9O=pISojj@UCU)My)Cem|<%ZNT1NDID`IF<=111t{=mRKteIM*i{xeJo+RQ`- zLuio6sQ|C3-cl8SEPcdKl&|C+5Q4Lm@IW6GCd1R}4QmTmoTXHv_pB5g6cUEBl)8r^ zpG9hGgDJ&X0{ax6*I<}u2p}TL@uu)7cp_20vadL}SuK^F&Z##}102a3W#v9VP(-@F%?Jk!T077A3Bca83}}!D5R2BJh)k zctPMBJXp`f=xD^!hB;6CY=Te|x;tCiqKdMzg?QDlIZG27G~0i=yEm7!@q+ z7?M~_0v=hS6U2z(Veuh)IXD6EWsea+net8rAfO~1EFzy3^4JvF6A|UP}xtB=yXK{J1;01p0gvG+&Vf=-p5{7k=SSwNpXvL%0HFE5yks}dqjm*2P;(q2t-Q7a71s-OBAj;SFy1sd@2rmx=JLl{PSQAOsG^>#CsB! z0JaVghE^xCsEG_3SGH7$QW%KJxXNf0SY{v#$Tc0JF#+yWSK(+frLXIYg+(k4#xEV> z(RlzPaaas)Oihg91p;?draqejvo{ZPBk>1aB|&15eh^Qguu};dP&CX|m355&fi*fJNQ#d0J}z@)*;A8bd+!S@j{LmyOwxjqKw zMp=r%Za9|}73bPREhB5u6~cp+hPRX}il>3iAa1W0pCYt{d4vIoE4$cw>3evt6FE$2 zop^3cU)8`z*1ZPnRwz=$0|CWMmUM%qPY~b(mLd-`r-l}$smE&QEM z?T=96j|ec2Yk`AYp_w=fp;Vm-S|eYrZEeCWaN(dx4BZ0fD*QpGf)e3(_+S6HW%gUr zk8%HRq4*ymB9ZVUb|N>H06P7{oB(1=)SW2cCj3EySBRG|(8Yya2PTz(N7T+lZVaqc zgkb-G1^_HYMdB+;w56OfB5`Bs(W1EB-;GxOiS(DmZWTtTOl8&(QX)}ba_T@5nU}8v zjM5;WoP^OWH>@yjAHbyZ=oDDL2=yf=kqOolY@xs-6i4L{r6C4{4e{}YtwlPIAS|>L z7f6C~@Kf0xrpW=qpd!#wJpyuIRQ(LX)Lk?T@nB^GjD5GU1ei&l5XB>uB7_9rk&Qhm zQrLdsiq)b7EO^k{!tju8;o`Z75hmR6M5Glh9+oFOuux_SM}fRo8dkJZ=(J>!uH`01 zf(EiLRZf@I#3L`D7CInuYyzwVSV~i162tI90nb@@#Z!YgUOW!NA_ym68+qL>LAXIr zL;M+e29;5jvYjKl%7~fo!Tp!|5AC;qE)4P?`v(FI?w(6yQ;;6;{UPWjv_$_U+`Rh5 zO&Dty!Tc)%NnXSKFJa)_F9uR0o&>guCx=WR-~jKrT3btOO<2xL?LiBXEB80Z`XCGP zU&7Sqzl$kY`hSC|_zc0ngzLorF0OF*{}GG+H4l5Uq7q>Vz!S=l{>C8L$KuA)7z`3v z#$qE;xQ)n#MZ#9;yN0?&hORR%2@_NuwCkf1U9t_3#i@S={wv6+Y` z3lz6#&m4?FtP*D0gp)*)pTq?kghp_(v?WUS=zA*rKQy!l4gaZ<15!y0UGCh_Kj39! zX-AZ7^Rw6ptMDjv2BPP{k%@_vD6H(p761f$((%YH7M@DsB-5GrKaC@iDYTjToQ*#W zP1;VZS3M$Gi9Fcm?86<*$iRtT>j?RX52abcb`1mB%YYlRI55Nb!jE~OJa~|>R7b!C zQ?@3^x$t<C&vEt)lzOe|v zLx3`f9fatpfd3uR$T~Sffd!8e8QwpWOY$pR=yVVP>xrFv8KX^vo9KiLok5!;I`ASq zs)3vp1Tw`N`H4iprK1tXYH+evrHsyop~1qO>pC+XIVtCg9~T-F2s0cAj4`=jIlIop zBM0m(@j%bu!=cP@nGlcg6cZgpOJ?E#9{zMH6*hKZB)K@5ilXQr2m|+wWPwj4aw24c zNT5h?#fj)5T+7H@h(|9wVZiK%VZsCf*ps+OEP@`LN&sF2;(LG)G@^3}L}cTSYl%c_ zAxp?k#w}B zGWFSBII#$K1dYdq_g)cwj6!(Ihe3e}9@|$$36#@PkYhUiIq^jCn~P-^06{>$zm(Jq z>$RYOuHwosDBuJBX+Z%+E?iK6UH+$*6oNAX|G&1nB#8IDx`d<{IZ{d&Y4F8Hmhoja z-J}g+J!=W!6M4~AE;2g@$m+0!s1zQh=h8uT@_J2ij}?uaJ0u{@d$R*T+=IiRq=LP|d0?RY1MYt(F61Lkvb%1=jYO$D=@GdQA^(SfC>R8Ya0tWr zVnra|VJx!3CH;!}M2N(a*=nRE%b(2bC7&Rv;Vr^YMnnl;HV?Vj*vRhgAn&AyoMayg z6@+xdU$Sd#DbgB5Xm zxwQfoXaH<##c&X>y=MnV6}TjcCL{?E;KDl6iI$Ui(uolVC=xjg60kHWJQ;d|(IbMq zZ#qa%@Dt^PIFA*@0=6&UKv!9#pFx3LX|4=rnM7g_d}NJEuq8{SQ>~)uOgcB#O5_lL zgXd#p=<}zjyC_Nyg6`sYxtQU5Q9`%@47SJr)QM!XTNVg%`n<0J07WXXi6tF!!ImjF z?29NTM-fxY9}(`ulkx())6fJ~j0{O5DN%7T99ANe>cwIp9+H`p1Gp?EQwK5qUByG{ zwT=BR)2}x#ae3lZD;`9TG0BVucpyN(%ab6ypGkprj08rHE+p=%j0i#E;gLe=(2vj( z2@SE#l0U}qFUXeOGR4-$&Y`zZadvX~_k@Zx`h#pA_gM11L{5*L)xVKB$kirS={2c; zTN?GTtNYjDNQQ@yc!N7~uAdZ{NM}%eIjs0FQG9_Q4m5~(1gQnHhs=fuctij|#9;f3 z5}C?JiDaX-0GvEs3CPiGG0XQ6*o{DhoVE4vbje(1T7yDxk%G3pHB9G9|c!kjvOK{ky_klSvtzg#u z2XggL2oxD%4L24ul=O&IKwv3XfA9ki zJmZ1L3Z~Lw+H&cj*iv*rM3zFrgZ&gJDi-E!$>A+{X>ds-5(uurZaYL_rpliPg6+(x zSa1yh5i-_7sRDacyeK)qqKjlv6fO{gaUu&2>4}v@<1oPe$XIZF4!JczOQA&Z7;?v{ zAktqf5<@^D!@+%TOtrXkcAJIuOrewU<)#u&gr>pAr4kRcsc(>_ShHLEf|aM zW%(nR0mEHH23P{v_FULB5}SjFAa9|!P3V8|_B8>08B~27AC!Xw&I&|>Xg>wS`;pU3 zTyPfvu^J*_9u(0`%)@`RA<$#yWh@Zee=@?r=bv_A|Hc?YdY3oI{!5#%V#@V7KD&Qq ze0^@*{%;Ph_rC2P2WS7U3~pktZQlRQk@ec;{o}wK{*{6CeKz6W9NeFdCdi@;v;kt# zBS&!M7F4*re33nohqMrG7|HUe?4~JlR!6#z*>?;3o-KOrVoJ)S&1LB+ynRVXhq&}K zAUmTOv=lnr9BhX5ywuPq0uFM5P*x)&XP+X4s$7(*KqRpMqVeEvD=(G;@-oomMj-4* z6uC3)Ll%onWtjQ;^|i!4mT+Qv#+l{qT}dlhh<#jU5DR7D$$asxc;KTzLMKI3K_0p< zTpo%P3k_)r8044{fFgE}rTGbZ!TFO%-OB?62hI^qi|iYVkHaEIq;r&---Ia7+%UhvW(%_Vj*1KNJ7xz{ni9>T>~y#`ZdOC0dn#JQ*uXabc8Au1eqM z5c))55;#xruOlFHceuZvk#FKCBtk=k^;nEBI-7v+wNEaasDy+k%C+*6lA0hxb}27V z7$7c++-Z=&i=}`Q_rPhOfjiK`Gl*%zL@0nyVAB}{^iyThrpQMTxFi4@j1*WkNL?AD zM(lLR@Rj&ke5%CCk&i!M5%&X&1uy}!Apj9R-%|*Qlm`Do;@8>8OEh^C&IH54@+TiZ%1Ca!hW&n`o9cE$&@2q zi%FA-5Ca|p;AJ5b!2BSdL_k;)2t+kghWoO=!Py(0OG4dVjxr` zyA2S(fJ8uefDKb2NnqLo`ZHM~4_7=XK&JP_FNpaLTmw0utq1S-!4Q9MjS1rzQqB<_ zp!%zWMS!XxUL-lP6C`xlWvnw9zL-MeaFI|MNI;b&{2`UJNwTG~$);vX(=N!kgHbGY zDn}Sy#CeIoL(N+tI~zM&2xkGHP!f5uEDi}#T(ZQ24J5AY4hfhW;dH=L&W0B~tYwAE zL;@JO85Rop0wYo?GR2LM#4U;N3gwdIcU56-@D?V(ik0#V!XLnWlTEiGtPKbXib=6_ zDov`}r3QxtXVIx~E5iVLL(a@h08Odi4#7VLTT1k!{if^JL z7fUG|P#vyDOQC=~G&r}Oxz(gMR;eJj5!^ud3zkC2h2MZ^QD!!9J~AHSvT0HDXu9z3 z9HQJ{D}W-Cy8@U2;`Dyths==xIh`V#{sE{Jdq|>C5S-=G71)J~Tx|)Sh+iUdNCNSM_{oGe1#_ChLyi`U}XmJnW)i4id=aH65$dK&yaFT=~i=wbg0vjd6e zOzKflnU)gxBJBE1o6*O)4tbFBUG~m4g6+GR6cc3J{i7n~43U9=m4Vv}6_9O64w6`d zO$1_4n!-nVM;P375?%Y0J|&2s0H1};p|d!2UaB}NBqC8I_ku|z5~4I^3x+FU`fGr)lodtLa;Lu-YHypCN1lN$YWO~&W z55Di((rZ#Znu#w0!_CBO3PvbR0xHd%=-xk6aUFQNLN3^-<*2u34H5(zh$n+S4_C4z)-lH8IcS&r`?FNsjd$bfK?#yH8Pzi1hw z42VwoM5qvj%S{BiR1r%LaeE}yNeG7_O!~Je5&OcGE6OKN2ET1A-?pQibK4&yM)*ffxVd4r8w_8FEMB!Q7 zUPp0>e@zbwW^xh%Ibwk2&L&9cA&>ANf5&1Xlf3g23lUw({?qk6I5J>CZ zkN@Xr?_g^K`+ts(4mNfUPOvWs`+q`z@xP8qAD{o9`+tSOfqnzALjmgy4Dk03f&Z?7 z|Lsv#hW~Fwbxc5^@T=3prtv~3$-n?c!~~ME0#-fIC{)VL9c$@Js9Tn7`n|VkHfAH{ z3`O_3@s;=A-Bz74TD@!QCcELs@0>gL=5f{57}SW{Uw8dZzw`V4vGwWPhAYu`&VHEl zWVuWC=C2p#ZP?ZH^vjp;yB6)bw_whkWc#e2xc4Cs;=cWeefsj}{A*_x4Z8B<)3+a= z5~p6fmU#2pf}>gQUgrcPcbxlt4LU|z_TcHKu1|Yk&M_PM`SQbzpYx8nNB+$C`t#|m z)y3iUvx`XUb(j49@v|W`Qg=&D<R=KXs6^y{HRchbiMIqw;@ z`OMK_FK%r-{5Itw)%EiCRqtxv&%6Kq+b`ZPhp|6!bIbkKoe#=-W@@+B`BB|*Rp+%| z5*M7%NCow$n)4LDjHJ0OQCbZxXWo6E)_jO{?PvY;hv(h8 z&KuNE>(n{+BjMPwuHWCEt{iY@o5P@{gBM0G)-Sd&rwz%&)f`J5Y^wStF7QnGz0NUn ze!TrntSeMq;e4({#V9L_WIMil@yzEZMtyyd68Cunl;3!aB+yNG+Z@sQ%;@lfupFg1 zQQJ*z7L|0X`wj~&U8AZhBPVhLzcaF_V^T8W&4|a+Y)3 ze2+MW#MUnvN7^)P%ckYC^G2MRa(4R~_S`FBT&t^dckKA=I%96b^5`80I?@c?KPwjN zUE6W(Zra-@_T|MY*M=UR*VSBXe{S@debZygGfREGZ9jZ^&*Z5yGfRwagEvdbw%94yGh@T?`_mSdiwLq+MmN3<}I4hT{I&j`_lIp zi)!C-cHARrDdK%>%_418aI^K$+OFo&M;EN!h^txkb=cDJTfBXz>#jA{wZ*LpDtMgt zcK3I!hIz&1QAxjR5*E%|xHk0JFK66S-Np^LFEO`&Y43L*c6;++XtF66>pAlDBImVE zk%kX8&HIY=*sSbfaBm=XLF6!{lG4gY>IN$tZ zzOC-u{g)pey%9c}+ITBK&na-F>)5^X4_dr3z7TmmbwlfkpCx;3j}O^L8gVB&>)O6k zgax}@$7iMuE9|;(=tARBowc`562Gq1Hn4&YP2Ih3<)?w3yG#Y{RO{p0oJ-?gHbx|# zXmw0^!e#C}Y48QoirVlYEU&}h!`WL;>FVYym&Nb5-)il%5f|{il$pQ&lIo7_u7UB~ zYmP5pn@tKoYrpI99c63ZohgPBY@4TzBVJ;8>BPKmOPYnBm36lLd!=i;IqlncgSj`t z&T2H|+I>6yZRFrBi;m4p{QW-f_JXacJ0hSLd!{RUJbpt|#>TyAxNJG)^0UfOA@xRK zp+x)cGu5Tz0?Xf#hL4{ZhYI^N_s5BDs~gP~lZO-z8NMpMYo5iCBE7k!-{7+?Cj@HP+PFY5QT1dd~?Uf@?%*cSHG0}xSdEWUmNFt zAbxY^Y0NT4ehWTk&SG8nhDGCDzj~a$^TzjF>iPj?Rxc=XD$KI;yGE^6xp9w_(%@(` zueE9J;^Ozk++C;3Bfhc^T3@vdUjN?veM6Z*Fl}y)LF?kxD$&0L`{`>?{0D9*t$=ez zr`%Q~;GdlTP(bP$?u_>he{~>F^ZB)M!NZ= z9Vb#|6@8s$M>(0;klJ}XZuoP1_O{{%cUqedcCSlJgCh0Old5|+mg=WF=~nn^SPjq0 z+%i1)GvDbbYg^|49qOgXI~%UAT>M)>Q@Qg@$(v?WQQF}! z_AOntX^%OG z1!pH~v>mHhr1gMk^Q7ppY1n~o!#DMF__c!HjvF*i^2&6ts_f_0>E5j=Ywc`u6f8Y& zsN*oZV&01ji?X*W(SKa0bQs@vws8rD$jZ4vs%^!YPWC4)eUH@|emo47o^jMX={=D@ z>gu5Ds9QD!1K&&YU(D*(op>v6?aSLccA8>{5h2?qTxrSu7?@&X+U{6XIcmh17Yd2< z3GvDYKH6G;pg)^NouXc@cK&6R`jT4wg_na`RXXPAnWRmnK2sfb#cNXH^3hsbD-@@B z?zkHflTgyuekr_Qr$MmAFz?fgzm8TnFT1krqm$p!938dB+zR5|3FkY`v2{A{bXHtn z+pw;?uXwZk06b74h92JQB@0@b&Z$97T&lr`KjB|5B7P$KN#Js?MK z2W9WfVJiC;-I`B`9!T(;tT=HeYvY=butt*j06`ayE8t!lQxjp(?w} z0arR1&s;)O1gwuc*Ue0^NiaNo`ivGqxvt%p;ES8*wNNpT?;ja@(FW~Wl)I~wdH?m` zH|Ln9KbT_;-;LjmIze{O9*VO3plR}gH-A^`I@i|7CmU5-p54%9KC=?UMAYwnIAv>4 zNV*;+5L1?0G97aun@!x`HgnZW?!fRZOBSfMF{AD2Zv?Icw^NTk36`%eq0*wY@6+G- zxeh1u-*=7Me%(#!r26s5;>9f^PlhZZC`2rtp>qrkQLSTV-_mY>VViuyungn1P(@|? z2%mSlo#-2iAErFQG0wNx9~-z?>DbN=t0KD*?x`&O%`UI}!?o;2ZVl<)*6Kdl>xWKM z*rw|iO-42==TkR5B3iwy9g@}T9vZY+CGTa1TLx-v%n42}7@kzS2bX>Bo z>L#An;~kiH+jN6+X0^L4*;iqATDQwP%i<@#nx7BRHk%#}ep@h~+!$1S?{U$=g>E)X zXY!ofW;04eJ40t;E@YYAWf^?@O|FWIU{IJyWJ>~Z=z3F>-GlxIC8w(AabNfX_3U)O1Iev{P z=Jmq}AGY~z&EJb52VU)-t)G<&S3tKEmME_;i`h7|!%|~M#)+tw50!b(J2cfSy^>*7zp_nw`fS!P?4f8AVwiO*SIo26P1Fn-TT`l#Udx+9ezMLww|5mXo5 zwHU1#JoC(ey(3N>d1c_3@A6*TNrhOPW|F)2)ng3-mO7V?cAH7vGow+ZZqb*H$=29* z5+!Y~zJ18IOy^*ivcVa{x0U1-tG8DFMtSmPpa%$oe@yq-ndDg&j4v9pI=5iBhObhB z@e-Zvm5=XC&~M)N1ATST+)HZ1*LvK`FFvXDdTs5_qO;c$cQ0!@bFtE=ZPVQ`X?7j2 zOuoeJ{u#Eo(`pPGJ2Dw{OSN^OeA@khfNmUkqzJ9T5+k1ykgT>LO8 zi$c+=$X$FC~(l zXX#vHK66_(X!3?TZ@x`TH$8DMLcbuW(_-uSyW1vDHm|r5vE`%f`e8+icoOYb!~6sG zNAFeNId%c{siNHB+5LCnpN&U0J{lR6KfLj6;hndO&f;r>mQ8#AoBh`0pl@yA1dGqQ z1Jy3+ZHIlL-)qMi{3;U^F;jrsHC@W{?9ozTCbx|qP?vJzyG`R0EJ>M=jxqYPGi%k`+ z0rRLj6u)thZ$q~xVLNZ#KH^#Rt2Uau%B^=$n4kzlduPnNT(8@iuas-tHgik3Pj|K&IrC2QDb1?t>X!jQ1pz4$ zkM^%W;pNBva+*6BcVlNq`RoHqq=X7Z9nz#Y50gyG^^cn|bkFmG#n14u4<9N_Ihy+O z%o_UG;@I&uX8W~D($jMXFcSvEte!kQ?zGayy9YW>j5|?txYOzE?UREm&yS8cX=FNR zYe)E|Q)UIKGbbK{4ra!*SKaVE!|Y7)c#)fTf9|Eb-yT*J)z4yeJKnVz=KJwlw4Ryv z_%j2;8kByiPd%M5#mdWb@lwxn|CF}#uW0))sJv~~r}Q*k9T*3ytfNL6udb~e@F}dK z@k@hUbHyU%reT`d24)>9jj?N`aZ3%TrSN4nPdoDhvZ@)V^Gk9c1&3^072!+dE zl#U$F(pkx~&grbR+3?ZrtX1qBLh#2CMgf79LwW1kC$Z|YrolR{vnU{Te9D3`!L;Mk zw6y~x=1=y}9=)A%-Na_^7rg_+J!9|ZzVf+2&V=?|^M8W=ytfNIFre^o#^;9~9o`y8 zKIXUn`q_kAz0%;@x*b_NU#;qVJ9u#Ikuw7pB)-0|eEEqjuLk`HJ#*H-Lg35{jNAUK z<_AgFmXo*$I(6v8iPN~@ZleoY1LiNg!7=CR25)@m{cX*Rn0p0Z`T6|w8%N=aLi6*z z+~zE^w;4F;!-*55^}+1}cUX`9kvqM`n(*qhrkahX>Jah{(}>2?8X4`{jd*!dLtvH*}^qy*7L(SUPLRL1KBUs;;ux z{AaauKB~P*d+`0(0Dat#;R_Ef8nS-w*Ui(9>JAu$KX++{#-8(@g~Yw@3{IO}qb%0Q zGx(Ib=Y#tR!i>)Wc7<+P(?e`_G#eOvx#Z@1C&Z(M8ilEgsP$cZA!G$~2j#R!@#U8# zZx0N*b7ans&)@X+23;*N&7>rZT*vbL!FJ|)AL&>-hE9(dQTX)X_p4)nDA&8;Z@X{O zLZ#U1JpX@)^yc8qp6BZ)&c@o<$;P&A+s;N$Hny#e%_nv?wz2WXwrv}4KHuLTZ{3=@ zRa0|sRZpMpK4*H4ulABS2dT;BoN=4LX^4U*t@-d(diFqwj(ikUV!5Quh_tNC<66wV znept1Of(R>sEf4>1mOi@#x6F5h2QOs#WPt0VgF5rJ!g`s!=4k@m$A8w7^vb!n;vze>)`nC|Iqpf)9f;T{As9 za)d|fG(brHhRP1atUFIY@B$Ww7q_;Odc)T{J%L~slsz3sP8SM|YIjqu!Zo%dF^z_j zkbDxF#mrLGRWvCY;ZIM&w_V;!iHk3+to)O8>|lz4+=2+|lF$tG2UGLU?~Zvs2vG@u;~VO%gtU8- zGCIB`Qi$!uSIY%x2zCaqCS8WdSU-WYzw|t4ZMGS-f={|O?a0Po zb|p>(WIp*sY>2LPm1Zts$cowZ&94d;1*>HV-rwM(dp_Cx-9B@O=H71#$JW1LpYPZ6;?1+$g-@^_H@dXUD+BqEImwA-AcccP zYg1HsvU7u}%{0=uxN;F+pobCA&)Po-rfPczETC}zCK$-cZ(=A+dsah)hDIWTll#i| zt-wWATbxd?LzNs?f{0?`hmt<9%bSc#i2%jf5MT2$Y->u6od2X4;<}^5HP&w?{&1)i zw8qB@Hnu>mV}wiZU(-uY)=$v~+Z5G)ofmu|+Vn0R=2w^Znv66%95xK}d#v=%x1$@l z(II^yW8TwdiccQMx49^(Mlq}MW(f32h-7FXy%KA81fcb^wq?NffI=8OU1f7-!n%CO z{TMENI|Xv9qLt2<{}@)8j0o^pRpql2*(AY%+!qXLEWySG=bZD4==@U}esw$WmrMWU z4xkr9{4JI<5Oxo(`u9jU6Fekv<>n6)!-Ry+_J8rYaPGM&t$e z4@?lf=Y%`|U{~D@kA6;WIC6h^s7*7i2)8@df z{ck>iO^m8FfTs#EnAi(xAtr+~uBRwPXR}L$4g(jnN-GJgLOybrdw9Kfk19PumkudN zsR;n-qTEpAGh%V$YxD!tDP)l^)C{lH`ZH=|eYEmw47rP9yh8^kF5{qOqv6ckhEo7^^wXx03;Ufg z^l%;{{jR;##p7!C>^SdH3TdKGlQrRKyQ!*h<+H0C=$STeC90cX! zdj3JNWBH>}G;W8m&qQ1wv+!9&WA}9%`40ti`3-EC-pquQpcV#A%wyc1_aw*x%}1kI zCY^~$E(n(Lip1le2yOh^OrTJ*y`CDw%X?p?Ze}@(3%9>*<~MhvV!f)9hJaw&pW%Nx zHGH;vrLz%AJ1+hag!cpl+iS|7+UX34i$Z|IS9j=Ak_ek!xXqyycjgxAqqn#bi_Bw% zilm;_)8s5WSOVwzS|^E5rrKghUQFwW6~igI8 zlO(m^>VaY_KuR@@HB0m%-VNG%$i&j=8>lutULRhdI)d%?V>SQ*t zV57FqkJciYf4_Sz%sL$*K1Xwjj#(dH$~s7!29m0+q08#X^dcN{h6igK;fWImU6@&) zBHvzO#N3qMW6NAi_+M~*l0Kt{w`a47vsWg_s4Qu-h4b@VrU3^|-M{;GE6uaFRk)X! z&#MG`1>#wV$Pfap9o{PKAlNYo5S;v#)xb^m-G6!=d^Z%lB~RbCLWWi4U;v|sVh(7sCgl0pp9W>W8=4m}JjYKu zecsIxVd(2do)P&wA;$>U?d+p8oIT=;1Y+#TC$_C_In+h{Qc~5Ot>1PAvc&$(!1D@- zag6YuBDKR_aZbtSr!lsX8q*g@&;ShzMy!+-0kw$6`5WPKQPdwzY0Db#n~|*`qVQwX zf?oEBB906E^$G_0xFf$Je4*C--tV@uZlmIdqkfIQvV%wR*8s4*++QJ?=OZWOe>jiU6ZX6G~mM_ zJv9^ke(MZ$_P1hLh`DpIPlc4;_mTkO)CaF4-O`)hl@B1Mi6kOloF<4WbX<_DU;~fD zWAp6sajVLvAvdu}MRerXsDxP1o)u{v4W%K5q37U$=SQm4yUN{T>TG2?4VAoFY;eAL ztK?Ss9JtTKob7|o@_7h4n%`*qNt3oHam{G0Ed*3EA5|;Zbv*S~F1gEW@B_;dO++QM zL>ZJD4ZMn9vJk2@STA@g^WWFpKjF=P(k@|qv4W=~DfYJ^+)mlj&F6jtqUI~m6 zJNX#GCVZB3AYh+9?I#&(8jDXlG}|vHlwRLLxH;`MZ11aOmg*yYS)Iw>{Ig zICgz{bHjN$AiNoAQwmJFNt_Uj`7$7G9{hw9gZWC>k$UrCn})*SpEt@CqzdV{vp3j- zH!bH$s6&n?&7&@V9#DWcS@40nQNC3Or%`;N$Y<25{DT4G{>lFzS=$KW-sy-CJs#DM zcUeemQBQQ^H1=kBn=}KPOFqFOaO1pR^Z%+U%Q^4|;n4s)jf@5Bdy8G@OiQZmvX)P+ zcxouw5^R4Mb=K_I8{M+0%NyCrC7gR3-?*o9<>lG=0uO(#HMAN)cm!CM#;V_x2--d9 zXQ*h>vp*5|Ll#{|MMTPvtEIPFuTK1;VsSJ>pXZ(vr_; z*KS2z>u?De1dW>M6f}Y92|Uq(60wt!J+|QGB6CP9ebq)WyG{ za_&Zf_3IUEjbol&h*W3;y_VEm=s8H&{tMZ~UIH-$bXek2JM2FvzQ;mpa#f(~3`tq_ zAT0@Kt52801*WGT=xb%Ssv*t-9vs1nGr!Si#G@;7hN|7&-EB-0sS`4vkZO2d{KLDI-Ng`w=F!HT(C zB}F(E!Il!R9TlfQw&+RAI)#T&90IAT<)S?#!{_M9ux)jnl%J!3`UO0hez8x4ddKTZOl z2Byb?zKhQxS-B0%>0{~Q)t=~ujZhh~aA&Lp5l284n#(=%LGKZ>xXBQS%$QS1Wjdpf z96SFl1~_UGu{s%!bQRmo{ggvG6ZK!MPxc{RWi~Ff1AEnt(7~A>fp*y_e{T^6VXE}s z*?{Dq*+9=p=V?4th&o3=0;0Wdf~A$Poq|>V3J;<>{Z;f7qVFJ+XmCwykf3iPI67;Y z^DvvOSms_n4G}Tgs(2mOk(_P{z|~ak(Li=#eYi%_AaB$V<69z-A2&F81jCy*prp#< zdBkG8EN$pDU@H~z!m9)?OzN3YSe;hRg3Dl?sz8!2>{?8Cu!e)!NX_VLnFpwNs#XW; zWVwfFWKXPcpO$7QYD`ucbRN$YoaUH99@<=6^`)6zv6_!Y(gi-vufoybdSt5?JKb`O zLbj0j0&Qa>PGGz2#y zdLxDxi;1;1s4asvO`0xlH;2E^ls%p)ITt+yYkz1l?a>;5egV=agBfm46LZSvV57^8 zpYPE}B02!S7MJoq91f{cO7RTZySa$puy zNRXjYlzlsq?A&3Ix8PPT$2b~WuI$^9%p{Rl!_ka9>)xQ3N-xqG_sV!gOGu3kYWQDJ zZQ*>{RI+5*&6bjMH^J%^&iz_L2J^L=qEi%eygg}=DIq)~y)dL9Q6Mlt@x=TMbpth62IWQ`?bW7+$*W6-zdHs8l`jY4AB|mBoB0ef?>K-LJq!cAob507$Kf_#_a1Z$PPE*c7~Lq zt8|f@N65`tIWarw0b{fLj#kEv`eQ3R*R_h*1V=pA$txUs4OY7i#{C=g@gAgld@c!j z1E4?X5nb;xhV6GB|M0d-#Sd;vdJpP z*V@lqSJp`=38B}qRkLbwc>54h#(^iSYdn^=I+(U9A3x>`O(XwOf=8C-J+$P$)Tc+$ z`$2kVJs{y)^BdUW#(#6wh~4I(ClzPc^|+7Ct9;sLCYS^}IdFUg$%u+=X^g!*FQ9re{nY_I0JVPaMh4p_^4`F_cH(&Jq;p< z4J`5lmy&L&8^eyP$<4}B#q>RmOMPf{Y4EYE@Hi5Rg2Q_w(jO=MX`$MkdU-RxTPd^S z|B$4X#J38?;h+suZ4Ps*qaIctxW6^ydJ^EI+LLP`KdZh3SjN+7!M-(0}&zm-Vl;3|32 zI_@MbXW|N5xZtXwVEiyEkQgS~cv|2Bw~)glD-!b~liUqeEKzrZ{=ITtg8uqEf{ApF zu~nENOgXR0QKFl0G?RuJph^g;W9YNgM`=sT^t$=1ll45db4}iKKOUYa-(o_5lU^gR z%4NEP+<~(kT$kvQ+R_>klM#~gz__RQ)89jOS&pE0| zRbYw*rK=komQbhK5%u(%+02kz*1({%5tftmsil5k!1cW1_^2WswL|q)Y^-G*a`^yQ z*ed1_?d@TsFsQx857*bvon9XmoO}f_oE!sQCbNbC006X!tfUy=^S>vzvn26r=9|5g zwi5t=xcJ`y6QRm<|C)qxmX;TX*@eS``wo_3cxVU!5Cf#egw@`uf%WLU8ZHAkP>A^uTOI>g)ZwOSAVdLq{-|IE5H*lOw=BNwI6W-j z-slK>`?RVhDDn*XU^4y&D>ilQQ64*h7%=xRh}sW;s<|?Wjt3+Jl#aue55N?Ft!59) z?tcytKneI4nMAD~u7MGs;9`epRP`|QLLDXtQN;iQ;d_Ks5VM1m?@lOTw zhS?Ga45~9VFc((3v4N?;Kw#kz8>nkEK;u*qLtY*94CzcL`{XcRu3{ND9jc&+#8hjO znSXq=XH}a39-OxHk;oz0rtGDH$aET@>b&gQ zHLAe6xzQ*o<9!IK3(!88eZ zuxB)m==k}WbIyqGQykG|7YOtX*&^d~abM4o!=Di##s|3Y$w#SFa8Dd`&*E^L;{~Ij zu=hNr-(fZTZFG6^;_fm!E^hLRPBuIo#R&{$z!?r5xpCWV(LJuc=0AGk@W1^87UhxyQe=|PsnE4p?PO}l1%fnrvS`m${ zU8Mp2vaX&vTOi6(=L^ksCTDEZ+1m59J1$}s5%1uR#vh|H-R4mo#ncH>p|e2Ggo*N7 zu~~_GT~RchsKBU(_}WygHYga?M=%ITGFDa)%=6WOeD>A-;!g6B~v218HYrlsUh8-`r}R7#cd@sH6lN*LNm z(BDm**jSlB#$x_keu!+SCVV9&H<*8X*Ce*<5uo}jM2C8VpiJT6*SkyByT+0IKKa|R zaYnR&z~~K_#->nRA;9s+inU0A`M7g>Xh#%6)^fchA13Z7+(dRVtD1nnJU~F0K-yv+ zm`@MbLP)zEvLfT{M4lalw!xw&T_23a`jg2%yKZP;PBC$|K~D&eYynlGC^-Ada(5-P zm`l9kvBU)YWmVQb*s%B0_v!U=ATmBai{F#nqLe3bqP$To5*iX5Ap~RIZPBYT(7#x< z1g%@U-m?DToXAcQ$X-QGUh|ZOozi8U`erYV*yDJlv~zl?sQdbavAU2r2{Lua@fp1E zzW*Lp%E>zbmIZSq0ONaIU3C0MN3uc6A2xPYB8ZsG<|nfez#AMKvib9^B)FHL*|#&T z!QgqTHW72oJ{ruLJMwdbtP`X zvsg?QNeTLnM5Uz37rycbGcqN`Le%Kt5?PErA%YlI9a@4x}fMTt(o)t@8Tha z?4J%5n)R=neugD8+LOVSD?l<%o1S~|VJWv-)JyTPzOxcrS zW>ows9bY)-s@n{&LU)0kxjtGK)uu7%elR9?0 zxGE5Q>tPTR{{kAnKl$Y=AL_7 zb!zH{O*lAvZh`CpN%7h!ey_bHlQw5eFa<{U1uka_E4P~6xdDmLFQl`=$(Eyp z5)xh^AQgi`k-kUK)4P0r94*jiU#+|C6qQm<%+Bs36je;LA?#I_+2${UyJO|zA5|b~ zI)@-UE7Tv)Mr@9yi_E&7ODR83%>ND3_I75IeSNklLjJ|x2Ru@Gf`){x^!EOpPTf3_ zZRTLTP}6ScM^C9&C~Kii?CJ|Ot6djSY=gOmsj^~8{sn6~Xr$oFd~p$LLBVpG{N^^V zW3<@K8sUys&qlq@jzF54&5X%xdG8WMtc(V$0p63Eiyar)}%=VXj3UaXBM(Cbn(w+RsR00Fe}0g`qaDV7ER3h+<_YoIwxH=a5y!VKM+1XbNNn}>my4;8EX-WOaKKIG)^gKFM zQo^YdIuICoRj|_p(KnxO%OacIYENDY(J8gw%GJ+${XS_ATaRb7@wv_nWq2a_til|6BKQ>Wa86#K z>o+>5O{YooY^n`-o{_kQ-v1*)(Rc%=w3?3Di3NOfD`T9drd;D7S#JtO1`0`<;gQ~F z!B31>F|nF8(XhS$yl&Dn?oS!r?OjhM%+Crxc#f$` z=|4mwF^{nE^+aNlJU#^ko6O*Ov2aHEb({AP?g2s=U<)AVx-Li|4R9J%?7Vx5`;zFf zu`L$6Z1PP9$C+j0lQq4!*GWM-k}p4QbQ^jAU9gLNeUAw7X(PaVp{8KIQhif(2kD4go3rvBFJg}`ZRKfEsmAU}JQG7ULWvI+;A&o96w5bqB`l@%^%OiU&gRx&_b zPGXRtiAn$Y`)ee1j$c)r99R#wioj=<-Q}X<8$XTA*y5nHyp7GbS~`BwvKdZu1#^n- ztA|y&h?CTF5KdcbZ=sJDEGA}S@c<+(l~8Xq9^YgCH#N;pT3LDV9p1|tTXaelGSykf zOZ_6IqJ(zI-9bxMHwG&~OO!^NxJ^A?A_5cLYkAyRsgQ}8Hyx-C}U4kn{pb79L3JrW(8P~$Kp?7LnVk?EKXm(i?3 z44WLUmSDheniQ;i}|kr9P0O!pgKLIc*tfH3C$ zF45igFLcTyLev=x(VsjLohV#!&+&{O7|CxK`5u`ZVrR>VrKYB>0U`}65WJk6Dq3;6 z7#0r~-;otTI;T5Pr2hXbCLO`UgHq{~`CIF7u<;7YnmM02IWQjpSmn>27uGBPf?oJ!#H@kcZUK``5`U`PxO_RmaI8Ekqsr68ohO_w|9 zo^24=P%0EM2nh6VET`jYYvtAm6_AiX5YzZ)(uh^){KuZZxN4c#=SM=CB1P*-MTft2 zvl7^r#MkFkddw~~$5?2jOFZ21p)!9|YTA_0`t4J45Ob!`lazxb1rr6g;CDcZ>yUB7eUck1}QJfPa(RuzK()oU+Dcy}T{ERNn1qgl-PIoHu!ZkIOn-F*- zT=@tD;a35l(t{zQ=ViO@eePJod0h0#o*qCInZy(!It6TS9GaJ*fh&hC0YA;DXX}DN zJxt4&s%F7tg@AaP$We5WM8jNX;2!EF;9bfah`c|bwR?MGRn)HwUghRVplmK?Ad`Uo zs^66^j|$ZEPOBZh7x@2@7D-CAmi~4n7{_|rt#Rb=XSTR|&CVcvW=2H3HOHY)lmshv zcwtGpUYfr}bQo`MmJ-jk<)T&O&I8H`SDJM)%WhQRYrEGN&1FQZ<0e&$b1j%5u+@bmL^eYAB2 z9;*~f%al(Yu7(9qQP`}+%?#Tg^nkhES5(umEuUB~Uj5w}*eU!<8DS~(*5o)k$>ip^ zh)C}*w68wfeI+xK`%?WR8sA$wbUIzoWQ^wvzdcVDO7}(bx|P#GBd5G;qZ1K1<8j8I z$;ggLxO(#VM#h*YUtw%1JNrnumFCl zZ#|xdvI@aww6-UrR%n#D%4PqVc2l5aW)`lF6+ojSz?YF|;vU*wZ`VFiWh;}8j2_So zg06jFwYae*lT0vYVCWwk{f)uFUxsLuAHEiaz}MlGN=ZRp6Fez+xO}6~o+yZ{(f2Mr`^!Z$%?_y-TE5i%F%EHfzjX5|hC}=I0 zM#pY#5n^JmWOo{v2VxW!5`T_AC{%thWVGVMHV^$KZ&1j%Ca1x4RS+ zVkCg|9Cv@3mynSqcRaKDe|$&ur(i~9*Y?i?i;Iivk^A#!%4(?wEibv4fuS(hRB~so zkrv;_C!)TY(`uz^eRt5lC@S6Yo@TSvow=fFf(P!TJbDnD;o|}ClI@pP#HXXZBdOi{ zed=ic8ouJewG5f|N~f3i?W$cQH>Dzt;#Vb+#=yYvcdDAbJk7tN`7S4`ET7bPaA0P( zEr?Dzvv;xnT*+!-Z?P#*B`qB=b1P4x6T(Lnc;j`6tDu6` z?fSwd__=C#cCpcEq^%8yhmn6wnW+a04PDbvA5;V)u-e@hf00iUA|j`}jU0-(Hq~ve zKHWwfqT#d!Kj&h}jsF@|KC_1_c&;kY>9v-_~ zjj6tl6tk&`iG?LFJ^4H8sO6>_CTvlS-E<&ACb#O5fHT$R8m>Px!4i22@3F~zB z8V9#2SG^CfpYxSbIxj6MBsLdMU;q4f*Q%=iT3IYM>-7va+vS8MHfssFv9a80qcjw7 z7)r_;N2RzeZcCKS@2Dijzt+oZit~6NiV{>Yl!e+EL7Ix~k$ z1dRnlW+_N*m57SAj!vW63`LV|kV(WXfOw`UWv_qt&CQ^Reg$q8uj@}iD5%;$!H^-s z_q{kZcI$0(zSvpJd+O7_^Q9FATZg4STrM|$&7W3V$DFPIyZL7&E>0EFUd;$8J0AnqFlpAEvl-+|0V{%Xk5kn9&1W+2$^ikl{E}fIHTWP{MK46 z8TGh18xu=kk94AC0fl^x)5EXgvXf*DIrgVDf*4Xi6tTcuz19U6yr!bhxA-2)<8Wd- zjM;Rls?mBtkKcjc$=do3n+eNw%x0POdzxJ^pb#Svzj0gjfb8H zZ9lxMI^q|;z-0iJ+7|%o}!^6YY(aDc5Ad`^GVVGm@Q;*1v7lAw4fC<;hn^X-tJP>iZrC^JT8Ih(Z zHMe5%kOeeJNyy1}z%Kedkt(n+(TIWwh|1d&ubA}Tf; zB(9u>rGBHP9^3D7`t47&M&3`@C^=Ww3~MeDRNLb;3r{{tDE`ezdIvIL>l>ZOPc3)30Qoa%F$LFc7Jy zAITfDC?P#yn||Eb9TIpJbH-+Y9OreT;Fy>|iHf!!26G{pbCgZny46ZpU8&zUrai%}|zbN9r*=lAxHMRC#V zNlCHiU{#Gr(wM~ZK$`pvez-kEM|W~kq0YB*bj+QYJOmj1vW?j$@+riz%u-^ zFxZ2+LIl+aGKNGVlQh}c=ycwp%z-sOI3Nbxu(EJ57I;K6VY@$$_+hB3##@>6ov*Kj z*M>ml1p+cL>8099L`!Q+C@=I|`v!nKqHC}KRXBYhy&R8g|5h6I%TB(yNWDg7I58~X z(B1u(B38duMeg;yd8QQyBI#KUk=NP(ac7|6?^bVM?Z9p$#rp(-?_Kw&8CG8(w%1ke zs9h+8l=_Ld^>;`-JZE?$icUkH5m6C^Z z7fBqen_GwLFNs0LqB8b!tN7k-gJ6&1&v{4fjfgO1^6+bi*Qaf2X?wLeG|Xq$P}?ATZYjn%lI+=Yucu^^7&8&KM%hmmVL+ zUJo1Y7q~rykVO(@xETV@w{KEwP0?m}IK30g>HnRr(7@I>xl-7KA)+Jj@!5awh#ROQ zMwfBi#g|~T%~3_ItxYkqB*b{U+T@wFyB5}Pkeol*|J?=f-MXC|fMB(# z8w-Nj&yvnTFk%Myfdei9HBe^&NPs)KzX2%Uq1pBb6JL)1)e%6Ig_c8$uyV?Gj` zemN<*(({a|WYLf^=wK|bihx%pn;f8AIhY&_iAjY1cgF2}hed-4wTBSAV<>-OiV!N__!lZ*zMctZhfvZ0e`16g5SdpxKuWJ^p3C} z;8t0nga9-EcLM*{+@7NXYV74!ok_+%jeH67va2gceIxGS`2=}s z5M|(ox^{^v8?q0>O{r2}v;~<&9R2M=&vfRt~~X$&^OyW4s>{ z`PQo7!GN^F#>syn$4--Zl18~x7te=f!rM6FS-Zk2Xo^cM${lSc;_0YATcQ1DB%2+H zi;J(^Pw82VMln_zhA&j(5`&!l-be_)!JB$W#tg3;bwSmr0TK?6UkzHZT2xpD+W}A5 zLV`#C64AiJzIMCI>0k;I#B=;|#TpIG`M;i+MlFos8?nVEs5!n{xO|3ygL-5?#_kmfuG6JQReMI|nIw*+Zx zdxVB2!W)Y%EFZ}RHPYdiL$ukJ3_?USGl81)+*zS#)7@4nL&4Zc!=;&;V%BgX2Wf)aMF}NB@aiP^OfMc-AD|@BbGf{`ql) zibC9Qyqs7LS1_KnyRrZ8Z7LLTCtAINOS6JjjN=F6OTVak*_8RiFBZ!e=aZv@Vp+Vh z+nX!9Uv#_}s3Zqxn~a?0cj#aO6NNDs z7i|y?VvV?qF@$Cg%*=E)hYHINnF&}v2(R0JnaPR$n@$&^aV=xp&GW-`EhcJO{=4g8 z*PWcn!2`KPfP{aSTKsf8Y?#c61A&cZM3<_;h2_(&X!C1|gDK7#k5i$>c0taK{#jd_ ztKF^IosBJNKZobXX*-^$!Cavz%$~72SwOy3vz#rWaMJYa2&E^@=zA` zKTV?kdG$woZe;zv*1IGZkh;60<*k;K*6LQB70(9ng}xGiL3^+GXZz>kIUJe_>;?P@ z*1x3dk~}oj-uqU5hu1W8s()PGO+{}TlJIxT0vA^rlaw0Bf{AD3I zg$(1~%e|+eR3(8cnhM{U;-|`tgv)PB|0IPY@HG1^7pXc_$M{0PZMI`AxBff|5pLMUVgh37!UB_Ee^a?d6fDD+TLvxoOBmLnhXFe4Tww18WVdcJm&y5NP5bkCUgH>rx)3+k*BHwm@rg${^`fOAF%leT!VNTgYl0y z{XUGpp`w~RZ2F}>=|Kz4oMI2ry}vOreSzk9Jrma|plFzI$UAtH3lFA8~{=P zX@D|%$yTQOThYfYqdcF>4IXZ^Lww|F!^5zy7nzPGZ|*}64<0PqO3WNa83e>_WrCF} zubq&7hF|1?X)KRrAhG1}WW%X50&}>%$uB2;C{a*o^r+W+o&b~jLHrHgTH7l^hq{&o zZ5sg)wXlL!dG9;e2VQwFNy)$AE?Q%=T$hG_{6^##E=fwNWh)|5IU1Sa;hFFEl}&M( z{4+4FONq#TTnATor$FXw*DY*S=k8@6s1^ya7G9H9I|efZM|ElUj!_YQaqv z?&`4}g63Fgs@qiKgo-K$%8Ih^=qfFjM!$naAnzQEDT>DB^wqn6KSC9(bt)nE==Rp0 zP&x)^KxkdVO1*ZkoCz&LA=Bx!O=$o&Ag<5~=d1M69xsuJ{QUC9ohHAh{y+BK0xYVn zYaAz36a*|^@+}*!wbDA4kE$JR3Uees<9nWEp>ZUqZpk=hM2k zB(WJe+|%`Xrq$t72j5ndt(%_pt9?vI-l@KH6nzg(puMIe@ujkueEj zqd9(4D&I0F?)pX1Y+nTV6E@ZXT7#pcpDz>j z#Sza4w>%p@YdOD=pyK_UIg*pqQdY@ENWsO$^~&Wp8VXm*D-<=BmDN?=uL$ETPQEP5 zza4FGr0wLBC-0f*mED6_G$#%+J2{^-QQDy~)ys3pv>=S8Ds;-6^c*$pBFW-#TjQ|q zFondu2cJ)R@Y1O7zIsrs>CN3w^NVx_OP^2QJ?;0J9&40Wx|nKQla^{~x-{l~>b0zp>UhSZG)uPnvEfsyy zGvsI5m^|EHN{HTe-+k~H2%S|{4h-kHjMHw6ci}p!ukEalPfC0A@Zre7l;(2L^bWi3 zj6u|rhO=<}#(LqId9RPRV^!<@a>lxL=Skf^BpvE*?8&ri&wB?aFVm4ww!IgX?knvr z*-nw&afkM)~e`W);7Y4>vkzW^cBS>u9{0SUGHFS1dU=T>J1 zxt+R%^D+0mh+o5pTdtVN>h!5@XHt{6;6mI^ zLTi+gwn%pV{*-`xO@y{fA{>>J9~W2e%_Z)jPtCF!+GM_ePm{cCLUq2*4#sxxLaooG zal^ew{1jqg+dV4f#6wbyZhv0B=W%+EUEiai^H$d6M5l*`SmDAEM=oFW7bBy7y);Hb zBt!C9nbe5F_WW$`d8S0GL1n+U^Bav4beBuLyG8q@yu`Qr-e(eix)LK?{j5yX*A+O$ zr@RjW4&2k-dxePp*b^(%;miUP7yQlVt5*AbgLZu?OORb}pma?OkI)PrtG`LiL{&@1 zPliYtpNH+&j^O5?cFj8%W#(t4d07D_nU>~5j2KYXl+~MmLcEVO9C`rwkQw`uD~s|d zHy^`n;^SqG(gcbzl}_cu29%}Bo!SA!YA2T7&L1a|-}Tf19vt&n%{X~a*zse`tiDCQ z50Bc{?rBerdmO0v@~{|DEAj1E%2zw&lyWK1iaIcq#F5~XahcW->@H#rzSC5h;eH!r zbc3l{CL@n7Lhrv-QPen*CV&3o|JVz7|A&w7?|=SYF7clqB<%x(y0|Io7tq$rQkS-)xva#3e*b4eNCdp79p$t7McsHxSr>9348=)fH$vR@b zFj;@Qx?WVEaP6+9;%QI#Sj>S}CAq$^WAoHq(ph}rDD+CyD#5jkr^{Mv|u)p z3zvPx=brZ-)mBE3_71>U3~={1U)!#$V|^`hPf%_7XQkaM@TaY&chs%NQ$_~wnZ-Eu z+<9g{gPEk5fX+V_!JG$`vx0 znUUC5dcD9fdb$$7Vy6>7GdwsZ6kX%tc4Bq;xtsEW7d}C3V$^eF_HqOd+3JJHuuC+r zE?x7vt0cED+`kSo@;#&s){KKHKD;6KsSNo(7~4G@X;9rwC(^>AN;|%MLHo|eiA;aI zZ@T`D$67Z7G&_0n$Htem%IoPo6FmKdA7Ah(rp(;6{n%~(t3~AM=ScUOACukDN84_d ze2HoY;=q#w3^z>gTF@~KmrBlvXGPV$D1I5XUR7m!X(_Khi_`q7^hMeX#?`=7+Gh0h zV?QI*ei?6W5fT{=2H3uiOARInm4#al2x3;Z8Q;IakGG^j1iP%Hardye3u%V@Xb1MR2AsPgOO%(D*D1A5d--VxPN!|8Lz zlKMDaDy7uO?aS6nXBjjCPNdFVn!B3CU3Apz*jhzVo!4uxIS56u;-S zXCatYELhJn8uWS4y3yxajz-v|o;u8COLK@8|5Et977{UYboWk_yjJ^#h$rJKAis#0 zVx~f|3_V&gD&{>)e0}8^$(;JSuI`yp`>^B8XL0JH#d7;^vMZS13==-Hn5Q>;mo;2- zP#d#HM?z>Z_R#o$uI@tgJG>O~z(uk2Rrsy-4(%#j)d*bu=!jO`&Ft>B5{5 z(PJamlIX8gsRdf;TIvCQM)OQwunSrN#B%XtF-LK zV`qjkncqW? zJT~!yLL<6-=1Su-Y~bB-?gYX!cuoW==t;nSKAtoTvhe_JPv0sj?{WyVfZwa zO#lW@cP302#yBx5NM6+abSvw!$Gqziy>u6NbFY>?h5WNi_xzlKBcr0L+DPPr1F1Or z{d!FgA6TDU-*(_2Z_cCMpr_CT|JQ~YKl*=JgzJAp2=F)lUqFx_{@wrc13-Sb00RE2 z{@;J(_=*3AXoqe3e}cRF+%NzC%m4rK|G)hIKk5HrTm1i~r3})Ltp*^bkpDloYa&8Z zIZW$7c|*HZU1H#_TUjDa!FK|7Zr8fdq|v#vu3pw4hx~-R*&c`C*R-6xJy{s7Fp6CU z*J5B?haKL_lOGV=zVYtnhp7~5nacMuQ5Mo7b$%Z_W+xK}eQr~A$HJeamTsiUCeah8 zsWz5qv+`tLQq8yCn@Rb;(k?mZ+>TNCGaT$>tP*sXu4E6<-i7xVG({T^ad)bM;up4=M|94udadsTt{ ztjU`_<^r)j9ynGTOkD zro^+Je1hof$E`+NC}7Ph8?EW5crQ}9!U-CIm z?MW5ev-9+afaG`EYbNF6RjK>WbxI`$J{L@X=b3Zb;yBlyU=lJl*#~SjT_TX!{qK#) z{jQp@_aZY2Z*=SA@Hf4jb=U?tS1_^op8Z$<0v?QJorFSY15i{7E} zFdK{`RH+kYj&?@d;_U6vSjTVppfc?cBIpcc@Z06z>M(-F-)i`=+T(HNPAEr>ujH${ z{WkD-QsnIIzoOaff;PuEBF$_ect^YwdP@t^))wcYhC`a`Af2J+&Dx$@+M%kS>PY*a zwAf&91RHfQ@=w~3=H?Jhgg=h=y(aD!#{X84b?d;JMQ6pgmPGwh_3tZpzE!XNku^Z0 zw_@hmEEov5&%qJ7Wld8_v*hCR?@bM<4TUSPVYec3aKfN$zG(GN@o!!-{)!gqR~nrDlNGIO&0 z9iP80<-f9wd>8`339Q!-!&>3&(DqQ}^?wl=8y<}`|2|nD5Y8w5Rwke^yy5)3a9)9* zO2apug_azF;1vT){sXOF%7y-b8YrF0rVs#PdB4}W{az6n`J>(ZH%u*5rWTK}wA$2A zg>PSAFOy*iez+(%f*-*TJHe}f!veFxa|(w=|Df8N6mMmW5*}x#17rd96Wa~drTkH1 zH!pK?@^Nm#2^~LHso(4i@In-B`aC-@OMr?`_WR019|(M3WsmSXY?}xiasT!1KlJwc z{>^yHTh4 z>@0sH!fVU0wiv9F>mLXH-qY}p6UW=z{e&NX;P4+vK%4!f+a?eakFxsdSl=OBg$4hl z^H&6R&LXy~KLs%U!&R>zt{DH0X#_Vc&YpnTw4>jJT@B{~QvhFn61{xyxOK5kYytZz z-(4`+e~IgV%U(MI=Kqbo{~q(mf4uHR?)C2!B>r{$M~~m-fB$6K_x<>r{7)DmBm{#C z!r{U~aDILPsQ$A69R4f+`;Q#|M*asvD_-IMo%!ECnEd^&`B(1uEBE`4=YEJke**oR6#ps6 z<_9w%a3B)-YamNB&I0ff{WoBEB-Z>(g#Q;n1Unqg(drA(|8zQh0+=A!pQT0L)8emU zCu<2^_&=Kyo4^JCR7-xB6T{)WBL9y`@n0mwfABs3S|$wt@6Ck&m^A!n)83zS2ZTCq zE{@@sH2uc}!;AaBO20kQ5hOMLB7Oe`K|jsaA#TeN2sjjGGsO8XF&^!@DF%?c{}~zI ztbh_|he7y%?HT;qGl2aU_6(2&B>s;<=w{Qe?Sx;)Pmka7e_%xao5le7un0);|1AIC z{PHFL=NA+bgzo>sg#|(WFZAC;&kx7{@%;bW`tyE?(SX|q-jQGrJQ?g7O7r3n=Lr%^H({Qpg1KB;!0%neMBS2>i7Kw7iIAa{$U}k7A02+qG!c?H#0fr&K zP_{S%$k3sIZGkXC9loQ3Fz8|(F}4a2kT|dsU;s6w8QK=WfOHEF(tQ~6H~4QKv^N{k z=9{46Ff1BvPT;WvBlBRe7C3Tf(sqz@g*oD2&^86k#R`qxq+}D}H|l;y6E92$z1i>l zrk_0zeKf}qpiL$6&8d7vEe?|ge(Q`CnBiuc1hYaC!1Tc|AoIi70dAv^wzh8Hrf-Hu zA)NrD9j(y#EwEVJZ-#5p2uz}ljq3%sz?o0~>}Sde=HvH^Mvm>bUN3kE>B1qN%rIRp|*a6#h<&=}A{ z!3a1A8$=Mef&zHmM?_~Y+?NC54` zk(F z$_BzDmBrF*b(Aczu56#c8+Ex`7*+D)2k>UC8|#)a8}He+vSr`4ae zRnCvuN}4uYmD#9oNaz*Ooy19{Uud&mV@)4_E7YsWBBK1fZz`cr1Th)+y6DZCfA026 zlc~bBT~!`;-=!}aduEOxT5?w3)vw7^4OVoOoB9OG^IP=Sy$djXvE9R~$eH}yUTZ5) zC(l9W^r`l7kK!xuiYptso%1Y-KX!FmPG^27X7#-M!C<8B$?6e}#T8zupuX!(_Z90) z*oIknthI*u%P@L9gI^(lV2x z8f{tb;SeZF`w4SyQelpHn-QW~Gj$GrdADf!cyBk`q|tb2N$(XCB33`OTL*Yxr8nT^ zYDF~KNl^#1)s7FcCnrW5P>BtN5h7A0-?A%*vFo3>aRzfF?3{MB;;G}=Sz|W76(Py_ zr+BhkTidhBD+~h0nQ)GM3PDoy-47y7JeU$2uCWD3nulqfjPbs*Yy0h}N41D?+ZrBi zOnLZOlZ@9X{)`>oSD9Tp-D-FXCl>-c1I8>{idh#0tS6P~SnkY;FUbbvD)vU$pE{}n zCxx>xU-M^`mG>yGrKP*CH*i3}(2M^tdr-K_iztn~q%ZPfHM@#Xix;|8yLUIP>2U;xc8B%l*q$}ShwOYXHTUqDF<)Wb?TDNC zF1Im+!Ole2$UA+70bPaZ`IQLK`@P{&`U(~8D(;oR#SX?}L#MoO1h1$`gU~uBU1I^c z3l0I=b@f82a;pxG^WMGlS}VPm`AOF!$}|nTL5Z%G%XEqaUkd z_H|M1a?E?Ww?f?Cm?vWUg)_TP6>;e8&)&fyn-OWiF6}9>9;z}Rq;%cY6*pMz9kr61 zsem!J>a36?Fx5TNJ%&=byMX6(>M)2*XBWNPQ_$0|lyUo+Qc~fgm-3>SHzzYLg+8;X zOjVMrV-#swMLfYjy+UuRRYxe3r-~4#R zC*Bkb&9TQHd-_)la~2zwpr}}i4DsYk_|HA2Z^Lpc`7V?^7t-v0;**@4zRq}Xy?>IX zX{IOeXz#wjQ_nK4+^U|macRFafPH##y}-7e;c+<49rCVBJDS&LLXY)}CqKd#o_TAj zBOlKpajvM}|6E33vF@wfG)IMxUXQRO$6xL6TWl|%)YZBi!lPeUAey{@pnJ;q_@M07ixnO%$wUbqlm@S0Q8jm8dEFct6FRES zxP6opMe8u7wRe~DYFeF}#JS_QM0D}@b)S;v>s8@{k9pU_NA}Onb%X|GWYN&SNmSVX zA&ax%Mz3}ib)?ABAzQzY>#_VOb`5Pi2Sr znA)X?B9(*_Fp>Ps=Rus0Z=7V&9nU{cLLk=n5ahr9vR3hmb||VY!tw&?WxM;Mgr=N> z=lNOa5{RS7voEKzF>yGlJKtgZX#OFI?PC4joV~lkgYIjbqOpK$obq+)znwpOB<)%$ zMH7Pzy>M(p80FB1BN?jiqPpcs_a%~KJfI1F)bHKfn2=;)p^Npp<3%x3IMwDsYH{S{h$-P4xY%5aPrx?cAu`ht*u-3^= zp2K!IQ=LZqyRh#jL*9t7pHvD-B);D9YT-1s_TD2|BV9?SQeK?f$LJ@6B$AN24fkk? zR#2%C2-v16B{X1RwlHPj%}m}jc9{9>qDNR@5@++sn|)1z?vrI#1P?k@Z+sYMymsw< zmiP5NG1RrS&)D1rv@eldy)b&y-$7YS_6WzR>kghyVV;S`JEt!`&B3r{iCz`HJRSay z!C$s=rFw09-Ppn%8)4RJ;lQB>dUv1ZyTv)nI9VTm==b&#S%vzGGLel5{E)$vo!H4I zZAm=`#sb})4hz*6)1Fq=jP@}&spH*Sc{9_wOVHv(-=Mwk=hY*!@W$34n8TpQ?VS#m zEi!Ao9QSpaD=k{@g-I!Y6jplVGx0IBIqJNCAoGQJR*hF9LLAsfr`Vnay`LQ|G#m@p z%00yT`B@$AMW)MVtWRx>!l2lx2KhxH`^x>ZLpMD9-e?~7_*CX8y3YhP%Xyx9$zq+y z$MkCLs?dAy8j;zy%PTy6wWj+gb3Fxo)bsjg>b^E`zUQ4Z>^xy7A=A!cT8E=sou40+ z7tDye1iPNfIb}qUr)i-t;x|%a%t?R7deLHvDyUA%>yBIW9%>7w=a$yCW5-zMFGszw z89CUZaO(cPCbcd_B!UMKVr726v2FvCe9VdkarH_(QS{{HH?OPTRSIpG2enHsp>j2Z zy)56pCe=SdP9xPXrf`>Y5f#2-9`+)oCMiL!fU=4BW4H%pJy$Zw~MdNan%p?08K!$zg_SS z%v^H0!(u=Aq@(Oy{M{iQ%hLp&&!-u1w|6NZD^3Kz65lf&+JvRqabk44%Ugol5$4i& z+oE2uN0Vh1D&8p5lpTNfaFUHEo*-5sJa@kGK~9WGV&bb46`mkA8tQjHo71sJx%j&ngX-YutU;{>|`I5%4 zyK|{>kKV}@#D_cN&mP-qPqFrQq|dVLyea2O6pYFs&1kfgZ5Vqo4G$O<@VXsV?^dV8 zxo^LjKy$1GVn};{hba?-6HA=>Xf)@gMHJ?m#PHNq^@JG7aAGq~aKLXC;vZgj{#lgbGsd8Dj z2&SvU^hl@fwIEYu{7Jp#GxVwq+LVWDR<06z2~}_xyj@W1%L;Se=Q#TG6sddsjv*fE zE2hyqxHZ{sUf3Pz?wax#HI*ha7jo(T64ij;ht}qOJD4iQ9`Ag4B}fB@LiCW*N&9ka zSE;HC4xv9jbok+WG{W4AeM9vlEebYaNKgK({J=x|9JLs9vVc^C@Ai|(n!2zQx`rx~ z+)#(MRRvRtVY9=BjtWRWeE-t#&I;*8C*s|n2ln#SUT~pOpt!j*C8j2?Gt-91Qo5!R zUf;-hQ~uB{`2DV&yFs*Sa@vnuPQTzk!kKM({7i!V^|Hz#3kjsc;i}s#hgV&NT-3-? z2e|o_n2mLpxTRj2mwnV&rGLBBF%ciQOjLR#*<3S~f$5}B*s&8W=34Kg^*rDL%YWaxz(}T@UEi}k9oi$Yo!vr_=bK;6^d6ZF!1dmjKqkUQ@ zX!f>5-6wlRR0;Iix}V9us~rq0>* zh=u)gRl2GfR9`{UqRv7*=EB(v*#jkR#zX=Kl#6&9mPf`}`^0rUM@|nBYL=DFcpA9^ zgq-zQn`KQ~eeZ5NA99iXjl$BC%I8kGwALlp?w7&_FHrXF8X00aB94ZY(MqflNhcpH zjU~VPNmyGo9cy1%Y|JiJ;nF5;t59M6~Bb++t%@p^eeq6Zw$O!rI?p5ERC2{YIRJGTHDKbcL;Cg znXMuXbHCl5TjC z_rfz@;gJVMtrvGg`u@_RgOkBE92MJ24hvb`nae%uSKsYY)OSBBsCZ+*o`sxMQRu_H zT^FBM+zwM!7SW~}6{D15A2?7rC5C1>wL@+w*Y|)$&55y=Y^fvLI(AqY*#|LfC1&uD68ZraX%d zZ6p5FpAq8QF#f{wc>=LF^@ak!=DAuA?!AQ~rSHW`Wj@%fQ+;aq99=@XDo{K`O+>A) z#J@K~G*Rt0$@!dm0Q_*|~E%mT7}p`6U13UH5!K&&I5PllV}W__}xZX1mWz*c>^!nym*mN zo^r`QGmR?kBJ4A1fB#tG2ht%it<*HhQ#gXHbeai)pq*Dq-8)l|fGM8H}miziDOP1|!<}f)L-!_56I>o`W=LVmb z>pyNiHy*$0ck5#D^H)v=Wy(lm|6rKB93{;eB%4N|#tpySaYwyY71B&uBjwY`>BWYg z5mRQ2lWkn;%gnxUeHY*HkZlE~2ZvGHc21Dg6@2hyk+k1MMlqrI>wu>4Sx-=5;KUQvE_y~8q*Ip*vr)4O+j z=y|jjq8kc5#D^Dfnl|1td}r`C6PW5;h={1~V9uO#Jg2TE4n0JNG{>2td0p-7H#eLl zWn7^>N3dn72IX#p5;JF&ktUaP z6$c3H(2hu$tDP;DAnq!~x`|gDe1bD~Lm+qn1P{Rt>xgva z!4lXY6kl+h_-%(927TY$A(#64i18QXpcSR)>iB&C==&ymf}=T~3iu)jhy?(A2!4K1 z9)1vFiScdi4_ejLzxT!xzH$-T{dPs#^TB!f`Rwd|=s|E)bawpf9)vS)_GmtBG-316 zK}BaY){$*13VT~8!d47U1T=JMlWtpc3qC;9CZ4T*PO7M%{(+5_7(4sT9uV|aNORP8 zID03&?Iw&l3fj|#?w1k(X7~^Aju;DzpU($s`2!(fxWAtLCh#U-#ZTZ+PSBt#C!|;* zdd1CgD2%!I=0`X`3T@6Wh~lvj5=8O{ih)mN!f0V0Btp=_0)-F}6B6U!f=UH?iXDqW zL#V(NUJSs45)$G!L-HeeMBoB~Jc398G>;iV7{w!m6yk@2?r?-4duhSJ2=TN5~7TO9{6|L(p3lT@a5Z=ueO-4 zH+MFzfcTet@KUSUE=W9D&JxG~SZAP6o9hfa_C@@T{|F8}b^&CIA1=lN zhx71@oPqO;^NWZJz`6Lr2Yyz*uQTS`I%P?|KQcuUvQy$JkTmKzLBBXc<9}q)02=Z}!U!5HAnS9@! zru3gap!rW8zXtg=$ge?u4f1P{UxWM_5dFdJK zZgi6J9z(#sxNG+s_XtJp(z>W>cKH}_3j=!Z3k%aik9Ap2L5X%so;Ar~`>d45k019H zIIZa9_IluuC$t%ed?%8;L%QGO*jd!aVg$k0d$0Bo5s_>o+5`Lf$(M-uFHhTc{^VqR zVfo7WN=*AxWOi@g4H~Z9oJ1s-=d-Qfa;~i`Y6cyW${0^8JUi~y5G8O_Q*!zQws0aR z)gb%zc~Y3HvOz93PV2tX1Fw|@m5>|Oy=Ko=CJToR`z&=Zk;Y7|R_M=L-*}QGu7+|Unt8ixT&+j|D7JG6>a%v*^8oF>LaUGeKdgE)@Dkj`>tyQtQXrY>Cm4^zeyC4>Z z9@WfQ5#6~b=WM1$-OL2eN5b^;OS+l-2CuaGph|U-o-;>^4*`03;&*nXo0i0SOy;YE zgmdW)UEZ&eL{rjyNA427>hM)|6%LKq+gxdRW>;k%-c`72(IB7e*NlQz!L3gWA32S;x_x>l}J1S^5JwL3-eLf`v@q{WoJe)zmLQUx={WHac@E}H^l-Gky*u2B2iksD| zOS2-&QfM?%q4dWq(4Ip* zI;;y@$W!F8m^LHciHfp7W=Fgdz#*d z;2!q8xcbnv#5;eoU|iU>(4@$H@FE58F_YpCff6%UWmb{?KJ|9FJrQg{l86Zj=TpN- zkuxiI+f}8-@_Sg;KV9txswXigW|(J>j25zqFrQxyd|!5T_$38jYHNa)fk8AXP>cfz zSMB9p`*YkLYhKzxiSKr(d|=m=v-Iu~H3IqaGME#-EB;bQh~s3p7_)?P?Z=MH*@Z5g z%}HjbGrg`K0t{xweTL&)@U8lmgG<8+nrq9C_0%6Fc)K5R zAGxdU{hV}XFe71k^ijHroYW`T?8=iN+zGQ9PbIOb13jCH7BVA>r_#VkHBQ^S|O zkHrPhb9OB@pD;WG$nNGndcUi2_(Bu{eJWZI6B5WQ!J#jOS>!TZI#qF#VK#X(7t{PO zfAnEY(=$}%{1A0mWaRMuAnDhXBHh7}rrvIui}PhH>-!q)bm#ja|7TOs+k*@prZ1TBcN!9hmON=WFs=W!fX3(n5_Z0n83{Nr&y~aF> zizxP5p3!L3i;kwQTW(1Xu=oQ&o4Q60sR7vrit&1+ z@xF+}-ps^A_OdIKT?5!M;GqoDO4gTmGm8tBEWb^6Zl84+xOFluxBRX!qqL{1hQvfx zzh^Khm1t=+<2L0UeycZkvaA|eA*%yF$r8FunL^c^Q*qLc`pVeZvu7iKO_w4iqf*OQ zz8@HaD;8T@p6_}n6QA4bZWBI!_K88bex?PwI^+oCLz)v+Li^k5C1-21fD64uMr|@x ztQ2&psP}Bp((JG$SV6FQ>JD5=Kr4kk&ZiYl7H}CCI3{P%SO9U;e|lbSq1R)o|7@E4 z-C$tXAA(smNUwZ!_TfEs>eP)&ef`XEOVylx6FdEBd0qp<uX{SBRD6s}S|!7shl zGp%zeo{i%q2-S-X$9gUn_VE-GCV^2DcN_^$)_FvWn+?Eu-aqBZZIs79oZ#aP9O(Ui zC-oTNI!&MD<}6IJMW&&7YhVztyy#M2V%>=Ap_;>k8`Y2`%v``JS| z)L(xHl8Fb*W4J>}FKT~&eO6{8lYWPush3kl5KBq9p>Hu*YKz<+XD*X?ex$s^PxC-lcC}1qRl$KvHbL6!hN&U2)zEywr0k1a-VMhRG!A)ue3oU`uU$m|Q>5GM&>%1fnjwO=?fj6UdoR_Po~>!mvF*SYp_)>cjG2V2!vJLZ z;w@c$ef=Gjj9DE#9KaAS(8>fVP>CfPkeb)Wij`a0b>}^!+xziyETs$SB(U{24@rpw z2{(egIbb!`kyo}Y&A1t|&U0@R@;_$OG$m=Vk>&-0n8I?P>Q;G80Fy}X$m&hX(YKHF zrZ;M8YW%OR^acZWAO(2DX@Uja;ht1db8k5J>m>mFn(s#i+_-ULQ=`_zzzk1@y9@yn zKB$CS8GD>Q)ZnvD2!F!=c7cTVcr{dfptq#QrBA9ZM#Pj)+Iwx>bhw+)PzT(<%{(G= z;X_yB{uE+E*_=ynJ@{;`E7m|{69Y^&aI}spk-Ww?eBMNh;Nn4G!g@5p6A!t|##y@- zU74k7&8AGthW<*%o&qOTK%@W=)H?4ez;mtDjq1>&I6=nNyp8o0LJd#u0X~#8Rhg>7#G z7h@B%^SOBr+<=`HeDpL--T2uST3m;m~kty?%!JoB3CZNc-@wOBqNgA_Zr zRRzL>4l|^2Jf@o>P{e_2DVm5*dwtfd)U^ty3%NT{ryM4N8ma`fbl<& zZkUfBv{2yCU(+hRLSjCV&jRe3%yMH;&Z^>KwTT>%4v#?5{%du;-fvTMnJ9ygs7BZd z-lp)Ar;_|s3h6lHRUQ1RK}a|QRuYTnyA4c?UdM!|hv5oa?sf`V*J)p(4mhwmnak(R z>5O9+53L7rCk^ey^p4JUOs)2+WV~o-7O|M_FL#?Rr7y>uQ$>p=-s`gobPbe{!87uje><+uZ)~Wdq7oh& zTNjnN^q~~879f%-pE4vo?9VIR2O=E#PP=0)p|!;mzTS6?(7 zzkW2n>htu6*`g`0bk{u(_G^f4dW8Uy-g9>Q=O7pAvs&p>t8W>nJ8^W7i;JtK{TYe? zFt)W9)A-zRZKwEp(!;9oKQ{jqxfiG1lU!mq(8qiSaIK& zi7YWfPri;G24QxWG3c?pFcAZ#J0J^bABf-8WdI(C;fIUG9tnPScK8;{Mj)X&+%B}xn^q+8bg8!1xsGb za~=1Bj^&iUdvQqsKTy?w5}wn(ndW_Tqx2AuW|^aqnvH&yKZf)Pi@o#K?r%AUMw!<5ue`?6tMtI`I*#nxBPT$ zCTs8b_pKy^@fn8zi}-e=9mxEEM_*UQlH`4*fE2{hK@f2Dykl8~^a--wDMq=I+uDGC zc=UM#2uUrU_q0D`Ep<%~966G|*z585qfq8y;C>CKHx@yX3~UrBrZWrVS4;?VkwBYdi^=s_~2Yp&@qtmEaxN{=p z5KGo3aD@KrN3jbzkWxNHmfeWd1hF5KZAD3Yxr0zL37koWAviTtg>eGg;rKd-;myv`yScA9TA+d5tz^o-A-24Y?mEZe67F zS_IoIYS)=_yq>wE!`SJquG?h(a4XYQr!^3|RD-pN0fEmH$XiX+tUQX8YpMaUZ_nJvKxFIp1(Zy__2|miAnK`E@=?_ErFyX8iaUupF|IV zgd2*6)AEO+L1ONDpG-7H#>cx}YOz~#v75jo$?gWMC~y&x{=5ZAui-|*js}>Rv7BzsFJsJ#5xA7!@ zwP(s(gof+v05zSl(fy#i<6eu2CZoLB%jfo1kCi!X^z^M68)RAC0`b<7(4(5YAGLHv z62Sz;)<1v9Y%}o~1dCL|gnRx>eK9mOUau+JrVZMRS^~aKz-?wgEk@WbW{Mg}L795I zq`oiFQ=LzHYb~pQ@z8F1ii~D%FRt)bYIaUgEow4GxJ(+6Quz`cW{_~U4Kd%4_OfP| zkIwFsSuuU?KK@!qQwm*5oCKG?xU?J7lBA^+z!+XeCBdzty>$F2Wm+!3XU6y_@a51V z@x&|dBr<&5J6ipw4tHUx4 z&_2yHv1~xb_H9J%leNT~dyFtyqMx6LN&a~9HAwOffnwsC2p$1OqEctA5OxqlD3K7g zW69Yv4Vrr6+tSaG zBsq|29z^X)RV^(rXZG8xf;M(1ATlUtQJ73X6AfnwGC@ zsOk5N?@P)Y4{?8VRKaDzg)4Vq{1&lSgZlj|l-gQa)49u>2e`{y@_?D|_hAyTzKseJ zW#<`BuPu#I$1mTMVT6J1q2nQO-h8(+1I1x<32g!@pyREOkdOo9+qrh<#0b?u;pucx zYx(eet^P^o^Y*E#ck0troyUk6-mI@0;WZWoZL|%Hkfl^!FT67Pty&WWBV(Jr=1(XA zKq>$@si(CPA(rG-XeK6a=SCN5KA+K1{DAlw?*;LE-i~C_0ad$b%b->s?guTWAolQO zW3VvLR|E9zBy!8|a>Fzwc{?nMP8lTGO&OeG5>g9QnxDnz&hEb9w5uiGsak^xR;S0E z?P#W7K6?qR`}e}~XHxQa!t!TI@OQfKXG-uly6~q;@VC>uLiCxN-nDa(!Tz(z?rk60 z$Cya&2s7EgTXGwSkapW>XG1I}(;?n9KCJF8XPE9J-9ff(r|f);n^DlflWN z<9vLYgcy8nm-tnk^hfm1lSwtgWPLjavO_iM83M*0-OHE}n9n;(mB%~r zs6pd{Qa}hhNC?6cR;g^{2Wt6TYC=DFN6yi}KqrI2D?SCH6EbbWTzaXe?tWr$f9EI9 z$;H{6q*cbQqEg*AR2QjtCNbE2!>h}pw0w9dC!`Wz9)}Vz>p!L`x^vGR;k=olTbLP! zZjz=XxwYqlUd~EhC7OXU3)evCmiS3U?(GV@(!-6Zo04K!&r{3ZJZzG0A!0vV>$|y9 zTTi?c6dQ%Ube3I(lZ(sWP_Ea@r}Zd7*2GAP>{at_l5I)G2AW=CZR%c20*iTiQ`?(G zDVb7Dbl*PKOSg7yr`Q45>SVLh)LeaG*s}E`dg=Va$)%-sx|z6>-Z8cN4*>zNesirv zI#%D*O>`yJ-3{S^R9bE9{>@;Mlo&ZY~bUr>I8^%)4lNqMX zft2F>Kowkma(RVm=_N+Ty znX^}6YMjw^L$+Qt@2nj1JQwNfq+(1NoUJ~&OamGx-(5%Tz6g0au(;<>5_swV|6p+M z)Gy178rQLQHOeMI_q_j)*Ma--{T~<<4$F%{VF~}}7=QWx4`JxwhrtE-`Go{U1QEh; z=>7jfLWp1Q|M*WFn~P0q_Y{NT7bPMRY5e2+K%i=g#6+9#12MuUSpfZ`{Qhg3FYg2S zRRj1}4d7ojfd4Po06u+w9Y;hY;IjEZ81aNLndceZg>?>r&|a0DLXJC)qe)H~-*Dtk zO1<|ntv_WvrI0J4L1|KlQ!nN2L8gHC;tn`G_4y=xT#owbf4c zsUl32h}dFeWR%-f1fgW5-eo1qUI-rHXFnmjN9XK? zYuXg@7dg)hlX@RckU7tepr<1yJFSJi$dnq%eOB7AA4^d)aDoc4JIK#fC33#q&P*3 zy9Jk0+?}EYN}+g*1b26*I214L6eteGtrRcrP#l(i?cLdV|Ja?`KXzw+Gs#5mdCvXZ zWB1%V=S)ImuYo~uh4lN!vWOSJSk5F{8u{)#%l9&6lyx8W1?hoF9&SJYj$k;rr}_ep~w7esOj{IDXTXWLLq0 z{q?;gTHO#zs7K7q&U<&-)@``ed$w;X;+*sociWt)xMjshhI0B;_~0i9z%CLlNb7^s zMx32(_9$=U!qFTk+u!cvu*1BeqmuSmugO=1fgeOoIg;D0D7BKL6cE0Cgi}7ET;mt| z(8tM0mY)NeS`cGm?tQ(0WlbC8gIu2$&C*Mc5Zp(BzJ=I_Ay|pwLKeI$J*N3?jxcBZ znt-iMv}ddb{;b(ZSVb& ztNBBGg0w=fxIzh(mN$JtRD+{}B!%cj?n{v^6qu-)P3{!y)6qKM$2pS4Fy=94M_!}E z`3-v=Z(MwyARg!Ki;#gW&!;*KO3Mq@e+?|OKr%m|TXw-f_*e3YA3c#egQA(n=q@c% z#T@x|^uU&<0Suz&mFzV`zI`iL9<9^EE8O)EW1a{#<>3c5CQ&pQ8`5qxkS_uo$`&(n z9`w{)g6z`k?Z%Uwm;ER3+`$o(o?*O8Sd-+HfwT$;9dr#XDzR$3xtDFkpEwH;S*jmo zK?M1Y`OQ;3)B%pi_e9CnuV^7|BtSZ#sv+k-`<7$lQ=2wNimn7M11d!On2>k!)6+L* zCmc_Y9Fbkns38qefH=Um@e^+3)HCPhiF1U(yV4iVK=HDM1d!tUj}X<0npLAmqaKk! zI7d6jIG?nj5_@mi0l$l9iPZQVnxhjj`FRnm5WMq65W*-xY-2Cx%e#Cl?cVZ_pV8!p z0SYF*Wx8Qx=34Z^-(2td=-i@%eoA!A;b$Ks8m1@lXUk1J5#=x7VaDP4_uq(AybkdT zx|tyjzJOhtUAo<(%%fB^V`)x*HOCbfbSUjBZ((SdkyytKq*Afkt~zpr&R{Av#{wiP zAmQn4j8M3G6QFsE25OT+ILA5H#5-x&45Xq_&_i&GLnv$8HO+dmD3(pZ4fq`b^1sh! zcM|CeLjZkNmRvnN@l=G*ArO#PI6NT|t883HLyj8;FU8NGUmY30)#_0bf`HCL0lW0O zjJu@-Vq7o)H_LTgFXZX%1gQ8D2HwH;Dd~hyPu=V0eU}8({K`Uur&CZshycK8jcFa0 zoRXb$4}luLR6Md8Njk5`2+<)5HO??!)QFQ#0B~$|KNG2uxPGu!9&r3KqWldgYpLTp zMWafK;6N?As(_d3N}lLHs^JzDI6e1Xz*^}Ql?Dh>4(G$9?*n8L$36}o;ey>LqMfJ3 zH*HHo^5g*)B1LgeJm2T7{+aCoW^7>o*L<1@fIb3#5=y*3%S91KI43%5y)x4PWfNIF zQT_`v8gN=?+JHMn0}ajsa)0qi_Du>7>1Z&29*Y68qox2a^Z4WVP#Eij{Q=>6E>w*a z%RC@)fSm+A?Ee<2Q%x41*s?g-iW6<%a~u-o{MkqsD&tEvDbh0||+gvUej=`1QfV^bVKjm1@GmpfMAp zxXHB6I;jw%ri>(}@f~?}R0cey6-4KoptyKaj0-wq_;H^`#3V8!8S+*yyQ`sp%i|o6 z=Dfi_K6Ae_^ppU!$-!a&VFG3EY6*u__lEXlbe(b6)pKeU2Xv&_PfTy9c`sd-mb(<* z{M~#&y}QQlEyZ>Oi?x|5j(}paKi1lFsb}cE@L^ z=@m8=uA(&5b5xiqBdZ=y{&Im$D$HgAC2q+JJ4vx!CxzvR0G$Kn4>i{#HRseVb=IZe zi^+zs(Ftnt*?Fy^-@wp`_ z{3~m*?DJrzvD0gk0DyI;jNObcfDG#MEn_}+&{@sqn6f?sfuQ9h5`Nc+4?BiEqXxbK z5`9`YN0Q4G8OKgEseN8>E$hxk@G^^o6I=s__!I%EREew;!&!Jn}f49 zwpKsEwiWYSU)O)?^)f{_mlAv=M4^5L1p*|xD;uZq{*u|+c_-6qcM&V4?J)Bsor&Hj zpb2&hLLDT@CH!`J>uAHsddEC1a)HBfvG;B2ka?nYjibrkalT{`HrLBJ8n%!?{-|Gc zYZP>e%`VE~L-QtDk=8fVBCVS)cyT8aB_`~U9Fop3)aCvAmi>A8jp~n6TC$!8{b3(V zcVDnOs8+n(J^6H%0!3I9g>S}u47Mm~TAQz(p!GmLC*f&1dxBma_NFVkJbP6K738t? zE0PvNB|5QyT0MV8dVgUD%drX|4j`1EMI5B`bt|~(QycIz3Vb9e|gALbKRUHe)$^F0X`NZ z1-yCg98~wgin|bsu-n2UK>Vzx2y1g`@zcc8;4>>3C8RY_q%k~nBh3s7$2I+@iD|kQcK)abT}edV+jHQ zPP(F5$!4L3x?Qm_dANDtt;WTTHP|Q}#eUB_5Qfg>@r%oi_0(mdu=NbOKa!`T26^8p z>mE+VM=6F&eKGWm=D5=3%GdC$db>cWj9OB~>(ZU3Wib6(_=C(~KWv8$En z2U46SXFqPPN$h<5nDB4}6hWSlsdlV)wiRyJp5_y&z9v&|wIYKPO79c+XE45~x-~QP zn&smK{BUU$K2Xa`(Gt_P(d-qC3F}1s0q*$e`2M;fk4WF^&~MB6CZnl7aQe$-Y)dEX zQ5c0F^@39?Gg0$y<#4YR4H}niU8PvrYRsp=#{f<5sp*ALHhTC_*v#%UGEwR8Kk0`T zn@0gZ{DfH612?pj%hxT+2;FmC|2(%`qI*${2IBrBVPG(?_la+2pL7h-`Ou)*&#Q}P zuR@b<6My~6;bSGNYZ1E6jQILRr;?EH)9E_H(d2KHD0G&XDZ$5WMuZWRxoZ0HAUD$s zO;{-Vw)80A={DaN$LEUW4+PtyZ#x?~EtTUlB3AcEXGbz}-xlDTVNejg4a6b@9jWk> zusnT?MDauyR}$2I?C%d8x7hEni{=a0R0pmK6<7PTj8>0!68Nsx=WN zThO*kdxenAwP~p_4sZg zYHc}nik`tmol%$t*WzXCkuE44f z+~hr*d!YtiN%5Jf*c;{=cSsT2Y5jPWhVIGQ%w3$7h&>=c zD?mR!>kr$gJh686(}(YodaVrb3rpY4|3?iwMfNuPP4uHH#_~J_nWE8yMB93+H)gNf{scefeHm(S}5d z<=KXFXeg+t;&m|7JQYwlpYLk{a&v)4VdQ&4-lAXwk?}XBz-|`w<<2i@&JR8dCWvR4 z>*_r!xt4P6o9Bz!X{76%i|}Trp6Uy~i{t*c6Vc9>U~96;2^jUZDCzI_>!bpCf1=LI zhg;rm-jMTIhMFd1$Pr+uOyNMd@Xm+FYrFn9%ki>O2Ku;zL&DpozYaG=vtgjz@58_{ z()ZW!jfJrat+lZBpHiFO%$bJ0@DEeTPx&P2%3$AjahhFv`w9)=+Uk|!pmCz_VaEIS zS7a-lD~h>6xrgM3<%^~)N)38RjUPXturRmf*UIEA4aFn=0IBAvYq$ zf^wN}b;I-{3b_P8))%W-fqcV|?}H{-SW;$#JZ6K(=v@0#dXC>ypK;dR2mgrM=2BBT z4Y^;M|EYR+%+mnXXFwSnNcXw;8I_lrWHs^-NSN8vHag=bb)^F-cSf&1seD+&{{B#b zZI$@BN#2mE3Mmkj)4)6<(;`Z-lCbvZcAYO5o^5oBL0MYuF@n+8FH~)uYsF;6>{j`_ zeg*D$rDtU5k;7v2W7uqCl{lQ$&f+H5bgpSUaY0kUD_5uG?ZZ84zm1x@XD-+w>L~j>ldAo6(9=z~)K9w9{d~SL zoU?Df9s7-F!FbW8*!)$Z-06G**Yduun$1%VF)3Qj6<`^d(WwpgrMux6G_R~r%ypkgh{!kCkm zTp4@ou8Y}={$9T8E?vA0JO%~rCCQFj@B023hUaHi$ZvMr4aEo;a!2-oy15lo*uN4sc54M&%RSm4BRlck{cV!2hrXNOT_Kq~=fT(KKij*^`W>&9h8{Db zw!7&YGt#Q>Q18T>+ zAwg*mp5Cq`I0CL?c%?%Y5<3%06cQEY?$j4SUS$+b_53wkH=^&U6DztU$}v z!LssS^Q0cS@GpL%a;D7xMn+>B1&?)XE$cW!S%_4?AT}vJTSh?RA_0;wB z*&&oFD%PDFji^w1*_XXz++4lwN3Teg76E$2U7u^coMVte0S&Zl$(n2C`wM=phT2A> zix`>iL|msT!${swep{rTj`D9`Wq3_tj4vK4DD+&>&K}fmzYN z)}`@_@P9m)aK~jfpMb3|Ihrx+d_nW-2?6@L3-7lES?!m@@N1;k_y+o1kg&(Et79Sb zpyebw8Uf;@(e!||G*y*!y++NBI99dMT|4+ins){Nz?YkgwZeRi)^Xx7W`F6Z+mmDS zT-fGXn(OlVG#MlWqB7(c@VuMaAJSn~OH9Q|{AEw=-490R@9%%AQX#$$eF>Gj;3(N| z)aYknH)3q#Tm#Ag(yPokET{H&7-T&iKlPSwzNf4u|9~7QbX=o~D*#l#`Em4hqED%? zc0ok@MecfOR-g5vv-=B$GA2+1bh-CQhb@lE?H7@+ zHN(ttLX(tnnC_>sl`SDJ4wT^!zSc`F&i)OTxrq{ilqC*a=p*afB>|27@AA*VcLj^# zu+cUJq_FFPF03*74?8xjQ#MNntHFH+V#^+2bu`4jEC;Ys^?DwE6W?SahnBCAA76|0 z9{QtnW-TX;S0=ZPtRL|;DizYfPrN{rk6G?^q;l5qrYUnBuU+Tk#d286MNVD^U2VJF z84aQWrc8!(R12S)SOe0FVC|m$q`qAJxu6p3S$A#vYKg>k+i>&5_<*!>^^47969dZ9 zh1QRn_hl~!jFJ;VSo>>SzukA`+$Ka1c#FzB%5fR{WCF+Aob}8{BP-`7qJ9g9p-JNe z`M%M6G*Wa}6So#eH)r9T_tOFL6@Fm#dhZ}&$>G+W}beSTuNwpNwh{~3;``4 z$ndAs2pnyrJGK2n(H58BqJBn~PJI)3 z`udss_jiK}7{%OTFQa#J+nv}yt!GkX`ywbI9VtOW!h*`0`bA*?DjecmonB4Ztyx%A zSsZMsoGJFhx%lfDJ0}`7Ury_K5#E-gCvBd;?|8F=}5lxKd&QA_Ay??vMc`UhP58X#|5@3M2SZ1&ehsou zDsNyjjS;6yJJeC z&d^1pMXtf{OGQ3!wEU5FmDI3H_;@0_?s;gLydpXvKtf@h$#;r(z5W$3`;rIK%di$? ziA|1_kz4@vae|Hbz4B`C0bq)ToXUWiJ3Fn|?V-{l59oHU7JY08TKo>oLimJUfLip% z8ofKo%?VS&{ooz-0LG$u<}WcSSOP1_f>UAx(I26A1%ni)_LS`GTOYdKB`|Fsne2JK zL#u2563s(KrfvcAaQIs3VE86R9UBBx0t9J#299n=2Sf+U>O##_O6PTbC5+K90#bhC zfrA1WcHf?m)tJK9df12jO)NtYlyRxC57AVVUm@lW zo<2V@FSzTopu)1T;-kV%r9Zt@c@_J3Ku3F>S}*Rj>k>>Q=rcB)28&_qce9-Oq^7uO zX{A8=VNn3dpgb#7_$A>=?~IYy{DJ2He~17`K)1g*STTNG4bunl9DvJxr9(Lx@9T6g zv`NoYI4rzT8TU#wJ6`jgfU)kb%5#(To^NFN$k>|OpPGvU{diw(3vca(>|VNW0~SNg zRZ+xiRl#6g%%AT)++-@Ay5@9sf3CVK^EO@Z<+Wlw&WlY~Y2y3&ReDuJhGH2FPUahS zqa27@5&@gM-G8E?Yn6L?Z)@gEPnZ&~rcb##uU>6D>Q?@}LH-hRA)szI2q>IBhE|b2){jf5et+C*GII z$Q_BSSE-vf>W*B|c7XvSG<~^m6Bz;l>H|V7?bs;Qp9gSM<41d*adD3-t#ve=%ie8z zbjJ>VCGfodv^X1L7HJtEn3PTFkIsK(F7`a?D;C+yyPS~nRJv)&~Y48YJIsJqww?= zMU;ndznnB`3j1dm_0l`_rsq>3{fk^QEmg3h-}1zQ)Y5U8Xg;X0xh;m~+i=o7{kG7^ zoi>bzwi*(Vwm0Zl-fgkdY_p8Q4ae(Wj*TnH!|0dO+C z86(?wSvRF0A$rQ`SarT=uKj)(+#>7*sB1mO#xpl>Ojt11MP)bsC6QeB8dFsoTZ@MT znJwMUWGWg&5(+5oG}$?I=a#QXS2X2LHN{!3g_v{UyW37^=4%}NuDsWNIMZJz7eVu;${_l;aY$o?M!B%**G|L>Z->|KSK+C#S=SNH5t(%n% ziU=(&nLgh*A)j!LqQle^)CpKlu6AOAj(<*>+6RAw{BRI{%+<^9N2$7bmGE%vQDu>W zxWT}qgL;3L{w=P1#zp1k1+(dl>?9;M*vTAHFVEYqk7^a)EIA9Pv%+JVcIKnf{B4%* zz$_nJG-MHaB&)<&ATK3A%RV<3BN26`2avr?ZCTZSpEzUe?%qQ>5o(7NbYbVPs`fj+6WZQM}<-J?nQ`O9ki(_9Y zb7eoN>P@)AeEqJ2mS_}X-6o?rkjct`$lbhD#f=SA1axCzjgGP4)rY69Qd z`f2Z=5_KeB`xE`SnH8!eRAjiGd7IIVGt|um^>Dv!sw?l)K! zIM8FxWCPVvee7@n?tINaRZPpP=}9Jh2;rfYncAqGwwx0^?Cq^r=&2fB0JY(3FhQJ! zmIcOMV~U5hwT|5droHJu*Y2)S_?_}9SU^(k*;w>FbuYY2OaXbf8qV?tW0y0W z<#+XWn_2YyGi(W2FZ~E{%=bjY&3O&NvIy>a^Fg79vuHCdH?VnZ;v%kh2B9Mhnl*2Z5)tXOwDsKfClJ$Vzl>_K%E`tZ_nRyeigM1yY4TV z5!a`#ue&f#mj_Dvk~PcN-gK%u5nrVlq4?f?uJL5TbggQb`(eJyr(jS;+-i42?VFqH z$>fi!hQSA-@9*z&_0D?b=iP%@y=`>5XpBQo+eKj{e9hL@a1%wJ<0pG2kV%<*x#arY zaz0{mhMVCz(RKti^mc-eskGDLN#lbTRgddfk*Q3VIG!3oEkm$XiO4KOrspY2utNOZVpOvti8`!Z5 z(apHc0LM;rQ6Hi&nE<3rMt_D%Gw^0@XomB!Gcf>zY18ypj9xU>M-EXTvCCt;z0Txd zcCOWwZ>nZ-XDJfS5cX3-fAAZog&sSTHx0u>_sqRSp!U0&h%`~u@8W=a=60&I46Glw ztE2UC2^lkQy9IEwCf4q)6oVLl7~CG1RwhLM8X)kZ2Agl)(p%6fcsBt2;0-3)prUM8N>-A0xNC1z zM|qT1rllPd6#d(RJH;0tW5EEU+oi6{Un@5ztc>FsG_3DaE~j5V$vUTx!0<=@(Ewob zR+T3as5w_zoF$?~tUwUFmu9y$NLfq5NP~85ScR_SP}8IrZEuC>It&Wl8M!_C{NREu zZ?#)vNN84N{GB?=^dt@AdxIK@d0poFGFOV~H@Mz-!_*vOOv?4SQrunr zGOZP0GbAEQ7u%kn=7%dCNm-N^P6bqa?cJ+CB;Y9v1$1IbA-HTib63la-dg%}!!Jrb z&nWlwuAbJu7{F}B^0RrkObof~!WIk$q&9(MT7y2B!@EignzTSAb|~^oRk>7re2}&u z7|ZmI*`<}xfE1nOjiNVcyvsxP!e**B5L*vbY|Npf+d95ciVm8A&(B>wTheVYNPB0s zmf#aV@0?^ZXY-lpSoK56!tTQkvr_!_a8u-Whk{9m^Jd@tFsn~^(AO1^cN|r{koDBa zwCmV~bbJKb=I1+K7J209@;HjKNDTivd1v*eaWsA0KhOKN|CPFhsY~gZ>YCQ;m9mGH zplp@*IOTc5;0(HL-j3CHCYvS0(vN$TdxmZ4k=mcx)OjP81Tk1H8)LpD&WGE-C6~JX z{no5$Uv5655x6;$7gvVzAw;8gI3)8Xi)-X1C)Y-oMS}5LgQ}`_fko&`cN;#&0zs?q z5vV^sTvRCSUyY)VhO!PAS+cwDQLYVff<-GXgI!d{rIQ9xoAG$Dp)M)!ky4#@Bh#~7 zDOrWpDBnjeEs^2E^#^I5c<#vwNTog*+i~*nxVhm~>>P_&*zzy(DCr*XEacS?81Q4q z!X+qY=^AV5=7l><(zXemqJT>C>TpOjg-;-wwAsj| z;7f06qA;b1Hh;_bNEII$G_xC7en&j`;6#G{^jYCPz!1hcRYyNx`A{x?Ep!y-+fGvNr8tkH9>ur)ds5 zhb=Aqdr@7Pv&>-vKpbG`!);HsAtfQ>{Uh?hKoCo`?F7embEGl7F?x&0sof#;pyD=J8!9+~&YKf~z$MEO2o{r`N$%z+aR{dp-@0Vw=`zZKyA1tzd zAl;~l%k+@E$<}oyR(|Odn$;nb{eHuk-=*aNIPPNGS>%2?=Cuc|=djBu;nRh72Q50uY_;fKS1At zd;$O-kh-zB_tUnv&+X@Gb{)3E1=)`}bs!NT4uUo+!+Oyhn+yZaFIX_2F4V8iHdQ#7 z?OU%u6ZCcD-(04@ajpnbBiJll08NH>1O&f{EVW?vdeDP(9ESBhfY(Lrte#R9#+JT%0XB}0J>lfn>Aw`Hddr(==!)N@m>%wPAsS5Adi_Ct zJlmKFM^!bR$$a2k{)c(ZonThelg1z{%8O+YGjjg$^jw+fmsy)5>4B|z@sS$!Ow!7i z2n}8B>%mkUT2O5BujLumJh246GU41R$lBDeasVrM8QmJ^7a`aU5nYD)*7FeQR^cO8 zlR^ve-Mtez3+-=a*ljF@XVv#B3*W1MU=`nNVfev3DSqIa6DX48H#uT!l~*@6e;hM%YfDyLRiK@=g`l=0O`r+u}B z3BlPk?clT}L*LdxQAysN(Tm1YLu=UC@Ao_H((iI4_(~HYN87z){bgRB_Eqon2T##k z(NW8k)k{2dT}N6k2N)oAUXxJ$;Y4MLzAx)zFClC&`>^cfVB-nBu%q8wolb7sEPS<; z3D#Omc7ZCxRQ&_~ofa)uVA_{f5N4;78t!zgJW3Gz7|&+lvOj=WoZ*HqN&(!0Q%+wW z9lZROIg<~RHPY}jsQs3dmY-iFQ9AZBhEJfFqcbJNXiFdf7iiSeC^dUMqB{Td5|;Ws zaV3-YRbc>pZL4OJ$MB^d)%2g+wmj+GNhA<9v`Qux`pz*-J$sJ{g6=vG^tXXeBxZKK z!V2!Lsf9$^#^Y`;82;Q94QMub{>v7|hCbJ;xVHDzwbHX6hs%12pg#!{-mGFe*0N+C zY(1yTuTgK3yOH(-19*vIDVL7|8o}hWHCi2NljxiM2+<>CDM*BK;RqIFBiEwON0Rz= zA1uP=@}55REVGuL43_a~3VOu$@lwtTn_`&;DYE3qRs`K^*1yZ??r6Y6Aex#uqS;yE zwLIZG?|1BwnpeDm1()J$B%SiR!0yKXE~V~R1ZT=SHG!!7Ti#8t0Sqio)7T~)eweV2 z1;1OssxoWgD%TL~c0G_^(xWcXQ4=WQR7@E#eJLU~mD2O{lSk$wrw(`fK5TD^Y&uH5 zzIl5wix(%Owm#I(VbysvuelkzjSHq^SB^u1t>>S_M8rX3lHu*R(8O6HlL#CbF-g#J zAAJ)QloVF{xY-fhCNoLHCd^aNfn%4yk2nt ze=PR<4dAni8)rxt{va>6*qENBhbLCE)vJ&cvPX(CW}cH~ai6E@+e0kx56!1<>3^MH zJV+6qej%ib`ShSi|59f1F&R?9q6$cZ&`bDhtobWIxikEJquKAStiFh{v!qXRe^tYn z>_V1He|Of?iZW|Ji2yJu_mA|ziWH%Q7h+}JUhs#Z+GEMLKunLNxlj&!0!gPo6_0<8 z!CEnK_P%gT@Qd-&qLr=(FLdCgQA)6+7Xp#72i|h-RACQfM?Dxy`zsXVflDZrQ?rcr zlj|wI< z-L&;T%k|F#OrCNB4=B=tocXswlL3)JHkFU=wD-Zg_~jyi+J_EooHvf6;~5Azq!Bqi zRoQcQjTs#;jq>*g>>xSIO+X>a*u*48o+|vt-B3_7MIID^ku4V;=mXd%ke<)S_qk4J;i(6Ad#C6MtT3+dCjwKz%q{g%~J-!r}OZX5aK6_Ai$^W|mCmCj0wluj1-s zkKJ1yeLP4Xhl>i7_h4pD#8>x5@Mi`W@r{VbQt(^@+=3E;K@mgZ3*U#>yHeap3M4KH z;b$#5qM|Em5mS^2`+JMRKu3osuAgPk$9!1P3lUgLvCtHNimW zKSi6kS_uH(p+0H})JALAU)LOwgSG#y5Y2mSHb!rpSRzv!zux$`{7dj(MW@pSwP20& z>rprZCOxTgm~1A-Bg+Sh4uQd@&vY@2KzlG3W~EO=R_LDs>jxQxb8QQ#SeIr>62O(+ z0j5Cm(S_oR`oe{&I*<^hpU)5U}kdKyDOI26Etz2w}PZEhaq305llxfiNrd%!42Dr0+zW3-rgxT zy-DRgpoU3gdpZKMUaD)6B=eX~z;nhE28bJ>52L}FfU8{sR#STRAPYdzfra5-8Fe~I z2Py|UFVy>r^dy{5tm7r5(sxY5gm*@> zKTc-fDnyeb z#sX{0xz}XX+!2*^xrZ0r5KONa%uv_s0jAV)xj_r4s4FDIL<&@&)T|JlG&IU&lvghx zTN2swVoXK99+FdMz0*y539nxlE!4}PA>ycT`mDA)3RMWqaDYy9zd|=|#KGadd}44C zkdT1U)Viqj-QApwZSuK1f7$QT%2O-C>;l_=dkTh#nsS1B{2|u9H0{Vf){si^>XW!~ zyzjN4D3ia0t!LVrD|FRU+dd=!w0-|q|AOgX{R{XU#!ip+n4o4^diF!UfGNw#6v?yA z;YZ*o!Iu6)1))*}E=1?=PrUK+U(dXN}|Q^pw#d=E27Y?ku%- zIJNZg!v)5+=hDminM72R#zwH7g~ZKcHV!R$ktBG$g)SJ^ghZ*Cr@VUirXyMpnQV*G zN1Gy16HiLntn-O-E2NO=`Kk_7Sq8zxS-#viXQkc}T_c*b|9j#N$<`t5=P72s%U+ty z@V)%Iwwpsj0T*5<4q2c-1ogF59%s&^Z*(?#@*8M3>-wpIgRHzyFyK{)R{Vrm2Bni` zRzTz~V;=6ulkM+V)eD8z^`g+@XrVuD_-LPy|3@#b&`a-ExSSyp5r)%$8v6e2XMJPJ z#t#7aHvMn@;2ZGg`By{VncL*`|1|XdPeb4TH1z#XL*M_Vp$`uDyP;j@OO9Vyy5Dubqt z64i3|46Z0sb%co)4M0oI>bOJv#`Rk7UAS?yyALJNmO!tgu51U==%vek!J_c|9x54x z-0$ZXOkP7Vk1mP%gi7H>Ee2Z}>HAQ5AD>Z%FseWNCt%T8HhrU9*Bew(Q=kjLcgoxb zmoVgEPrsu2C)o}ip(UM$>JQk;-c3W|8_m(`fM;vFCK{O`0RKA3Cq9;b5!z{Z)hwt&%&v5DA{2bw< zcp;e#y05E+AjBBwfZ}ye;rrI#v=7vONsEo!$21`AqV+aflGfzeR+OF;#CpPE@azKgM&-p&f?@_EW(HL+-}aHm*zKx%S3>l~ zvx3h;Op+iPIEW^j1W1e25)_N{8s91gH)!L|i{GW+*uhc;o97->G+l<{HKJWBS~Si< zVVi>6m@~!jN%SRgy@G&a6B0x#V^7$(WX$%-AEiZi6hYh)famk5PJ_EH?#;Sp-w3J* z4)qtqVy6%v)dQ0EET*QjWvhc($Lx||ZJ4KT{j`}KMPHiL8loe6DLb)}i2VT+h;zgU zzNzB!NUN>~Eb$aPY&RSWSJ25gZ<0C47Rf?$SJx-2oq=aFO-abQ{K`KYP zXWeXie zxWi6w!qw2c{`I6IZXhk2)VH(Hp}7|vo9^WiY{d_ zTs`}ptB|~BSD_S~tO2a_An&UbIFdtaKIMkp;vzF^U8ZfTSQ`9&ogxLriF_F*5p{W> zr9df>Hb3HomzHe|jWBiDpW#u>0Wa;JF&)61cN{^SdVKxA|5Fm1C{P7384vfJ{aiSR zPY+@ZgA0ppQuet1mfM+h@R+8bCL==8YaocYX!3*2G@L0%vcy z++QMAfG_tsAtX>*o~n}FyeD+2_`P-jXlDRm15&C5R_(_8?Fd#zk-h2M_;ir}X6}hb zssj3Iu9$6a5B=S9H``2LHB&zsw|PK_40pf$(rEvMPr2=-=IwLG&ZU0AAj`k!@r^=g zp+(Pt!pK-0Z>lE9pCMst0S=hzs$D?gl=^#gJD_3Wl*y5!l{c!ayVJP-*Gx?(eNdm?cH%Xp>6Tn)m2>}ANoBV4k z+q#_3QuMFl4w19{clx4VX#QRRE)F!LLVxjjpOf1jF=`!ioRrV!T1eNm)-)Ri0yp^Z zuor(k4*$fUW#&HrW_4bO%uSF8L> z`LhXQ4Rsu5;%r>pEv?yh|CaQQWUP$Y@2@pdL__H3iuz^4+gtp3fKnw<>zw z!tm>5#nABXKe#?Wef}2!h&o7KI&@!DtN>&uE&OeJ5zFAOm{{F=OvP@)JlRY+l=Y8i zf-(^FK!Q2Cb}KkDP(E;H?wJ8Tpits91(H^nbgm{J$3H;>fR^sl0ZVZ|hduoe_*v$@ z)(*V`+edP4#;pyHEu!Ed#ua)<^Y`Q|AbAVMxni@T*!&N*hP=qx3y}`5zcxrR9^`g`2|N zWB=A5=wF(jp=p36x-2HZ1*lkcP$#E0PZ@ah){>p~Z(QFgv;RPsFJPS8*-gCB2L@N0 zl$$k$e_fg}=(+t{YT^-y*!&y-b3~O%WW~aP8ZsQ2t#Y2t8KL*!v8Xf@^*3}d8a*;R za{G=);leqZB8w3~@->T2aU%nw-;%#!ifx5z$0+bW%DwIA`h7T=QT8JA3%Rlmzb5t*5-~n z(4%HO20Nr2+Ch+m0g()Hht^`3$3OTp{^B_BvJYVi=Oh?f4{lUN^(`w@8Gysi6g z+?-36HsD#bTTiS?=&Oa|<*)({?Ei8?Q#AUgpUw7>s2rn&MaM5hQ~=A8O;f(fF`B*? z|I1iY5Og+DzcQ}|IE_|Fkc|P`)iUgXzaBV|Hu3+J77j@M8>0?JOe1yU!{tYhN4vQ$ zm95c+x_kV(Rrpt?%Yq>JX~q;L{>Tqx9Yy$n{Fq=rU%U`41>_D_&!O~x;?FYpkxGDB z_IE&!=Oj9!WN|s$jhj8ow}mCSDUPn-Xq64q_8XY)Sivm!cHBUwaO{$n0%i zZ0m`G`sXV*v1R|3s-tk&6D$Hlq@WW& zH#lqv06qYT;tS;8&m=%bfWb5i z;0XJ75no{0Amh4cCZ7L>djLos@B}eL_3vj}a1kK6Oh%jh|I-kf=NP-M|G3pNVAw{3 z0QtjJL&a4L_z5-JrI_4Knbf`DuSry+z~x8pp`6{e)4)?nyggLkyYvz!!ASlPx(20e0;>tF3z&+3rX(mct6a~kIj8Y{4Qa1 znx4+NIuff<*EH_nwEs2adx_2n5c|<+OZ>>cBb%7J-^5iHmX;C_-yau~oE3HX1JrG{ zK}ki6T;9Ov-@l^%bqOCOt;+|O8L6!VdP?bI0wp3M>VO-O3mN2qYwB~G^U;J^Shh-v z#cj4txROYv*E;=*7MfA_YtQF7vBoqcqzv*wY~ew{Nzw2k9HMw&?39I=xE+D2<&fmJ zp*h)fK76!*HE2dkNabv@vQ(D~DggL-3jOmSaxxZuU~!DX~^>@Zgr=uoI7^68Z7d%cpuKm86YU*Rp6S6_exZy+oU{DeQ=f1p%E$>x^ zZ~x3vxPz8HCB|JfQoUFyKiXw5+}4HX*V2vDIEKooJ&4Jc(85UP}?5wpSY8ucw@C(80C~ zYW5rNCnoGaMl4V4OwSd>DX1ucZ@z4Pg*^)i%t-q_G4|GKcoGL3Q~Pl&%2G3Gyx0WF zV#!v6txbdmW(GEQ1=_NoSKJ=^(Kjr=KAt8dsC;YEBiBI=j<2=79#kT32_LWTCUKd0zM~b9ao|?8ijiUln4BXm zi95O@qx2vw~=F>jK?IcsTsUeDxEx zi30#bE+Wl&-*6~}kI-$u#C`F2O@|Sxh3Ydj^#&P$G0AbSLN^UOtU?jk?fo)?z|6e^ zPaRDXrrYEPd&#e>r=i640g?%OYo@ERCc(g@L*sEN<>t-ArN}po&%Mi#>N)Ylf64xn z$FOCZ%UnZvI1=xz2IQscP7I8c0Rf<{vc?w{A-u<}1G)wAG+2P&JV!mkf+4Ho!$FKJ zsi@lH2)BI!z+|b?v|rZ50yujh>bk|J*!HAX^5wH41hxjSWHb3Cz_3-R=*z=J4FE`C z2REBUQ0Fm0XO2g<;owp1zu>f_^o~I&r?Lb{(J`^Ine>orKVu#d1het+b+Ag7d~kWs$P@_AQSm;FdNZk1}3Wl|G

9cm^k;sqc)w8Fe$PJti^@smx4=WlN%b_Ln6Rx3Typ8-aNN+ z)Dyo;Ps!p!^Aj3vvn?5sNDi*g-58%M3bH<0b7Bt0;K7)*I}#oQ8I(XhKvC9_L;FGE zb2n@96T>WCb_s=WqxPX89w~apj-(JABL8P7wyv1lit(4-MYJgub`8)E!YYpTZibD&V(KaY694i^E_BGwgZKsh+=u++p*mR$CIotl9? z($B||Oq;-%9(hf8G>#ns4WeyibFFAYC4RCGa0tpgRN)9;{75Oih|p3^_dogdt?lRb zf>f#~ShU0f&FYXa5_3MwdiF8|BX&8_UlL-nb3otrV)D8P8C*Vjfr*ImLF2LZ9{X_X zIGe_WYSYHM>>S=&EG7sLsOc_R2NTa-3869KWxy7eL^G=azM;@tdq}B5t9vfJrdqocu7c7fyyuC3lb7 zj*HQEM}!WiGsz#hcq9GCz6@U*M943W|J^_P+peRnh}?sPsbntv6OiYXS_g$WmEivw z;O`+26|j0ZTSK0wIrerGrfz?+-PT!IlHM!^Ov1_gcPjnZ;-2r;c#wUvxs}W=F!B-c zBMwx%SJq>q{{(P0E{#eE8Mn2g^?NJP(Ui-DzbR6Y%fP^i9LQNKKTC^yM9<&Xz3EKy zL|M>IIn^5b3#9hC^COW%wL~HSv6!)A?%8fN6ec^Q2176GpJ6x6 zy@q1j;uITxmaB(K`$eaN_6~Ks$g<}avqskK%iS+>5V->@T~UvJIrv@tgNkpDe{M`7 z-dNrLRSA%aNA+F}Pjor|pGb&-aN*8;tM30Nszf2=`DHMNCh`BOzjX-Pz99OJtN8yr zfPY72@5?+h)pewzn`SC?tE$w)^(|DjqQ70u;pGmZ+#UkdacaYr>T$ITe^7-$@<-MFD~# z2MI*ZA(H|aeJ5)=KqQ-}eMO(iDYOvG1Ed%4B_)h4K4StRvCJO zmwS3l+=t77Z#DeH-~QCw28E&PL*%as5F$LJRX-C@D0DHMB$pb+ob{Sf#>Z!d@$sA0 zabjd9(DWDu`^qyKP(Ji-ZEr@$rW~7XMn@v+I@s|+CI$>q6$g`PG{N}LG$(P0FMnkF ztoF%S>4-SY|DtDp^8eE&-nX+uPAiP1c6eC5)Qrp9M~cCd3RDz>=oyBVfMj?VfKk3< zoh~|r?d?P)S`_BS^<5?=u#3fh-9}GLU?}ps1_BUV_9{dn%JTpc27D6HHIg1+oA^2_ z)x*M=MxVuJN`60~AI0O61N>3kG+hL8T)yz4ly(9LX&I2PesV`+vXTaT_@K^|J{2b) zD>3qL`At#kDbP7yz_}6r6`^{hM~L=+ZLxO|c1|%ri4Ba6z020>vnr(I5G6~GnvmJ- zPo=OQK*o4_`NSzDQ-cXv1HH6e#=lK}ZiVE_g7o{@sC>1P6oP$O{}xS(O+4aJxG#Rw z?MqdL6Uu*3tsbXFr-sZFP)??npo1n4_?8Fn8#WqxkYr)OrV~BPyBhd%t<^=kcV%xn z7W1yxUOl|M&>imwmj;p5}UKF=TTb20Hd-#cYrAZr!S@~q=&j9wkCxsF2+T7zd4 zy6C=cwNWT~HNTx~Iy=Jk85nStQUy}f!rgyFp_mkZ z|0pHMM|FDn?>@&sbYm=nwl|Q=v4eyF2~TcT`1|R#zE!meBoMvtgAwy1ef$t`umc?H zc;!m_HuGDSp5DK|!0h(FT>{VndL95>z-K%K5xSiDIu3{Ht!;88MDE{;f7*%Nw|9{o z5Kj$B73x;u8^YgrcgrWZ7US7r&AG2a14eEkC&zJ!!svD!@3~71Nh$w0@hPk+;^*My z1P*6bTyO9wecQ{o1rp>@q8pM)*dI^`St;){bZav;KpBMKXZ7cUIa>>|v*Z=vIsZ zvmdee)=@=ez9!W9uf4dPWIPP*XTuKr(fz6T_L@)0Y6BJuT+~#t^o@G2c}UBtT}X2g z4RL1Bdgd77d$$4#lD5!Oaur(_2=rkh=CsN^S%T-{6F;28{C>t&5hvw)YD;|3vve`8 z^Fcyw2MaLrI)D@`lePZVY&|X9Q zsX9&f`&yehS{3sY8+UrqMQV3Od|-P;8vpeRpBO)>`58^|S>$(Cr0ELFX{`OIraRi11s(7=v>b;Ey8K_IH=E5Qm!%13@<2q%T<8p~;Gctmw;^~8r&yxJ> zk2y!vb1pxL$53~R246uTpI4dvJ69ZVXhRYVBvpX#ou%&ipA-wEIDg$oxXF6!Gets5 zW;J@@Zz7sIw_Z^eu3Fa%PF8uR7gx#+4+j_Ta%j%^CeVc>yJ3>)7(e@j$z7WtXWEh zhLnH^U|@uQzYSLff6(h|XtHZjUnqQ;*^zJ7sMe_CDH*3RI=sK#J+L(?F`h4^O_I7<%8ASWaJ!wq|J1R` zBhLU8RJ$})kOeqQ%KCa4E;lK;ogXBz2Jgxkw)n$80XU0oW~aq^!kT*4|J`C-HMj4a zz1K0+h8YKHwKWUoK&*?^ul{jAC+@4ZFVGYL;XC$azL2e@{`#FL82Z`B19sd}=I$zU zw@OFx$_FBKMq@v;eiDTtr(_^N2npeQ{VK~t;zYP1fd(%Mq=vr5Up7Rgj?RVG*GW6G zSN-XyvK}$f>B9Da4RdgB`!y2anE{km0s$S>#h~|AUuhr`YR)r`M77~7)%?nvy`AR^ z#>Zq-gg3RO?l6K9vKmqZ+>hiAp|^_Di;F{Pf|DPA;t4O0v`GZ{KP`Wi4yN#$=68~o zIb1ssLD-p_ng5*8N%248c0mJu3wI3fY_cWe2pR|ssb09{Hq)#y4!ae7LqP4gr<>bPm$_y(E2 zSj3j}fyb@$qAhs+lsorAG*I7@z>a|_QMH@o$<2Q!N5Gb}Xx$|fsQ-f-4-pd!0Z0$M zo5#c~0NAc-L;bqw*;1K%NqOX82l8^|W`Qyy_ofM`qd?Eij?&HTfcvVuXyv@DYpmY@ z7PgB|c+2N5=XUfhdW;gTq_H8-$M$c$lD{FygQ6Ej!VufJkHNJXkEZ zFr4&jJhL86?cSqVKa85KLUAv5*$2luYCWj2zgQK6)(G^DO{N^CX*biyYSrIA9f&H9oz~;vK>$AXr_Z)h3`o`(wCo6z=&Z{fNCbB`cxj@f#$!F`>zx z|1X*E1)*BUuSnR>Ri zUCnpK7Z{`1xbRp9U__r;8s9cC)Y6PnuF&#YC9;6S@Cw&)Aj__(s48E|Jc8mKQSKvc zBrs;JdIGm2#pe}YysH#8-g>RmInCOTKiDG~*0@sXi2nI;P)LIMfFrbp&3X#kGx6xo zEyPvaqnr8$^U3wxo_uX^%-NnYcQr~$q3;F+Uu07Gm^j6uFM8B`p>fyWjE8h;k-c)k zOl3`NbZY3Cn<=;Or0%&7w5q1@?b_GLKx9htk>bc7zq4NWs0@|@H~*X%DE@i+{z%e{ z2vO6pnma*edeqDw&ejpu!JTCUIR0o)VdrDApy0u@;l#chzgCBGaI#gUFy^r1@iyAe z-;E3#!JS7u4XAmapK&Uh< zs~E6>cf#z#2b>+^U=|==+-Jsr>XvOb{?HqPP3Rz8gwpDI6FqnGzHMd=UrLLq!p5Wq#l(UUdvK zZZOpCKXP-F(3U9I;dm9_E(}qJ=3~Ik`G^#7;(5*Sx~FfM8T%=fu|ZqYw3p2{wB^Gy zw63km{HbrRb=wlEPK`r0J(NNMkL|pZ!{sA4qh6lWlYABU$}=RL0s$YCXVd$A_GHC6 zvdeUk=bvQDP|e)dvnpMlbp3Qh4d%hVS#-LHAs(@hp&{nPy6Iz7eMd93pzP+ zzo+GNxsB{m9wP7D0YUVBUNJgQZkaYWRn-t}_uSi!m=*1x!8ws8C}RLNqWdhQJHEYL z*tnz7(Mg&~_KLG)L-=9-#!o1vafDH$tqJy&n|si&e-Z-rzT{J?^<>FJ>r&bZVTZ`k z5b1aUsverbQvLZ>xT1({bcF%YKw01|4BzsVuMXY^V)aQ1PGrCAfpY5l(ems1VR{HA zeGtIi@B@Sy`@l3j-#v6v(v?Ev_$Puk8Qw5ew_jIi_D52(=v;trVucXi6?mY z;ZOKVw_`=&xBDxckZT}S*VYpyQahjaYg*lL>EMQgH5%jQc?kEEs6S@9a|Jq@&wo8a zs_Hl6H|g7n)1uoDvH!IaMG&BO^+n!Rt`pq5rRW~rZi<(f%BpV@*7MyaMUZdc5>DUn zKiU+kQ6a@f8hH$81jxjeQm+31O<{eZXYA?F^pmjlY_Rr;daxie$+f%H)S5L}yDZm@ zXm}HOS@}LLu=WqlZ&bxf0u%$DDN>YNd&DEBq}a4`AenEl*);ASa9v|7 z5_sU1^1;&Bu8S|~JDUAC8McDV0eh_fx3PvdvdNM8&eJ7OucFsm+%I+;m<=!-Y1i_H zY^SA@gTvI{8e$o+!XNMtjzeUEW&Ir4zFQ*cx+~Oq2-u1j6Q61(A7F?c$cHo7%Q65p z5GT$|t6NXfT*hyQ3_Uj&SNX=uGozwvUTb8g^)!Wd;=I!CVYVzslD~eEqj3|y)}~g; z4A_yw`cOkq!G!>%4*1*j&usEq#s*C$d+L;|LQ z*6!R~cs}OUHNs|dH+&J%pypUqn9|a$wC}dT?VMb-7tX*$|Khv*I_E>MCB=H)hU7}{ z+DapqNvGybouZS{48=vG#hA5mo*{_2R?03@Umz$NOE zg_Lzs>WTilbkgAi94PAo_&1T6rdb)B`qr#1^QF?qUvbJRsRqR)_L9!Xb;p6EC7G;5&85)ex&X6I1JZnS6H_U?QD!F%*^w!ImbS8rGO zr5tXu&LH{CS!+PKc)R@k^oir~>6qh^icGA3Pl?|5mL_Q!e3BvTWf|vI-e^QV3;a9m zG+0PuJ~Aj8&=-NFe0N(ifikod!>Nm`eY4dmq5R<0U24g2^r-*b`}TueEI~F`@ZU3z zF+}%xgFr0oA~#o~9{YZ8NJ^HL66ISy@l|WOPDFWY!8Cs5y#XgMNHsTt>%Eb=BEg5e zYmqx&AFCCzyzHm*pk3K*F|=B7LTdL#?eBy(H=mQKe<$x=g*_H1_G+Zz1f1Qf%YV*o zMYAMY>mFDa2`}mmb7f0}i3gRSt9D40(E#tBJ0EF|BJYM#e+KxcfB6a1HB_wO8!=;% zuYXlIOyBlkX7}7nwM6;*?nxRs9PJ-^owDuDb{!}CZVM56eNInPHpj+g-cCcR+Ra}- zakraunzAJSwMvl_ze}=$_@%EC+8v<}fi*oe*tr61I2}K_4&cA&NAcQqwTeDcjQp#T z>U_XODD0%ygOdLDX64uPvaw{yx_I0Hzyohlj5S{)$&O7XJW?vKHy4uO;#oqcd#?`G z+uQWEY%;UiVDM&z8T;u5zRu?EW_Now|G3Q_Kdlu$tdjVOZc&Vgg%IC01YeTiH-2}j z^H%=WyU9ya@TG|^FSyf&8^=H4_O;}^cIc>LXqF@GEySy4Yp_#%BGA(*R8TtGG0!3o zJ7?!BmW59rO1Qk-rDsE!^jp=&)Df>wjyt(ki8S3=ql2B-6-UMEIoyR^2k_Wuv ze;uGa+?V9`XVkTpx6GwTzg-U|bgW{imlfNI68dPILEahy-GztaT=V;~V(u_;-^!HA z{&H8e$~5?~Kesco%*5qUgM}@Itxl@aZ>vi76pmm~U8@#-!5W#Br0?HXbS{29$J0&( zGP{9^v!Zb(6S``EPb&`Cop+3D&;2T@9h<^8Oxk~-Gam3917qt(wwgF<-+UHdMbW$Q z!we^dX+&0t0^Q_6>EP=L!-$$xV+0wE!bvX^)jcrUi!%;t=cQg(#lS6pu&D(k^@4of zz8hufkaYcU^o3j8XO+^idtpD@p`k|q4oout9ec!h;sxfnd$^sPGEhTp7^RPge5&GK zFB=Xm7dKkmwR=tGKgUtwa<}ceE7VF-7UIlB>))BoX1H8Rf9NIX*Y3IgS(X?)oRk$S zTZPtKZrYryS_wkwe4^1CW#pq_S5IqW`+`u?@5?Rdws8vA5#sK91C?R%s+b4KPThK_ zw3CFGiJ`6vL6P!)B9FIC;|RK@&xvzRJ9BD9Z$rWKitU%Ui@41?%cT5QE6ToBxqV+2 z-X`}|@4&F1o;O51PhXw2LeL!e3<6Nlz}U$|^QKQqO=c&*Qo9LAPID1!G%(qbpdY7? zD$4usL`7rU-#lO&yxa?#>e#*%;gmw9?TQH&k(yp!rhS_k$E@lg$RvHvwp%~q-&^kT zv2DhC}N8(-@_AKCfVG<|#r45ni>B#$Ql)F1)!EM>+mmb14EQ)@Cu zqBVHth)x&4(W*qjhgMs|JOC!?uh%x%RzDwh4l%y{n>NxHtsgZ0U5N5S5~iz=gdjIH zjNg5oDQbbR`nI%KQEzlp+g7z`#OxCm`+aO{0;gwW^n{P-^X$xg=&Ii{79+3Y-htnP zq4SOWFW^nYmPY$Mx}L2sl`Xwd@@W}Fws7;3+wWE65!@2nv#-Z@$-&>;-sHL5+F%Pm z7d8%6iJ3K*u=pO)DZIu2KNSE>w$?P{yJl6^BBgZ;HCuemyF|Q4ZpcW<0&4IKV^^*x z|Jh6G7HqM$b&?8iT@37bz4r8}M4p!w`L1i6eA^vuvl~UN*GS3Ns({u-!lSZ3qb!`r z2^s36UdI{AlI@}fW=Ku_8`{YK)~okOqFa1=>8=1GyS>lr_2|d`T?8@PYl9PgW7QzI?3#)kdxObc9|N@VH+kd3qPODSXK{ z_YX@aAyo=Y#lQwPBl;q;O^W|WkPn46I?L0p{byb6;9Wn)!x8xlaF z_IA~optE@`7X=GdcXO&G%dRN{18NLCg(>e1C_>Z|8I}8~Es@(XxYmt(KmlNb#&qjn zbuds7)9=x>)h+KJIhCCrT=cqr20@=C{tgUj?)l zV5i#v&kTdPxB_BE*Cw|wpVVp2QIr&?z_Zdzit#%ZFlBcVzf~@rj>?n z-ygB>tE6oDAEpl-HiTx6lcO!|m2yRh86x3!3_exNqKecexPUb)%{jUx81Ut*7|ezT zCGBek0NygE4wzWkf=Wd88dEWUCi?Wju91;x^BlhJr&E7On&-Z7xU$mRugDQD?Z+1P zYWF#=f^qlElrYv9UbUh%GVSy7h_ZpQcMo4E)Ia%L*x1F6$oNwKOKk%h0C)dv&je-T z*3BUo$MvUNv7>tH7Sod-&21!po(5WFsmEHdT(tk0OKCtb)eiT}ZN)QZYnE)vDD@|Xd%I>^EC;KrdhY#2!T;aw+wiK;e5m1zqGk3j z+f{AycV?MvU!pRIVkbws##Fo!w+mw#I|7VKf7b(-!8d6hRkpkh+>%vyT>p7n@mZi5 zp?=bQxp>to{$SphXf)rm>lC`IRJS0X{<{6GwtB~Qy}LqC6i!Am*ui3De0c1}1ej=G?_=r6f?AadUJtD-_!@OO-Yvlac~l#ThEQh%PtchU3O6M& z>)ly}F+2#-W(mD#PF+VXPrn+DgIUN79xMIDBLjH_l+A8Zo@KfE* z^V-b6s>jUpl*j$XCF!qBxT}nAZy3(tgwItPx>`49@ z=W)vNnD-q`W?K!sHu*j=;dsV0YG5Al9fiw-=Sc5pZqP0Q@3pWH`qg?%X3Nc2^rz8E4jH-{@Lrygj|)#9oe@0SPF zw)O7S=9?@&rhzXr6I!ptSuRFvT>l>X%ydgEybL+2HJY|F;0hnjDeoz~Z?#He<^kB{ zmu${_oJ`Ogo>9$b&i#Ve7mG#ZqzArN2H$Hfl468B^dOY1wM#U)LXG^cn&a77DR$bG zUtITN;l#`S$r5-oFEOd@{s}7*{78%%@#xn@r8k7Jt1!u#&ij9@*NjjiN0v3wKR2Cd z)}9~ZBq~#Cps{^wLoN5=L%z?AW4n|9Th9Q0siL z%BdvF)K?}p!TsGf-X#YaoR1+zEem^7x4{zW?sfZIHl0%{DoiADMcJ!-?z4oQTan}% z(##eh+Jz~P@RX^W40l)ZYT+wBmn-47$yRv&(NroPs_S~!spHWjC88SezNpyZQw%ov zyV&QB_YINvO}n^OVkk>IWYRw#kf&H8`r>5eF_5|z`Ki?b>t1}8rpAiW zWz6(r5?9nT4{VZqFOT8GT+&T8xeVKTKQQgSKTr^RZ{w&b!dgFxVzK+GyoZ;H90X$m zoSJZn;zO2n)=l55)zXFmF>ZxNrbvA+K9{bl)+U0{Snb)S#9;aaH*IY#%a|2h{}>hD z@P)&yuGT{I?eJRQ)3VHSyLtxC+ugr~>q)EWJzG@OWFglk_q_Ht zjj$EbtY1plQ02Wa#WS$lNl2)==wHy#u$uah!X-7n^ZcMwlqwiIrc=R>dk6$Hv+7|z zeGff;bz+%(DQz#q)PK96Z+zWV`&vCKx#{=WqU}E~u(XsvVpqvU_R}7?L+r-2G5ZNX z=Ch41mP-j(BfyFKb0XBYvqwqGg!L8XF?@6^g&QDOJ%k;ggo~`V!~WC4m6ykK)Vy=> zuJa|QXI*9zrtZJJQZ9@+3uv@uSZhVz%?7Z+?U!o zl_B4r05J48Z-Co9MvQ-C_pt62^ZU)w!B7xUr@AftlXfFKylcm{QsS;4HF&wF-A-czhRg6&!& zKjYJMz|ZF2vD`suaAy-<&Y1)9pVfooqrleRFsE}kUs#y%LN?+hg_)&(+WoexVwCC( zw$vK&{|nU67%*=Vd8#vH{?Gdk2!XsD=&;nJviKxZ<1BhEAPud`N;OiT<1-S($cnKKivP2i6hj!oyXEXxCjz~U%u%?a z;)|-LkQvJX#;-j6M)a0U!f9RY2<3F?FZ8$yVqZB3-Oe#!^0C{6bAAevDQ%q}NStoK z{dXP^5Au~@%E@msQe9^*Jvmv?vixnORmFHD+;a!m#~^(vX?5Melv>34@LwQZ zFH8IkJc~rB+?&HN^m>Q z%@s6!;nER;8xF_BdaCqHh}IPFmHPp|A?u4z81e?i`@N1Iviz9@2#2xgzJ%FC>KQCB z24oOMMNa*(;w3~o6)UF)+60)EpMVZr?`ry4nTirrILa<5r!%B%{yYflm0-9=;i{!c8zsO-(kQidOi;Hft;K zZSC)iE(Nx&4F$HLp6=d@n;Yv^cs^ltGc>qN1pqBA2&StqySEI66uLnRM6wu_3el#_ zV{N-yN$qvGt+~FKbNcHtj@ofN!d*@S0sopRIR3Y>EjIOYq;=J#bBv#iYqNqy{MwiF z2?{6h{($=``}W{IC11)`i)e=$uljK#y&7KM5=WMpmvovSeaNuIpb`75Yt1TG`ts=C z^xR5?JqD>`jKla6X4Y@hCOa&Z7n|8N^p0 z^hLh6CNe1N-wo2O@QfS+U;ko!T^>{oW-+<>8NeRNbh=D)q3KAsUQ@Gs8)G+yB3fl6 zmJY&WZ>T^pAkoIq9iffOysOs+dc#f(p8Y9!l?Rf4wy-uLBZ8QeW7F{Y&33~>nRswFFE8O0WF^zu zwAU9U5vF;1O1Ijv+vJ1po#8to=*W(sphPs@{{_JKizk(-C2mTTD6|bU#e+`u@VgaQ1L`Go%^k+8MR3#YzI)AUPly}CnUJ5$W5r$GVcCw; zaHG1Lb{+zZmAV8cN1DtiJhzPbo+Okv$s0`(bKN*NQQ>*{?-*MKlqokavwUEpTfLB8;P#+{0V!%){|J%2PF5DIg)2*py zhN3ECU=+Y3>~wIOY8lf-^o37DQHmV?DOHIanhWbccR7dJYOFSK?3=f@rdO+%Wxp4j zK)+_CHvdIOnXRRpSW=)<@Syal8GpJwdj9#3TR0m;3T7T?4l~NQi4iG9Em{as#K=w$ zfls%ApT}mxg?24u6MzfBGY*wt0~5imdFTdWXnu)YbxLYAvFvq&$dLmHNG%XCkP!K2 zjuZR|p^Ee}tvI&3yM@BYOiMKdMmLgN9z;!PVJIf4{-bSxO1ub#@<*Z+$51MjK6W5- zx)B7kiuU5^bo^zC<=G2Ht0a$Z7G-lgLHcB>jbM`cxsSHT>_NY>?cm;zY`^EeA6c*+ zN?T;W{jCoA>hEk-nchv#)B0M{p;`W(?E-X$$gZh`;It$SHTWxZZFc3%PjTbJbGVDT zmV)Nw#c3ysik-VW7P+m&VMaa}QfxwDS4u?FtAFLB$m0c5TXgayTd!Yf!tGB{(?oG-> z0?9^<+OVIsg@b}>RjX_MXk>Enr%2`1N8D0F5LxsckH9e|GcDFIGGW$ zgOF%3lBe3Z{mUk-zmi8YgSQku`1-5`u6cBFuu=2{mB!Xc<~1NlubRTqYh2%JJ{l<7 z#r%GP?A>qM3tw{4#$t){<#$P6KFwlAfc7IDc&dRjq(EhdAO>darXsHFzHKD_&8Vk)%a@ zzkbbH%s1jo>=JA> zsMIE`fW3!XPCTsnP+%;gB2Io)XC0c4q3c139}Z6DJf#2w%p;ybK#u|&Mw|~92CXgp zEd2_y+;0@w_^IBgvu8qetBHY7IKRjdrA+Ql=+7l&$M44^Ng)+_YzD6)LJq-0X41#! z^}zN7r2PplgUL5&by9=^v5Q#o&(Tl%wgXJb$Yrx~32f*phVHmi1O?fyKTK8P-ligr z!cT%H56_=6I)M#$0ss9+0UNTay-{UN(tsbEeI@_gyWABN*FhVyIOh4DyPfzvRn@XM z(hNi)h={OFV#kJ_m?g_*iy$F&ytrO^#z$oPc>z#ldQi~nhTEdwwFG22Ow~EFJe|{# z5vx*s=dYZpBT`AZS1b2#MT?=C`@&i!wtJ_P;ha<9JlQ*|;w`^iw11xcVI<0=O%Y+N z{n)5*GCeG&^A!fQ?J1*?wF@~VGO=ctA3}-EAxSb7QKytOzR+9XGV&T^CoJ5)q}7Nv zagm(>OcDdlT=&6!wKC5nZk^Ilixp6V<-}v|ez0}mD}XD#fh;H-sB8f~W&z^qQeA;vuvjChdusIFpZ(_#lwhy@21FO0 z#;vXl*OG-s7#iDk$qD{Z_RW?!D*FMKH%(=EEkWFG6NZt&;t>(#-9H+^yBxE4Bp0^X zI(+~A8Uym`0qxAhsW7I);Y7U3?;_LEI8}eS6TDgXvZDf!$50Jx9go>^B~oj(;w@`( z6uaZ!H)~_YSIqgim^+uq5`CEFy1#E>2!d@Cx~sNx^^S80eqEws&H}zjbnz^irIvC} z@)$6|PRM=uInFG5Muv_~z*S_j#Nr-~L$3KxiI%Nj+**A7^Bv<%XpYIAVj@LNyZzjW0Hrb1b5dxGl<>`K0-@T z0QA!2(PByUok)r1=n9X(nAAfdr#|T#>^m*?g`8+m$K^WVy2os&Pk$7!Et~$gP1-%) z)=v*GlImLB8~|$@%k=Lll`J=-n6ot#H{%&Z%YNlPi7T9E+hOL{M)JqT#fcGS6N;NJ z6Y$drvHSsr@DKpS0woeEGKE&C%-nY}xe`?v@x%yabJqDV&a2k4hhiVc3%TG-k<6<2 zHcoccD7~?CwUtOSb6rNp6M>nhHEp-f#Q8ynEDjxp+J22va)7p=y%u|QT?F;!1ivT7$1NMeE+JCjh5M_Is?lBRrUmjZQGl+Tj{j=ecke zfDa>qVbTMq;cVVbm#7-Wez(7RsBRlOE|Bpeo-my#n|O0mHb>+`>;=6G@7&LyMToC1 z6m~AW)k2tjRPQuZawiw*M45=z@DXFI}B zq$zA@j29NmU3#B=miknj-aSMK9mOpA4^NI1!X5ltnMx~glaenBUk|KpKr*fbPb;L1 zDT6^uriCHh;eJb07ofD^{#d`rIN)lo4n@fL)T-|xq`C%$`fE=?|1 za8J>FfDM3WiU84(TFs_mJ+Xj4JAyEA!jGe{i(XvGI60}Mv1a^(LuuP#=ybC!@fj$O zK%IVc@(l%~t`eHLTJ#mz66u$b=St1C*N{P}0+ZceI#)5z+;mKggqaw_+iu%kQExq) zb5+A}Tryvz*?G&NeN{v=B%w=|{y=N#VxVUx!xUHi)u!-6QBc>?F(6jA8Vl_uh!`kX zHA6t33|Q)Q)M3#9=FGrI#!+Ub; z9-tb$^lufCe{;p)g_)(um`+c0*H-r#oQqNpm=oTS^rY5Of?c9DjCJT|^z6i#@ILBA z29xN(Lzw;O$euKUI&_R&YC+tQ={cRj{c)tQDqo5X6930vPFUDw*igE;t^YVpFh!v- zE;pSbolcOprURscTbUS9Aw)?wT?l6p3767-o>u9pH_$QGRg!?xhAu6^XeoFh+8v`Gw!ahs55gpmLL*yt4VXJG8!)R)k zV6P=-D`bQe%p+hMz<5hNKy8zejH6YP(8*pIk?pn@K#y!R3nb&i zNhLG*t!b8_nGmhf}1z7PCMbL>s;E`V=MOUl;w}M zNoub3k#n|V5PEhq=cvG*?^5x$`8YQ*Z%FnXZOkeTnF<|`S8e2lmJNLXW@kyZ* zUU1VpR= zt8*ZqW-Egl-?ed!9E4CpHgz_yeByJs?&Qv6J}~ZXvVx;+>s%`$T9&9!D^Arzv7iE-e$mNoBp0k$(Wx#r(Oxlm0pd%3aB4Zs3TnMt2H!@_e< zom102=ydfnC3J&?5T^)Wo2`Wyi)OxmL4h^FzG6V2!Hg|S)*rDeLQ&DZsJ#qPFxP_^ zhp1@^tNif$pb(C_JV-$br4jtdQLn8fr!g`~asPrt861uB2`%OO`|b@LImf>Uqsva;gXI4VO7t(| zbKFH0G3tQtt>3Fvwj^)d>bohGC2DcmFp4!oCZ~K2>nasslAY8)<*`uA zjD3XEq;1jfF=KB;#lf%)>bbm8i2joaPprK~AK~lwYNsJ$af(9lYx3t{i0cB~2XrKiRrckfV9g7djNEIJlCS49gOl?|n}>=Cx~ge;;$UolL6tYrwnbcLr&$pY zmgQ~!2co~`lUurxqx#$b>(n7KNFGm5o z*tp3_!6<0MNs_L=ahJ&-4&fm9grPjva_WrlJ|{y1(zLkX<%8FgMe;`wP`kclW7W|1 zyC+(By6?;@|1}P5FvAH<_Ltd`#jeti(ms17M(wz(4NgAetSDt{Y>lMkyS|&;D##TM zt}mT2b(R-WEApo`abAe`TMJ2Zea_wr;bhBO#*|Mk25juF-QC=5bSbcHjyw9O-8sBD z(+|bv9`|hp<#zd7frQ}B1~blmQJ%Gg>EuDh`7v(8TU{^7c$;nKZ}1^ZtUngcK1vfV zL5nae>ZWLX>?Fu-(+u_lt0s|=?M+tPP<3?*ye{N$Sh+i6@rc}@yNO=o&7O)5kuzFR z43WS$n(@){2YL`~pf`Uz;&E>||$4KE&YHaI=v=1 zThL&dtGP_OLn$iXfuZ8{#Z%rrg(xjRK*;`&w{=tFIp*^ZwJQ8+EjOp~oEA-H7N#Tw zzpo}>ehm9eI)jr*QBK<*=y93HS?ob8^PYUY(QG1RUDH)?TLJ4ktO8^fMbCOx7NuhQ z;d3Lq>r-f_OY8^;G!jO0CCAz=?}0ERc0?tQL~wQz<+Dmd%*Jt~J|geF(w^n)A2Bcr zX`#zdt97TfYjl)rKRw*trgSg5M2;#R1Nk}x7=TBygpntoy6hJpIs0>o@9>hFc(IJH zef>!O_FZgAb`#{a?c3?2DXAsoCSPuT#T%%Utk(yQ{!v+s7Z)i$+s8GG_|m2PyF5v8 z2{(|WI=~MY@u)&Zc0q$-zND?#*Y9F@YJ!8SIAd7bG=3)>yDsJSWBaGL28zqu&^=4#k0$;YJ5IJ)HgbXu`qQW?j}=rcc%on+p^ zoN#KjA#ejF=nb%L29UnuQ-lv`Qt#Zi{Jd{^PzwZ~J0=FGeR)p-v(ECxUhj;RdiAvXG0B z{rdD6OL*y=Y4l+HC5?_g!M*)iT9WK+YajpbmJ-N!LqWh2O>2voEmHQy(^usL@0Vz3 zy8OS(2mchPydz=7XNp~>+CBV{W|XaBbgo}%gbC5PQ-po!-KbRe2^F7do~mx?YzoDc zj+VX-7F(%M=K}awv^u%O-^6Ik_WDvv6+wamxbCCFWXLeM@;-N9*R*VIZlm0lIMo!q zJssbieIc$BIc8#p>_$6qe#YE7pz0!_bdrgZ8=xltwh*ufAZ$NRY|yT= znj&<~VrA7WNt$v5TMnxmb@>Tw*oIl!;kOb@_4}A5dO*l<6QmPJ)pAQR2q|;@mM$X6 z$y_`P9&VA4gg5H=X2cBk%P!O$5GQ5EOU_iI*6m0{X4}=u#@>ARP(TD^v9S>7wW+@S z{ov=zdj2X2ClR{_hu&6}y*huW<*ZMX5er!AK4}%`KOOE++?(#|VrfBve{dV}dPcr%%{4Hmse25c zQV;28oFO+Dg1IR3eoQUN;fusaQ9qfjxO|^n5rn^q-o3$|*u)Xo-YGQ%eORRhP?3xH z^`UobDmi8KblS9wZ+xc+yH|ch>pvK&8bMXZX~qmEOsQZfJGhy{_?uyn`1v?HE0Trt&w@V`;4#zkG$^KW)X< z0$k2xac6_&rSGC%OPme%M5vuDh`EHxNe|+4jkQT73iF`wlIn49$!Ci&h_3R!R4T%5 zp|KmDn-tb!5sI~>ApsW3^jH_hIEN3sE;4^geXpR1`){47>37YRBLhf+_GB7!;kU<8R^YiOj)H8b`g)q(*z5iWkr8Jiy?lK7M9hZ z;~^wMIRE%5N^4EU*MtKQ<=af{eWoqX&Mv;}*>Rp%S&P4m`Ps)F=-vL}6XAhdAqd6N zsY}WTM3AZJ=(F5zF%VO4)jYPOqKM+dICNXCp4L0{-^nqe?pt1Y9{Y^oNAy!h{X7DL zf*Qv+mZYX;?4-q}T(_iOavJcz|VPWsixZVn^etsbu3cC6BMIws%1?xLv z7b`cHDpB@(w{KBn-EVNPFl?yT*Ra>Mw>>IaNHtjXt!OEiO-UH9KWx`t+;lgdn9x4y z*j?SuUoANa-1X9J8CnJ_7Fj}u@`jAfTg0PP#i{=LKqP~8+PKu4*S&kC#a@}gj-YCt?|-Ha1>QI ze4&!M>I`_$__c&$7n3vV$p7}Bvb}t)HLFp3*DnGGZ z@$sOSeBoW#_OTn0;Z#VA0pKFz4EI&Q#7)3pqrEM0Pm@YXG=(R<<7BTX#*qg)6x!ft zbVYDG_td$hW+(dAKWFEw6X z+!O}oq_F@B4S+5=^*uXz={Xifkx)uzz|-#KVH~X**rJ?SRjuj`#0hl5_eaj8_$AQs zbllngI9({$yd+y#TWP05WctRen8&_L?U!9&{p}PSqbjGhhR_>=F0OmH`~Rk9XBom0}*gqOYBrORlpYZFg$E z^6TSCUDVarS@l;C&ereO(E^gf@_xFxfQemz@wc8xbj@PMlOCRIaM{(1HN&sg`h=Xv zwsRqN@5FTDh$LR%FN%}LKK0HPFM1VtF)tLL-}jmDI|BYu*8LJt1@i6LeOxuGMV zWP9gMn7iX%pq5H-dF2)7oOQnfMlZ zcB*?Rz22|hs=}a9n+Tyg<1xFFHtp1?BAMrKS1)8aSEqyxvTL*hwY9H9~5&$yQ6YK&YOXh^zitBsci2Rh*>L%Cg7`Og-5BK+M0R%?YQbSdF9`T8G$%*VrqC` zP6OmF+wh{RdMo1i*Hfzdtx*zPqA>HBb1F9U^yJA1q^m0 z!TAu=ldg4#uDt)`GXpw{GGJ3>9!;A)^4)(&Gju+z=r(C^V|^+S-Rb>S=ZlvP>@OPT z^=#kPq>!JgJtju+h&El;9$^Ml( z?B8UCcc0>fWbz<7+(AT@vtVK4wxNU@h2>~SC7(8V_H`XlU1`+lia&{CO!+oFH{ zR_a38OT)%~s_$H@I^+L^hb!BNKxyw+au#*zV}BcCOXUrAEpe*wduU}ktloet7oGfn$EEP zGWW#xOSsKf`y6TJ+t|UI*J@yt8YyzUkQUf23Pwa!Cz6eGoYd;IKJG3x`OZ+pW+A0@ zi?TaI(0_1tbbd;b(+zB;i8v>`2(qDX15rP{R z_ZTjeG}8*(9Xsw0*I5n-1+HuOVRLR16@+Xmfz&$VR3}K@3kDnAM~RHs&O?!tWDj!m zl;5ym**g?=DyJiC^R3GDEIuI>mG#@?2?VUPXh@FWjK9{jb101lfKnkLD$t8;KGCmU zsD#-C@q)l>T^C5WfRhl2*S4E&4DO%rFrzBZ2oO(N}HmH^boH6kt zmHLZOvqqBDXPtn4@*Xy2owi)bnu#LR8@6jM`8uk^kw~Lh!S{pYBoHhWj-P6&#^=uK zUSWRRD2>)GadOK)y6G_dRXK(DYl}*)PNnwJyXI8C8#FZJWtDtGb5x6A49*0V*L3!o z3r}Q%Ny~$KO_6TBhYbOo( zI(Zsx`oH?7+JT)pnq?k^#8WnP!tKm^nr^4i`J+fQy~eDA#_Ee!`4_*N=KR|6CJ4Rd zc*$Fx^r5R3s{QU@Ck+@F#oFm32D)xA?}99nLduD#VhfUQtIT}tl)e{$>f1Z%K4#ET z4*a@;H*TPTiV8lW89yI75?*%+X2BT{@*FW&uEC9rOSwHhlzxjDHz^}s%UR*^*OgmU zO!w%oiMaoM{}!0|I(iVdF6`#MuYF@Bb)$i{afbv0WG|}?#e>ExxPA2NJHs9;5pqxW zNhqYfXgy-?=23{85P2WeVx028u}I>J+WdG)X`>LnU9pNfTv;PlIh{P9qv&}e-9Uv_ zRWnZK51EVzq)}M)?3?kGg#(72FZ$n#bfYIGK- zKfHgz)X|;v@?gQS+GSG*jvkJ9QXr@PlY|lYQ7(Sy4(wO^^pOS9+*g*#oAHUAKP@5P zgb91DmlZeF#K-;z)2Ztg=5kuHK4*57wmaZX-VlG4Tz2f5LWsoB^c$ka6VF6I?8}%_ zcT(83KJ~}}fM6q3KlodJwzJHq&;XYxi=9D>aAt>s$6fQ8&5L__*r5NENFbP)Jz4r5 z^J}r`G=??-q(5l7Uk*0Oo!wBtigT@WBjA9-(5<;%ifFHgghrt2u#hsk<6Vd4dWjFL z(jejn%3Sg5i2x8zvh+3Wz#rd%fWL-=t8lMdX!uihBGB()mg`=I9eBU^*Ny#;k$m{v zGcrj2RK{e8$tmX}5OIfauFS6m*TCX>FGe|7WMvgKgiTk{GVV~OrvI1D#O$=e4xELb zht(7|1Z;O6w>m$HxFYZgEdkB%!g&L@W^j&mBZF#&OO{nco$4KXHzf}DfD z1qU6O+VCixQ93M?>o=C;IcaDmlIfrnu2sEiq~!kf=I+r4%Phjqzhv`$dIRu`i)&f_ zMr1P?UD$t*#7un9bAIT*W#f8fums?`6SEi9tcmiqm%Jo_U!n3#oy)D+b8w&`*XJ7P z<%C}#h~nM!^ekyTQ~OjpdCwwTIB-Lxex-d^ce}tK5e6Da0+3TDcQIWXTxLf}0PY4p z*$_W3l5J^K(&?G8pW4V;#8l4yT*u^axLb2tG_t&q$+>q~9YAydo4;egFJbq#8y?gu zFZ?@9Kgst{hEsaQEW3X3G^>NUZ>%9K)7QU@ZFx4929+99rqPU;S!X16l{9`a$}?~C z?1&2ZzBmiNMaT&+_F8$1{~GY@g_4`oFT~72)jrQ^b?1xDXhlj(TL3#i#J@Z;KOT)0 z*)Gs!T%TjC2K8#R;%bXZiW(*#n;F;|X5LHc=d^r1!ge#|z{K)M$;$Iy%AgeRebn?K zeb3WtmJp}011~;Ey_m)o-qNb+o(RAK=q*V%;a_OGm;zY(h58q=C zW$Kvc$k`f}Hhpbu^7LlrS)ZwOOR94;G?^G|#q_F}!VM&Bq1X%@(DSzPvwPQZBlZO{ zVCw~3_(}XkWRGvvZ{9J@X4hfl37l)$WvFMOwvXF)F5E=ig5Ek~{>5QwJ@A(OlC*WJ zfl0t4{UPjWMZN?Tsu%RkxYFwxuLOQ2@oS1bT<=;tmhB z9?HGgR0R>w6y>9?hmqYlr}w1I@8vEHZK?I;hLUOGd`WM-u1^bLw|_zQUOc#5`N^iE z<3zACTA&?3;uv%-3BtE~WUohAHIV*5S!~jWKd-hQHeOH|<~YB&6Vuh)$0QB9M<^&6 za!pW1GteadaNtUt3HqmL+3uFU{GDG}UX7jK^ap}AD#pxbo1cfW#$FdAtWzO`VTCry zOW4;1+X)cW_?zTLhB=5@!^+Efi-#9K@%x#Rrh@JwaNk^e`93}L!>=hM_1%%%4BDerdXZO*YYgS)?o&13cisNV`%tj-qC?`=L9e}KVHZ?RGLooc>m zCr2cGOYn~NZw+EZ9RLZpPhXi}W_2f=Q*mlu8p6PgU$>vE|6;d1?oAI5`x9M^P9^lJ zjHbhfU&FGp?n5F#%OFP6^p{*jf`Tliht3GMuX>jr)?LlfSe2me*sXfokisr6PX&Jk z9!UY3pwyowVi>F7yNX)yxnvL=9&zmvJLSK5Eu+tEApO7P?=9>E>_b|0!3E71$-ZQD z2R)wdUsq{`YK_~&pWUlg-Dohq5>htpF!GGk zWM&XB7{iU_`cNY8NL zl|}XFx<25%zfJn9KA_G)3kOou5@!CjEh?Bdgn^scb!!zD_2;1sBZ>aI>eqePA&ybD z>(^aIAhie`gUl~>f7E51T9W!IQvR)@R#?2s*xJ#?>^#rXplR7@aL(4hRSUKmv$V&}&o6xi5Uu9F8k$8_f zD`u%nB9vx>zAgs*gws!?lz>Hjlj@C~Af0~^;cs}JvX@-%S z2>|lPuPqq=1PT;9%mUC^C6@rO*!Zdh|Nh$uD8E`*8z(H}I*oO0KjLX7@J2n>ivI5{ zMWFSOv<&Z~pDF-J`!14Ow#Yna9_Q|N7r>vTiJQ`4eR}cr^zIVJCfgDs2L=nc(k?aS zer2^Z&2PyLO#VAfG?;PH;B$Mks`1r4L;+APmS-q@QLRbMJJzFmx$E%924g}5tWP7pgx*l1cg6L6V_;nlE{vgF1g`4{`>sz4 zYt%mg{Q*>j1ywzMz20QTIf|gI8HJ0q&?uuguJ?E|D-UwYf%xG6nWsy#N4@c9W?36c zWh&k^bhb4OM&IaLP4-1eVQsVFM88Tpj#d?{Pc6QXUUR!-8TfKO`Zd7DOs1H}-gm)@ z=l-p#s_mYUKbw$2TDPYsRR} zckjNoHfpY2V}pxin7)d3T>rqJPt|L3 zePj?~==i1$#=ROiLp(77>%z^jA64fbB&Uiw<*PM>^_BF=m^2X<7L_V7cj z>HlOgBO9uE#G;^2G5&4yRLq%PA{gmxrnb2WdU4pO^VTFB6g^XLoA&oi#cRN-r>^Jr zKVCdsHK1fs09^j?66=boPV2B&g_;=yx|o4ecBCe9zuQf6VEjvZGWZSDMLmCDpM_<~ zhRNsy2a59Ze42SpO*r37lyjqmRb@5PA9ZsD(ZhJKXP41_5^qL!1DOhqj}1P3F#qHS zXtQiL-{xqyiibXzx?R~cS@hu#U1KS#^w#)Y1%*?%PyI=vgD8;Ge&+}C8g5DkY<6}b z+}8ONIn@P19W~OI|B>n_$mLw4=T+luHv&N;zZQjfjjd!9Hp&Jt>7?SuZ4!Z}Y@}^$ z_jzLTM=|G&D-WIh28s2tnc%7SOfw=&WzD_;r8<&warN|w%a=&H;@*%#;BJL>Ef1++ zeW_xZJjm_7_-`pmE`!~GUVQK$(fM>Gs~tyw5l||adTBi9{^2@-KYvN~+leokSi$;S z%izqP_CNxtYtL%(yI@4NAlF1Nk7C@#$}cbj*|a0yqRPj@SOF&c*;eCz(0Ua^KIEMX z*J|bPNL6N>RoUM`%ozqz&Ru38ZeXnM>tC&}CP}h5nK$C90@}_~!0-IMOz}Wpl2zGBb za=(!)`*)Xx6O6Rk+pR$%x)5g(ET>}1HrLyUJpt>Hx_r&~F3e}fq5vza`W;ajbz~?a z?#Npo1^w`SHnnSbTWXSD3l~Q9c@_LsyZB0&_MVkX7Fh6n8uve9u1>s{w%lsE>P%$H zP(6b-eTTw@>bm0_gHSKOzR}plvZd?SDVuYmZ~MSlJhStO{6DwlQtTm}4If%?UCtB+ z#ZRyv3AK*zZWX3>9bwd10V;K4J2amz`YL_(ZQ2sF5=pS?UUK}=cTD;2kIN*S@qGp!hddN zHA4DbPFP^(UVmA0uP*Qkas{QFwBLHEcFm~QnJHlLw2`+POmthsXo=a^e-otqlj1CuIh9PF%2pBXOk2j+2>MU=sH zk;89kiFXkEiV?r)RS1I&$3m{0T62fSKGk*bv%s^jf(OqV`weXHFqDO0#^JA4Kq>vo zo(bD_E*-e)t%G@;sD~I!=I&5~J*nSiiXHDqNKsD)32kgpr(Y4nQ1_ujfF93WNEBwI zM7x4_gk#@E0h1)?t6@}Tp?z*i>wY#hNl-Pysi{Ot++0-ft2dHn28){+#46~0p0VIx zotxangyt5cV~l7bWgr#oFJ6$rj3m&tgE!vC*%w-x6V0MsJaxQhy2Jfc!SdK{ihoii zRt_0juxo2O&AaXY2{bU)fMI_QWTR+KVZ zL^HgfxWAb)C%LIx{gvEKqbfOkO%wSQDKbG7;&9L2g1>2AGC(~n@lmaHTJLo_$ zvWLxMen7Wfz6iNW`xz$$*PwIxn3$s;GAa0|p|YVO!|-wgSn0!iYftXaqm%yY!j~{7 zfqm)_j+21b>fr)k9pM7{y;mkx)_7esvpij~C9$u7_UCZ8Mw*Od1CCnj<;N zcK9!9e5S(_iO?f1d+yzk3e(GXeMgJ>vb)o)%F2E9y(>87HNB>eZx=~7Dbg%1wEQI} z)L1W^4scj!rd2bw+b4q>8cn}Y4@8ER{z|IXRC|1O7G5#?iqnX1caNP<6WS$Ftyi>* z_L$y_1*;*|xm4uJ3!OpNj8BNclqc=4uNe9!N^X-hlY!(0& z&&Nhx%kj4*lg$o~R~<=BFTzqEfFX>)Ca=5Gi(d-2<8hCtbiRxHq9G1MQtY9h7|jni z%)5xH0&-m7e_GxDFE1aM_b@=2wvWsdhU8m->o0|;Dl!$1%|dJ~`0oLL?(0!%DslvP zGnXJnVGI}KG^iz(WCD<<&PwxxQ(awp&*b2rO>r`dWJ zvesOxm-3n%NSR*2Lv{bVdqjMs1Xn^>L=F{puC6*AmvPB6kgzJgcfH}_lMnu;GZXXZ zYIH$E_cbGI9sb9 z+~3C{A=;XDk*UP-pLy(X54gYcL=K6p_G@-dmz5^3`BMyxjA}7V-|us~aMaBDxw^a| zls@3^D|30?<|}_3=$0+Iy&kZ35SGGoU}y(HEiQyT?OsGXp0XYm$qROA>_y6Ho03pM?EB|iSxmHxPt4Q&m59{6z zc6NM7Mt}Th8hY0BrH=DOgk%V14bA1Na>_Bw{j!%v7GzRE+#(<;)?19EGoeE!_Z5y` zyWR)h@r@Q&K2Ew_L-u0#d|J`rsfoDA z0~{9+{q?*gMs~lgMnWHJB>lF#Rf8$I==C`Fu0rc9@`zz7%ciz`cgMqucz3TD>B`6 zprEI8`yl*H{rUZ$Y&UT%9;;6Wr@%KaD6{#pBiej5>IAfKeCKphIP}wzk%~ zOEL$Yj!f=vAApYIvJOpBGY&Pr?pEw>1#hgZWht5MAEbCcr^dGc((28Hm~xv@Pfv0o z?!`j3bQ`Gb{ec!h++G^toSq6E9ytSBYr&JJgw8d)wJke$RWWFF?ZF+^nev_f(%6re z*tashyQL&awBHOJAU^B;zZcm5x%|)NKbK%fAQ3K@o_G&4{n=l0lS2TbT7SHbE}cxA z44ItsbCPE0UqkmEx0Dz*X8t_x^`fV0WN`oefCl!Tiz##_rG9s0wEJn+6KnSs%Bm*L^S`Id>X1HYKF^S&u( zx*>PNMHSMplhYgj+?N;Ffaj!8AK2OXJ;`V&5fK6n zO&0YHpU~>kvA3dqWHvBCV5s^Qo;9`6P^_I{w(c1WuPUFS@Y_6X_lN$(*od)X z3PIkMq+}6;*tH6@AM3Qg(hV7q2{)u2VOU~|)H&#%4MdkRUnzBLrvcC4nMN!C=a(gG_ zfcDXV&esFH_0=Pvr%}Pa?NH@6PK`%zpT4}95*9Z!s+`#-`s`FPA$?V+)3^xrP`x9a z?Hc1XILZZ@TW!-NY!rzB2a9d4N#g%2;v}54Aw3$q6u8YKEyA~F{QKWrJCNGG#;K)FyQQ^w&<9c(lfB8kQpDk&sPSXWsMGSzbz2- zBn|RU)FtJl7jx&oJ9&`;qxZY|qIU=31lldyM-uH7eA7bn!dmK$6(_B$lZSqT5|ePh zrP&(E=8`x#XHt$DQs-#4RI)K|607luCkQ@S^>VMiblwAwtySCT8ziQXb5iS30;?cO z;U#M_?83<5wQ1Mx61=tK!duzoC_4?#RQn;BCk>T#_7J*|JHoe+rwS>X-<{%vOoc5% zw!Nv^`yhKesjn~Oy!HRdenvddNs#JdGeVO$(A&9m^vlHM&?dUA8 zZ-kl3m-d>x?TDVt3u?NUhf_^Akpe7*78x|OOvm|x)s4YVS-{cfPf_WIt*GqHyhc8j zSM>ketsF71(cXeq&tfzPZ7HEQDRN~Wjh`|Ra8hI*)}zx^!Op9v6MJvhsh)RyJTGT? zF8UmY&yM)R5wyHs?7;)PsTUcAN?`KK)G`j*$&UeSp7Iew?283{-?PUb55&r z3=@&Bl`+9US31;dtsUoC=(~HniJP#le}H3Vh}7PKoL88R(oIcF^?)OejFk8vX;wed zG!CJSrYJ3CY%2n`IoVypOgZG+3g(D}HIH?g?L-cPNC9&>u87_|f^2`3(}L4fSfT^;)?#TYnBwKkYAWoTB3CsU-X2WGrYL7|3{+ma@#4}YJlL?* zwfw4&Mnrm-tsDn;X@97FRg#`%XI~>oDRi&IR0Sb>%zmce|0wwC-F?5I^*$$~&i2i| z#p0w=*Ru~afmFNB6MN1QJFXIh41Y5mxePM8R~g>@O*+i!-eYgfE0Z+c&#q4^gG_OQ zPcnoqvSe?Xj`~;}K)+)%y@-kf7z6GEm7+WB&X2m@Xs=$rNT}9O4!jUb?0cWSnLIAD zns(>X_KNt`dW5^)Bd9{Wu@u^ciK6jtC(l1O9}o;H6ZeQId#2TfsAoUb&CJKfbAC$$ zo@R<;AzniW&GXV7Z_h&Wt3foh4Fx6GcBKVInC$tR5boC$j6mWU&06g$SAyXw`B`;> z5Bzz-4?7ArE^UVz$#{pSh%8K`!Z_Lm%KFlmhmxtx9{p7y=uJ@zX^;11b@=5ChO|AP z2KL&T(Uo?aT(@dXOSF*?Wk$5_n<8T(yW@(iZ0M!L!KW+A;WLY<1X%IwOM%k;AqN{e zdBfb1s%pQSM^}Od2)j$u(d~kMe;FY3d?Cqum&i8kRYczZ+3NLKl?q3k+W-B14GQ#e zRyv-MhG{Ugc+Ng5yqyBa&G94^`nP0HSwj)u~<^raC#7O|G?UlF$UM{LjWvqIZkqD3C9_{M7V{8$&5uW~! zduT_A#y__A1nfoZE=)DW|5MpaXRTSd>x88Zj7## z$iz#t17|^DBtHS?M{1x-srx`XkLW|)X!`ksGMZ;g6UlTVM15iDgYPtkp&EA`o~;)= zWBY~llFqntE`c=^w9I?u2>FX z%9ryze`O;hu_v&Hx8nQ#e9F(u+cor~KYlclZ#J#>2lhy=rwYMQWmaX;QFhT$G^>q8 zG+Gs~Wkzr$AJJo9e+CRHvQR12ak_G*fNDDCL$(eQs=*ikzWFnZ{>0WZ|Gf3hUp0j| zvQ}FAb-Up%J4a61Vud|#XXD}N42$?T$YT#&dyBR?*9#jY!|IP#q#URCm`r|Nudvzwy^%W#Id1tZhT>bMW*_;gWd^# zi*gyoA%$nC3C}`Zq3#3=ilFxa)c~6Br}Ye9@B!ZW#3YMob~V58*S?9>o{7V3_p8hL zA&Zu6T`_2Vzz7lGZ=iGW9{*Y zegYC;)M%=)n3A_+?fHCZ9@|+s_@B(5znjBYQb=uQOi?^wN3f^cf@yGC)V_J-t~6b5 zS}`{<<~QWqi#>gyVBLKtL1rf?b#!E^c5KI3#aGgcY4rRSq*=8%UZiTvvmTJMox-pZ4J7l7fhN+u9Wf--RYv41VC%%-D6!`OY!GD`@dSaX33jXT7#HaF{y%--;cIBttR3YhY|W#-Eb>;?F63meCse}$Hba_edcryOp13TcWK zKbvSWp&si=_o)1L{z#j7gT(lg%}ZUi%Lz+3J#`$hOmxbR@=KjD9`EgRkFp5bzx<>I zHA&o=WypXym#&yH3<#2X3GQttjH*I&iZH4+2?$Av%C}tqKDW*?R=rOFcndy2@r?&u zWs9UAKUZt?uAe73YBYgnP6Fa(o>9T%zK^yASv6~os@SzeCk2^7RjHOXAB&d^-ek{6 z9Dyfl{>=~o$dTA(sf2?3MI1Y}SaI}}Z9PEmkTm72$`&8$sAJzH>1Rd84Dj+T9V+AN zFQXaed(*&gnVqFQi0DPvR<3;)t3V=hCOnH7PpLrv%0yOR&*e9djaxk?mQ*fh9X#*x zy@WICUh2|L`b?Cgv9Z8A(HZ;zuO9M_5|rhZt4qO)}DbSoKz?}z(EhKH$Fj=!%ng(al^g6Pc zFU6?A0qC%nnTU-ffDe28sFHrhhU#n?%_xRNS>^1aWg}~ByUNK{Vjtqw7W&cYz++E3 zhDUA)9q&igf0G+WMibfNKyf9ICsZu$U1#f6JY3bdn9qWo7mx)>lULfQArMK`9QCxK z9mWSxmAi_B8y|94Fgt}G=>E!S##s(FKvyfho;2+AMR}p&}?HM#<;PE43!K{iZOp-6rd^b`jJY{K>h14zzJfJqeQ77@a zsyK{>0M?}fQ5^2DCN4nvAa#g&TdT}+$TkuoHGD{1$pO44v$q&0wRD^8Z>?a-NgLu3 z?Fp6>JiVxD!Q!@IZJIP}x$4mO++5zlOdUn7z3dUIRKJQ4+Iv!OYe6u?`UXs`i-1Zz zMPN*t01ssU+N^JIT@28e`+YEwEnS(`lmGh}{1!?}LzS{;9D zmt%9EB6FStPD2R$SIxj%5%hKUoGU ziXF6Wh?PAX((FIKJ&CL8B!ad6a`T)z4d&=gQ4{D0*U3k4F6( zu{=HT0g%%LZOC~^m;}Y?vA1WQ>4=}Ay$M@GS$z8(pV2F#zbyGY1Df*Z8XCX!(Z3b^ zM0?2To!x9bgN-y&%I|Yr?>7tMc@WAobDV$$5N=qskJ)-R$pMGJ+wUI-6aKrXqJTgu zvX<$+*h$6V8WE%AYIAuZ!m9Ae3Zs^XKo@psr0s7{C@6JlVPnZnC2F2uY3O5fnr&j2#mUf z?qo9)kT@SdIqz>uT`=cFLwh25b+kUOnafcAcu;8#KW}D&Au%$n^ zf2v$*S(~^sHd~KNL`VBC1xDuMvpbCY0J10qpQ7F%DsXndOZ8~H3U{HtS zkqoP&14AsVpp}U4$1ko;oeSA5#ea6=Sj@8ZId-f+VbJPeozdpVXfl4DO!c=IG$Fk{ zr)f>>r;=YVoCKC}HC&=kbwpr;kyOyBp3Nf3{e^(uUQ%3tgF!SAm%Bg#n)c~@%QM1% zVFUnWbD_-pwyE7d_9XK*c<>iV4h!*HPB8;M#469fVhOlNmvs?`lj)4;_ivn4i0Wti z7ybnO3+F7b(bk%|Je5*Q+GtNo5w&}(Co-#n?hTRm6A8FGFRufW0>_q^k)@O<>ty_^iNIw6v8 zmokO>_NRncQK)MmM*m+Go_M+zW|w+HkOjrBEv#yv(ERlbUcGYMHm~By*q}`P`1Jbp zjO+V25YX|haZ4eSTx2_&_A>roxeN%Fz-8}!#xcol>jzWrNl$Gn@U0Yf_(q_a0i))v zb_C{>qI1^Eq{1tir3Yj!O(#2tPo%=Bn4Zf1-EFW}(OIMze_l6Nr3!7)6O6W;SAJ`r z0XU7i&mWhPsWXO2r4hVZ9Bf{Z_!pz%nNa3m?j390+%O;Mo0eggB%NCMne`BD9a5Az zTz7MblXi@1vzhviD~B4+zdXMIF)A-v!33r|q4j%m4tOaiG`S2csKR?I);}<$TOv|w znq#fqvz$$nP8EbKKH^Dv_2u2K{dZGhB#jGD%|s{JL8@}}4zH$2Q-WHamn{mF$+fMW zQ1E&20LDK_X*y5yLoj1_muwz@<>^A>9WjXbzoHS@B<&`4{LaSD%Yffjy?WjAjjzP_ z<&H|9YFaF5$d^;xjInK32)gIuRrrm6VSuxh1dDlO%-uql)KUScHu#iU^gqUswfyesvuSh%GPSI)KI1h z7sSEZ$DmD@wt#=rMjC`CE%0byH2UcjX;!8Kv!g|=mGeg7@&iCm5k4&ZRJA@};@n^O z&UD>BGM=Z}=%_uG(g{=YO&H9ZpScUA##sQbc-}B8Z?g5dtDDD!qu(t8|dw zdr3eM5kUn3r7K7ey$MKyNEZQ--XhYZ_nzb>g5LXa=luom&14)y=A5(o`mMFs-X~i~ z(Yw^aFmN*6#v>Q2IE%<5dI*sEf3?G|%UQ{me5cl6yWX*s{h{811DtBv2GWHt zPNGouy%UYW-j3g?$uI>$Bu;}nlJhmN$Dop@qmBjklcr819d)+-Q2T-FYq8Rw&T&tI zP_bcXr;(@83GsC6j5?@_7~zeXkVl?K<5MI|@u2F4zBlIz>3NG3M44uWki6s|;EXSA zlyAE4MC7AW?ppln)SxwGCz!$SK^5M$gf0 zb(37*V2+P54PIh8l|>*#beXlx3$~!XKFWFhYY8U0Xo5~cjunkforE~%*%y3 zKb?+fkQ`h&@|`z1jluzaC#Q2$;qZ9?2&vXDU`*+x9*QkFcja*BI!E zIDY&wI=}xcT3}~*O0L0rF_rHN|puWe0fGxZ%10Hcf(0F{F$|6Ca+TDDK^d- zA)5<@e7r>pqinbt_gxfR4e7T$^2FI|ENg5dP9mJ^ZxtMHyKkdQ5fm40)HP=dF} z@;-@=)pJY4flhN_ZlMaI1<0gLlcAXxr);ZPyAPTjI>ok+U`7#kAg8Tz*vSYHWxuVW z@xX4|)b$5og6TujwuX&r+2w-VN%@U3s|{=uQazm zMd|EwdC&5l{SRa?Ia}ZYXiB0n*NcQTDAV5wkJN#om5N#rMUu2&K*qI8M2RwyMlBZ| zcwcOs;?wIs@~@Iiomg9HQiVsxY2;lQ0FwtqzB+J#;;U4Wm4sJPr-P8Z0i@I^!@x(U zIxS~tfTj0}6HdDh2WEFsa=BkrUNQiBYYq4)PKjrZyoPC@xhz1*N~#KdB;kvS=ko@x zh2&Awf)AiKmoE{&61i+2t+ju{EntY}6q_bEHWw`o8T)F72AXTG)Omn<4Y+8{p=x(o zE?l@!nDXF2x1`>Mn}9yLPvP<@gWwX#NWfYMEY?=dnLJyx9M63vK|>@d{G#txNB%G9 z5XhWgjV7{8VMhMmxl<|KfTYGi+-ZEp(u8p_?YS}yC(X^B%l%uzHH46F#P!)T;Ei;C z#!75yP1WU#r{(F-uLKp8&S|6SGi-K`-LYVj^Dit?8-NpRbJ z$@e*(?6$_mvVpRv#Hz|lz{l54C*8FgkcCqL(_nM0&}{J7a>b_SOTI^nidzezGc0M_ zj^E^?^$i%5=9fG5$%s7vLzl zVs(`T_t5?Gr?V0@wQ?*Di`o5Hx#D;R02@Mp?=;@OPxx0azQUsp zgLd4wtLPq!nP5pI2p~O053T;=zh26m&yKC^T>OuQaYZiRUA>nqQlmFCL!#Q8 z>t41GSGnLRe$!}cSbu&aLWO!xdPD=nn9cnTk&e=*&=!RA4(Q%9cW&*`B3tSOpm}Ir zbf3!m!v9zfA5}9G-pk%)J^C329hBgru?bk4UOxpx0HI1$Yo@qJV9L0uXc4JiGOl$7 z&{%W2uYhxZ@)~@!5gLf@2$i=LyH$LdE*e;3Lr2fv5qeq)R-`p#E|VsOtS@=42?8GM zalGUYvpntHnw&T8Nm%$Ee!XIR>okY8AnFbUdB(`t3#X;;3#0+K%RPL>ahg6;k{5s> zA{y7z)jH=2=ptY$g!r=DX+No>;slnEU!3@lZ;ufv13shAYK5G(VV?^SkU67r{eOg0 zL;eEr;H8iAqa?b#qPz% zsdUL%LXMM39b`)I^us@!!U!Q_-JCN@r(|Nzh?9v==x5{8An8dR?%_4*H#<&;RiqH1 zGGGaGvKRdSE9C!qh0wUm0say-&fl{zarH5U3z)N+5qT=q@@YwfJ3ToDU2^}+D$>lot3tWOf^1f_O;vk&m zsW@mLA`K2Eb&XS{s`-qRX@7W*jkXTIHE>5QV}{Fj7g}H+9nfzSoef^3a0GAH+^f!J zmlzn>G8q@w*DI_ob*YTkEpT;tT;1PqGiqW~5&hogBf@^*Y#-5~u1OWEJB~wYxtnyy z&D_u-vL&67h-!-=j)AE|vLUq2r*9wX>05II<)mHqd#Tm*uOuw5Rxcr8GiT0to3#Up zu)jPEBVn(Iem(OKb&d2I3A6qdrrrYL0hwGg4_qvL|L*tM5Obt82Z4-BbpS-e2a9N< zE|z3fLNQjo$srN~bac4Xz)sUqCjEynEzi+_Bq&l9T@s)J$o184j zYiSaR+DfHFb2rM>D$b#RBxs!u&JYvR49<}s(|(8iVz~;@nsMd+ut#%jksjjiT|j!N z$p_6!w0~!eIv;YiT-{6oj5Vwz<}<2&F?jg&$KgXAhXNv)16pRBGVY861!}Q$H4N&2 zl?qN8#u?I5Ipj6UD^h!KLk0fs(xv(Jng$j@V;!OqI!%+VXi?FGFE;&!a_^0T!OOm8 zF5?kn`8-Y|tDqzJ8Dk0K=PM0%a~G=drd3T|GZ~qt7E~*A*Jb$EAYywyuGQf(RRe<$ z>w~;Xgv0K(iCTMDEe#=S6nWL&x>A)mbaW+X?=AfPM@xO^5v_5ZcV9wrh*NZPf2yFz z=zE-7)oy+EFgPiGAHm263BYr{jv?lEgZDS{dy5SeyY|&G;}Y~KpnBbj*>(b%v*`V| z7u50)P{r;Kwnr8jP%0uD4m@oVq)Qjod}HkA*6&Pt9qtFt1!-PkM%CW+Pb;46yq!?6 zHQcgvfuG{}o5fotLEB;Q@rJkF6Zr-FRSg*l1ilR4y))jr5U2{2c;Ta2(e>!_geNTw zDiZ!B8L*_FLDe@`+HS;y=3lqPH$GoxmG=Ke_VBhU;a1+`NwDE~{hY+OqX>rz;zF*$?DV87zdbtT;3*f98=sNp#1A(NwLe0-0d&x zL^tSf_$((7Q>P%_x)TgI2fG_uQPeO1lfpUAOJ3z_RS@yP*^&96PCfOp6HL$#F<%(* z)lfP-Q+Qq6LMddk`g<|-lj2udXPfa$y5-X}1R>v|zZEy2ld6t;wVcEt)w9-WJe|2w z3CZEj6nyix=X31?8b?0rj`mmEktVA48fMgrN_>U7RJ^@{o^4lPnKjSb$cnq812f0QY1> zU!C|m3CTsB%=F9K!)xt*KGTbnJsBaH;@K=%_4Mp@?ah$gaFLho@)=olzuSuDa)cd8 zjm?#0udnYuW7{8b9o~p9@IlYXmA_YGTu#Lvnhkwwj$+|8H@r>w0ysp8^>K|Ogw!bv zvmY}jLhlBav(Sc)tK{xCIDSnRN+`T4Z84L_yqGMNPl$XHZ)evuixH7gfBHMTuaSU4 zuGn0LyQnydCvwL13jhmPC@Kd33zB-rmmL zO9?$>+Z$eI^OYytY^mk_YWhn*5g2j}ZohsZEUMV~$A;zyndf0uQ=y@^1{^r%1azS2afqdOaHulWM63c>0zQ9! zyqMNQ0dmPeq!6!n?of_=_v{|60AV`bO7d%T8|B}?ns-$~ zumvoG3yKPd_O$Jseq>TEeT1Tm!JbItBtcZRvp`W*V6~GgCC(0aV695jCrATkyDe&# zd6c6@-%0s=v?q_(d4u1q@>5Sn8hw8@O9?jj3g8m4?|yen3w| zI8eB$S%C`qMM@Z|KyH1+WnTAj8D_2<$a9P_GPpsJUKz5Oh(c)*`#xc8(l(o<3xU$C zz~p4k&9vO@)ixE29DJO6Mx@pJF8+J!(vU=heWqRaNPqefvgl|&B1sbUPSErNgAeJG z^&j2}y($2&X8UQ*V+`Xb1~lu!Xz!;`uuIu<+oe}pVJB9H)_(Q9$yJx}BE zF4^jr9Yuu^??NyU&P#9Rz&(@eCHvVq4JjvG=_OqxT1JKMjkMd;BcoUE;nve+TH4JY{aL~LtYdO z@IKdDdxA4?&A!foL4D_$Z>?2+>+i+`R@p`kCUisr8uT?#1@lfy9ES7*Jc>A}oReXT zed)?P-@jvXQ}>@^Xj!GVA5o;=aBdHhb)xQZZtYw@4%KR$64Fi|-d^C3iOJ_dW|?Bw zDVJNZThP*lkyaMk42ywhdj54E#Blj?f63$cObZ#DrS5t*LhY^FTGE0>9;Zt?KIGLj zR_PL-aZu=}U%2oGcF^KZ6N=mq4aXt?q6}WQg$&u;c_b1?pcOlpy*Bpi?z7#KeMcZLt;{Ut(T8O+7hewjq^=KR`z>%ZlF=d zBbXy;i7a%Kp~$3Sdxm236#*xO+jGO@l~}+7+Kb7@bw)-U=;*@r?v(A&2m^fpM6GGmygM3 zk#@Pu%a>^Yftx>1#=YckLmHts615N=DcfD_Wp70_4ecEq9P{P8Nl#{OI6XiPq^K~c z88oLuDF8b_#J|R%bGL9S5!*5=j00)W8U;mz-1^fsj8Fbml+F7C^>4;1@A=GEPL@z> z>`Lq(k&F8+z2@;lq-R}QeEle~&|@jr<_f(xDTx&Ec`x@Nj^kYU{89!& zUxf!gj)FbR`T9T|mIA+DhXa-e+6DTHNnCdc2+ArHa8cEmX_(~rid5>gev`7*p2BSo zS<9w;^s3wnF?vzkf&?SwsW`-c+>0S642|c_{xl3s5H>3bCugh-$+!$E?xjJM-dn|T zlEMyU{2m<#xt-X#;ld=0LT+bwakn;m-_w`KRZ{vTEjx)%+X(<(-=5qxbc8g3gjg-#IUo{GZ zid`xRA50bnxTswO1gyOBJU$-Eoxu$la(w}M$=OOXwH%jGaT%d^N$x9eeA#c43{pi_ zf=H4y_&H>qM9uu0T@Z)aa1(@OS9HMZH6JLsAv>;~M`k9klb%q>pAm{Jn|aE1*dpPq zOn{|tRR(zNJSy@1&8rW2jUFJ)mWav!AZ4btb@`{F+U946W~w) z{D~qYTA>tQyGGh*?cicyXI$(gzxIYeh^X!ufS}9?wZg;bTUy|S46d0;TqW1?vV0*C z)vf)w%u?eKbnf^z=SVJYGA9S@4?4{jn3aF~QaE#P*yJB4b(hZPc$o>=K%V6x$$$3T z2&%MC{II`xbUv=z;04J}Fk-xxpcde@_-3Z&H*>YBNbPc{Tu&SJLzu44rrAJJ)-0mn ztH_y$C(gS-hDxxOb&VgsUFEY~#v^v_PG)aKf-&=1lxUAE7U#F=u1)+WeyfP=_pyFT z&mY}2^o758xJTPgFjZJFJBW_(m~J#(o1-G^!{m|1=Ev;dwU%^y$XK$Tu^}lf@bJT= z%c!_1pmzD0$MG4Zrk7uI*c4*dQnooH9rj;R^AL2{l5Xso`j;KgHHB)D60%TT&2({X zUMFRJE#-jL7M*Qrw(u7NHb_b*F|HoZOQ4WMCYvqahH_I62CDm4p)DRw+_Q(%Ym`Uw zCAW`bFlmh;kfuFr`!aLL#x@qYQomaTKPpai_H@3l{lllwpmbD(6gHH4a==)R8fZl= zdJ&thGl`v=ew2O0N{Ik$#{yfQ9*aH(!j)V;_4!r5ULu$QqDQ(8*JmO(SDOD(eG$OE z(o}GgV|6%{c?FI0AD}Y1aiBJ@WFMEMmLI$sl01n4G|Ku{#5cZcC$wdMXESdZV9*CM zAY;J`U3cg&>mBj{sS5fOj>i)MRFIVq)cJsSnb-%UC?Sh8=Kn(7w%P+%E!QkkoOT zn)4}$nddWQ@V4vlkHLog1dn|_29a2scSMkjn&jcfja~?d1;82KSKrFAmU~s!9+-*o zG(2fuk>Mn)Dq3FUGnYW*Ky6+$oI>1X<6ncTStAbDuAG#t)FiQ_YO~;;mq{4P^pH;- zeWEO9Upx+ElVo0^I|=$i^BmVhJ|*>2bZ%3QF0e%tlr-2!6I%hLm#kj`{9d0cJ}wt} zF5q~6eng+m=#AEDy{Q*#7+swlHvtqZ5Bf3@7@K)D((@w=d9m5(kPF=ns6s_jSnzp8K zl~yfQfjw9i7dmp3{Z1g@S90sa!%rwgRyH<-Yj_`Y4|LKt-@wY{7Lpp_KQ~*J} zm$`v!3b*QGjxPn0`#G$cF|n7empgnNk~6;<%K+F-1xa*>26L@&{{Z5}QvkYo$?7%^ zc2yNyuIhDs>?m3Mc?nqJcxB?r@l9mO`EoU~;u0>?3(ARQhhm8Zboq94N=6+n*ACWx zC^1j&?9?+gt=!)CFIe>PwC_!-OzIyRtbUzOyqX20q!~ ztVXtzC}dU!9yhC5bN8$BK-YrB2b|F{+5TD@njiHje}*KoU%;%!asbcaNS5V6O+gdq zw$K^{@5Kd68*HNknqpawiuwzO58#Uf-&ebzB_WE<5KjBOq@9;TQ?%Z3zTLg}{aVH- zqo#60ZKus4@pl%>&*BU&M&8Xlk#*=c4)mTfK)RMW{iI`UMkw9Y_45GpTo(N*{u1wa z^~d00%~#?hI%{T=LnQ@r=)CcLRB+wF$JLQ|4m5Ir(Pg-$Ea|A=G2*>&E!?&{27G%xDa;D)#;uF z#`S1{Q5?GdbFDIS3Ve(Ubc%bmTz79bMFfs#D@wip1s7gvB{_SzYi9Q0&Un zTGhNLohn3@kakp6$h7=xYwzIcawF3hW0g@xz-i(G`1KnO?d%V>*J|cUql#gzJU={7 z>VkUMA!at|s%^^>1 zAC}~Bl)N$Dk~#Mp@9{gNj}Vtu_f3D*YWEN7Iay)ygSQl09(SjdM>3j~u6uS5O-BhE zXc2TyZ0_vPUj!L%^gDdz>EVw!=lJ4tz3Oz#*2Izlc!53a>dMQ{wI?oO00x}rZ7A<$~uhX`h3jOk%lMYXUy ze(Uf#2r|6ZWje50Z!rG{JNnCL!WGI#KM7v-vmv_}Uib(CYfGZus3p~fdU+BM{4js= z2%8?<`x3C{#F(aVl9vfTjX*2M&uS%s?s7BhXXi8tKN!~|YAAJUWsqwy_nq+X4B6?% zL<;8TVLLRox6S%tdPU5OzK?5_@yVP9&Az zNY(61m{&me=(7%D6VDKdZ`c;Nu>~9(Edh1WhwjiCH+%p?XwAO9^T_5qgD;dJ-Wu?t zfvviMK+VX3g#El%T@&@pRRHC@W<&jG(u_xn*V6kY@1oiIpWSHp`sToLwd$U$)) z-}(!{5G@DCF-9?81*JJ)H_>Q4rZ*K|P$`s;^`@#?+)}h812)DIvjnYoFynBW;?TP z-$m@!ueU1DM}|s^QwO2g&z|fN=ph9Tl8G8KmrU)wQpBzfzPd9GMw{u9!kVKPms^CP z4jkBiv)ozeggX7T??=8<4p!;7i=sfrg1}ip<$6a(1XgC$#JD_^TdAv70Ejw>^>2S= za}ZH@Roo_-)p5YcV3zW$45JJwEbwa0@xBWPFX5-qsP9X1QeuVnfI7QJvj?-;;6?DZ z6uK0Bgx#B59*{zmQBVMewALm~Wi+MS`%5(O2GdJ4z{s#P<%_UN_H`LTmU7#YMyJSK zcZw8B67NQ9bm<%j%3X8dmkL!gq4uyL!nKFO|apw*hZ|_+P81v zGD+2T|7VXBtq*`lt?en#HUVR72EY@14 z9y-fX&sG+!hh!P6j_WyOC`nC{ngH&A(&{7l&-dLoi_8@nU5I&_F#FdL3f zKav*&4#0;qequxF%7gJXCINEc9EgH$2G^~nt`0q}CGzTj#{jVB5%VA*Na)DdWefhg zBK5HXQ1krZnLje)gpWK`H&YMcR7c6UjLc#i7^`r%rt#dln>I5i5pv zAWb9 zvK3#?+oF|)-QA-jUCDZbNcec!#aI<`ox@e$Fc-K`uDH7_&0_oSX z<_}J|OZ(-zuweLs8l&(~{3>)(ugHv?l4oL>c`8Vp5C1xjHMdYjxNY@BaBIE1(a)Z< zhV~vCKRBK=6}V7AB+6rIGreyoKK6<017(cAb2?d)Y^7TJ4npda1BCB7E2Pu`auwSt z_$s}Ay>k|V=RR)l7d_qvCVvk}@wGPOunKNc=dit9$;Yr>+A+Q8n&+rH*9$^vhg1Oe z=twnB7HZZ&AzT(WZ_s0BpC&E1&MfHGZO~V{#>7tol&@AUay3!K?YeM9U9{4SYiN%55sQbqnAE{LFWklbXDtYG~x3Se@6cz_qMz zAkULAzKRjWrwCG1YZ1wtbLJcrr(m5eHf*X4=v90yB!3C3TJHtraJ| z-{a8uqDlPwB_iyXGTLhL8jZ(SmlIs-Y}U7{zgGg>2tZ|H!VvO*wS$xh#}Z$yIjVj^ z6pD>=0*qvQ`>0iXeit5Vd>~^)Rq{dVxD2Awbd941p>P(om!}r`@0#Wz;}bLr%jIdt zX6mU`y%O|%DXlo}3{;~;2_K|02&-bN&s0{UCp8T=i!Z{G087}fmQ`nJ0iTy1-7`5o zY{8E2SpGbIdCdR(V0j4w;kdK0r+;`&iUUN$q`zO6@V`@5F}TvS_1;g>|BQO5!w4Z??l3hgoSL>kx#LO| z=@^#u|BPXrS{MB1pXb~V5X$}g-r3VXh|qEZsmf^;-A~V~_?-{^{4?muAJ&l*ghrzr zl&;27&v&XcWTXF5k0TP<B zTad19aO?R;`A;Btn(R+rlOB%w%}}1FM2k`Z`GLsmG=IijvT)*5PGcYo{~c;xfF^vL zgK9KoYIffSqV7-T_xn;-sm?kq#eJyfiM8+Cp)|-hDD%p5iVXT1%M4c~ySPcDX6$`*uiVSXkZZFQbR&J_)e>84mXsvfcH7qMM1nmJaS{($%kpgd{Rd-^P{M9( z5ySn)AX!%xqMtW!z*&OFv&Yb{Ku1|TI(4fKhjA+dM5_Usx4?U$G=Pv7WjZ%QLySTj zs(utmBGkwTnc*r#MiA1*TwUaj&63I+cI|X`+O~!US_5Gk;BI3!`l`V&^yH+ zF5dJhapk|6VGWzh6NN1z5aZ7{m)fDOabZ_GsW7xgHGw}i%+s-fa^;)sE`N+8RGjPu z-~sog-}#s7$z#}R0W%_OQ%5#)WZ%-@VY++Qx-NgZ4sGxthur&C3umZa@f=yguuIEo znr3`dz{dwF;8D%2?_3!MXAk#sbo*8v)=i_KLy74bGAz6)T7PV<2tSzgG*aT^EMd+< z4TSM~j0!0MMQ!4jX}FlIeR!T>C*@fK8=p%{1!m_tw3jik_-x*$i!ky%+RJFkt*{aX ztP4d$*r8kBD0n-KJ>n;TY6}YLlKEpL@i_SzqzaM!#)&2LuL2z!Ruw0GgSV>>=Idm4 z+Ltjq?Iyj~!pmk9TLk39UEX*!ll}aeQ1mMPEK^yQ!&W&xcy16CND8k@4OxANXC-ltc@VSbcc zg-nf^QT$$h{~%qk#d1UP{qFvSx{=_2X4^s!aTJcVHWD0%a5}f(1>+)~hR37iS~r=t z>L3%*CFw%11hf~bkLF(!uSr=q|6=CnxKTK#Y60SW+3rN~&G!Y-Uk}5t=PCm}?@izH z!VC8+=*N?T8!$K32KBGRF>K`<-z(_B24?#`h4FNIiHes5+HAmrW(ovH_NsCe6LSY^ zb=_Av%~HB$ZB7Q}Lhs-Yy?J!w5Z`PJ&_QliE3WR+HiYe2Uw44!_t*`4q*K^K5FJ0b z^Ow^rLup&_)wV)3>L1_Z>|w`6|7CaU<5sj8CrWWc(?(k_DXAY8%q{M|BFTRzx5`Z8 zkUXhK*z`)o!y_VxkyYZuP2J9a-$WLFlX7dd-`^=o{1zrxvxhywSQmHh&AA9gF(d3V zid6rO1D(-H3E$6TR+(bIpvahrzhbGwiKW8$)$(sAd2|!uIBRxZx1=}(O%y#XmjRKR z%U(#9wtge4F`hH0&C-LTMd6=0DpO9>nGmKeO8bl0 zsn1!u**VUrH4*SKNA=i{yunX19Z{_OCHM+pf$?9n@NOs^4d+r)*zh!rbE5)ws!h5O zGyoNf3H>)xE=_h{M~1XDhd*x$8>(vW@qDx2B__g1wJysx|LYz-_7rrm8|A284%+GjC|;e3QBW!Trc=h(`;-gnb{ z-`gE%ZtOh)9*{zu=X_r9x`$saL!pRF)+WEp#6KOAni7s}`KrmCR47!F~ zu_29KSS31$E9+B7p`zN^|4HBt5L`}X1pIyzM^6DL#KX}VTS2_RfA(Cy8TJBe;6@?6 z5^rJFMTn1^^24JUx-Hu6-39O`_dmj@$5XKwbk7J+1%%M3s70;-3HAF%46dA{Erv=t z&6-Jie2Hc0m-}(Be+Jly4Nal&`Kyi!9L$0Qo*yQ|0eAxX^U>Ig7-TvGk+5>cPR~M)G$KYQ(;0HkxVMDH!gf=NTZ_JpL z_lnv%Z@sYtr<%2IIIOG|%%=Y{waeLnA3+UV;lnR#l-Pxq447#j?1$P7-)j8EGGB~c zqh^)%ZXr(Z30SBga)HSm?5_?dQT)Y0sSKRJo?oI!3_hx!Bl9CW@^lz5V`3@IMC^lE z16L#|HY99$DE1PC5rdx@>Q;7{0; z=#;>(m+l`teZS$~nL8}^&)6`;7l#Swi#FSPf5#Dl3~CH*`=e;t{fhV;Tj!%ON!Av`$? z_+&KczkIDH6+ce6S?{5PH`id03zeMQ8V)BoX?K5o5Pv(u`G6nc(%i11u`3ZW8R!rD zzg)-*${*MTe}i6&*Mnm1lhF&V!^mHvNwcf!*B7w7uG8%QFerg@iTT;`&e97oNH;lQ zJCf#21%1S0=c8YCPLN>qnV9q*Wo#xxR;Bjr;8||)8E*M0Z^rGkGPKHjFacow!wEtIP z-Nn@~tU6S#5h`p-a-RQh=y(qJ+b;5Y2x~bkcgk}@M`#XNZ12kLA5;rU^%P?;HWb7t zR&KO!li@7WKbsyHIsZ=JJjsS}9eT-HwVSjY*iw$p$JxO>{JwshDdQ=VOgd89EWCH+ zFL+1dyz4v@SPBoJcJ5`^kgatcWK$Zt+kTzBkIqls8=ov!H%os{9$qpF<=Fk2{f}Q; za^mU~V%|tDe7K;bcLQUapCzFao#wyOvi!o5vP%1RY*<+(D8FYvxOacdE>y46$i-Q# zFt4)TX`x{t!I;&yD*;?t%ky4dgDZ7n4pi!YLe#ts&VWA#?MV9kK3T+4X>!*I)uzIF zBY5BrW@2@Cue>{=5<`ehmHQ|(Up%-tFg8}P(2?I?kUU^uR;>uP-R`1r9N4aP8NXJT zrE#-QwCt~69rEBHKEiq!Uy+n_gIr1w@|UOwSQvFj&ECjZhrhgsgK@9ZQG8+Eb1|hxe5sxIeRyY zGcp!dRTUjZ1zIgK_xV=s3;n5VOSEU}h+$Aw_#d+# z>Q>i%Vk` z6o|#*;z5?mt`h$cXYVdOm&uBeZ)NbY`aBr4NzdEZ*tAlY2e81JT=gLXX+{d87_YsA zVJ%Rr$}=8povgxO$G8VO6E0t@jBf4@rWF3Gmt`tkygR2*h2MB{J_Ev)TGCrS_X&ml zQjJ9(%*Gg1A+P{7s#Vhuu+i;CvyUO;`JHN29?M1saR`s?Be!U`&O4dooa_h+!dfR442mX4e5#F`b zF9(%knk4P;B}N(Ri(;ase4W<6DG(hEI?sGkFxKwEbZk3TdF_|MCqGy?MyXj)G~{rO z^PF1|S}_?5UR#se4PN=-I-~n{?}Ql+OD*vWv*I!02sbLM%}W-Z0lgE9XF&v@nW#kP+Zy}&LS`jh@iwC-dY)*FK@+H;Q;V5) zdWeKU`k{%gqbb4OGT}aDK{Ix1!WXOl`n;PIsc%Jj^*A)m_ixMLITy}8?p62+A9u=| z!-d4Y&^;A*J9?&Tdv18T)2u4=19vK)M#WB^QAl-#NnhZg7!Izv^3@E&f{T2xna`JE z24?v6mu8b)!yB=wyOX698trpNpqkm;A7#$<=y`1kDc8gAG(^B%cxde8C}Zm1@}Ym9m7 zI&83093~ijlbxdc0mr%lt@te6^Y)LME<}h!i zhMa>jr06Wil01PpQm-9UJ75COvDr*x7fH6ao9YJ!q9Tv9Ulkh(7=bb0mjtE;b4rfd zbCkb!U#Js{_|g$eKV8=x=>RZ(dL$9OY)ev`EHZSFSSmZ2pbl(49t9(La{NJx)4m`u zPY!kP#y_{jlu$Z^^62f=+SV5LwaV3Z*y+oAQa66sYyU)a930(}cFDx#ygKeFMrpk!UCNQS0e8n*Pci6dX1;_(X(IV|2 zERO?aFJN+X??$kE2bw7@>vDTmUQ449kn3ae{)=^lw>ape>V zW-G9pP`VIbx{a-|Urqi7$Pw_#YT2tk2k-}`Tytf~IpOAdJnTH+PO4jat1b6E0z28)fSh0h#Wg$QGIs6dI52CK(<=^_O+^o z=R#8S9;2wC4)ZVH`d>@u(-k@~?tn{rUO#D(E%Cbf7Q!!;BZdU zy4(@%qr*e0m}b;Q)u5)2OE4S1T{o9In#Fb^h+w$iW?;KJ^FI9T{esM!q)^W~dWi2k z3g;Ff3V;&Y-=XA0^QZ@)WpD7W`Mhr^1qk6tC@czyadUm1vt7Oa#g7hIR{L`FCTKgTHoE|D|B zjnh3Zjrp|PxBgH!GvNSAj++v$)K*8;`BQR^N1gl9`QacBe*QM+LaXf~!;5xyCGP87 zvE=1^TH}ZmVdE$>MFcISL$u+aTW1X8#qT8gZXKuY3Lc;Y_tEW~w8k}0v!=F9VRKX) z^&a=j1e<%s{Vxnn6>LM;MP2J%9MOH7bUULaO7C?l9wYKLUDrQHB&3=xzy9L{5Ko#H z1R0WZ3Yj>0JfH=&AiV=+)*{ePmeU~|#u)DyO-^%ptdYigx;LiZgIQM*(`lbM4JB%4 z?K7zJ0y^poY0W@~2ln_|5tZjc;yzx0KO9KXUXDJ#zb8)EsId=yZ8+&0!Ck^F%A*RR$ga$(D< zIyuPP5GHkUMacE-tM-f+%A8+)LIy+jC~=`oYu+_U5FJYgC~Vt9fH}mD7W>Jre2Kjp zKy^PNN-p3daF5`o4vWGK*gRnm*KhafNg?!;nc6-?QCvMN2{$@7$Q+crnKFXS4*Q$Tmdq@5-qQ`fGPSMOid>9aFI=tiJ^x1EmmF|H5v&75$uUkhx zh`v5pN0d}@C}1{-zAuuIL*3a~wpmza$XM#BJa?wTMj106@;@?qf0lc1=t?BT*EGiH z`*a+d;R(POO{C&3}xG+-^MD(gE++)Vo;olO3}bh9zfMJyM# za#tC=<2>vfFn#3Y2C|#Xvy*5^m-<6;77VyxHKzuf$dP)9AmhGG#i!LZ?Q)q0DXN7< zr3)WI!}$Aej1Zg21_vnNC39W{`5k-ah9$|)R@qt3>9*jS$qWtt9}eL+&)8mMLDUw> zVd7((imze3m9~`e7bK;^B=-r2R*F3*WxbwrKnC|Na((=$9)C{!u!rNitY;XwcX8Wu z?!~)xM8FEI0Q7)5)>Bk{H<6^90JuRQZu;_T+~X$4S!d8~ea3g(nQibdzdkKmTrx|i z#+!l+r+Jau*cSlF?hfZSIe=?T{CU84fVpj|WVOSGWLy~Y-Ru#?t7%9QB;EJe(v&F} zqnnLRhhTeYpNJexlBxQE1BN^4j*^4toWDT#sHgO0TU);Cj)o}hV4K*qqRB)7xxl-W z-z+RUE;6b3PJa@I{lJ85vCBUC{>4U|02QLV+4xdB?KrdBdjs0aCrZmpiJTl}IR_BsiMOPF z?=@n}dn4#+Rq&n%z)4CAe)q)gjh5siS{~4)A~CKZv}jE>@1Svn%AqjhgNkgenw>a~ zpDo6&T;MA4OjxdUU}`eVpTuJ1t@@<^`Ja7fM+<)lD zcZ1b(FyXE~W!QHY_W{cPK>lo4wis5*(0VVqNo_U()*-^p3VQ)@j zR@gNq zs&p9dyn>h8+0uutJ;C!NwL8y6tU5oUSx2J48!1MrmtGnh-;5mO|KC(m6%XNLDS3Cp z^ye9Wk5qGJB$dp{GmMnGi2Z`zl5ljqrfg$NyxLHW4^iHG|Lh{Wp-*>O#^cl-<7eoa ztw#m~Sz^ysVc}KbQQq%UGY>_A4(y+@GL-nwfUbBeT0U#}5eNI`dyGlaUc;WhF_MXk z6VQ-W)p#ewBnZzs1jV zW4l5FOL?{b>ys==caaw8%di`HZ|s9MpqN#IkACcL`W19kTXN%6c56HxVjdGmPldGu z3=D7b#DR;~X21NLW;o-SLYZzT5=*#^JTAclRF^wlWFMT;Ljw7;VTJE&#PJ#d`v`>(PN z?8}$bexRGJ*@JH?pxT@1Y00-2TFzeMS8HpQxc7d25*4Y}8AoI8qwwL8gNP;tfQ;d# zL`vGzb_CFs?-6G+py@ksp6Ps*Q1too^A7#B!G+v&D$iMi&G1rSkA{slP0nUeHm(<8LOI=>m;fd>0*bRgQCbimaKLQ#N6lQp?46_>&CI-SuY=;XuIqv40)1|&7=L5Rk zEgO**N$Qtsl(c74uEZPQZbduXtnfgl)C2Ix}7jnM)y4 z=!v|1fJg>Le!gb)$9J&+;`Csk!pdZa9Y0g6w#!A@#r>~i?|(iBC*NC=!}5MEzJJSdXGCuV8t*-3R22occ+2~64DI<14=i7zyQ)E(m4YtNQ+2!gQOr`gGfks%X^+691o9go|{ZB zqxQc@LfB)9t3^=y(7+w5=g9!mxA_}?$7OcjO-blHC-_OPZ_ zj9e~V(j!GSJ?l%8-d@8U%70;hGtqlzX5f7+IAz#o!yQ|ZU;|p*be~1B%u2rx92v?z zUzGKk@LhV7g$DQfsXv&}9+ioRj79Y+^}qb`=ycuvvAA58Nv;jC_+zq4`MPfVI(@*`Jftmu zIA@FkJkQ<}FN*gFN+KDW@wB_Ah+i8OwaFO2xiV4kdSyde&chqnaEf0ti!^|o4{1qFpyCJ(9~SOs+(FvnXLKcoJAMaQpp zq=$lACHG96z*oSGcPnPu*1P7vfTuQaXEO}kIvi|qN+y}$tlYTb6brrk`(O0Nzni|f^b*kU-Lu&uk`i3=v~tZEXR@d4Sys=gaS|aUGdB% z<~8vkj7pijc4)|VStl(iu?*6F8e##ppG^jqhM#m2r*B^E? zq)h%8LD37SR~UA~!gh1x#TN|HSOD;hJ~^m%a=qDvSR6NW zRGswVfXEL%nrne6Ak}aki ziqnlGkNGGTP}I4V{LeFI);eZvxIQJdCP6S|7M56>nos8z(p=Cdkt4$dGoq|LZRs|p z_Ykw^{k&{~8YPwT`S4LSu>zGs+-=sSpKFYhh|3X*+cN7B3Uen) zRXz0SSaIptJ^sc>a5x`BgrVEAgw5hF>GwEj^1E58E=ndH!bVYpAdrRb7sbei-h|ve%7bR<< zl)t|5h0mQlg7Jo=dcV~IV=B@m-|`%rYW`B5B(*e((bzwFS;4)VUODD@-%VN4*HL6{ zcj-v()lpxqGK@pv*&z#eM?^!Ea-xHwwOs4{xa-QneYKW0!@)21g!Kh+q`OvLr zMc%`Te>?xY2k9;FYsaoG6f4yz&CEBS!y?RfeT5#(C5v}{njH%IK8y@3bH&O%h&smrQq{QmrD=^s+OgM&^+tBE)^gMc=9Z7qtNz%J10raXjsCiu3;|K zuJ-hBze~Qjx!LmAqO&`uEBE!G4JJFtE(qQJIyB~ z&7;8AT2bkm{f|e08jvm2w$WXz_E&p$Oz>^hYwgnj>ulEn>Ie3@e>!bcpql6J#K0wPX~$x0iP^3O z6MUwE-n;IChr0JqGX4}J5YQs;G6+a_gCunDO`o@5r=!k(T&P`-yxL9*I4*o|nrWWp z&UxazjB9w703&{4h}@J*NTdThIAp3uEzA(xZvWlZ`{{>nhi6r4EE2QYFAz@lYwTzY zeHCzFC*`C6hk-Cde(l|qB4SR?a_#*{=CBBEg_ifwM#|+ov6i*uHOu>6RRaDK+V_M@ zr?1NR`aA<7zBA0Zf^f;uR9?0bNZU)$j=qwC#B}8hg#X>rA|)+KP*xfmWa0Ct&vz&f zQ=F!gi$lv2U6;+hjmK*ups>+_8^OLJ;XBk-G=t)PEUQsjKiyZtct3^+MrfqFPyYlD z)X9E*YpiUuE!ZPBKQzVCs4HJxy0$w(Q)ry!?>;rlYo5U8tuTC(p;F^!o0+cpYn+xh z>~|26m)-p*;fT;@9Xd$qX{-#-M4n2v=*&e)e6LGcWi2%>(q66j9P*l)7E zU6f!65&D7Wh#yQ1cyQJ@R8}!{$)QaMcLUi7TW%Djkm7^?>H-#HQ!!7bG!&SLT4ZeW zrL|;m2#-;vy70aM2&|OasN8iil;NXDtf!?2)VwF(RZWFa{!sz_jz6ZJ)v9z;WBB*6 zzWOsBXmAauzQ(}X{_(SxuZid?IN%4ViUm(%zDIGCrlaWi&V2ULlPb%O&fYjo*Z$os z6hI5KYv_k`eHyUp=bD!Zuy`j+V976K<8;6Ln(3*}A5QK>@;Y@I^?@>QklRgNCCB~< zAhA@LdyzDXI=P`+9vRU|GL@Igkj>BAgz~GIr$6c%Gsno+At`PUUDea8ot_t5fe5nw z-8i4L1i6a=s+tp?9X1vuDbF~7UH3+Bv*#1=V9f8N{LZ9Vw#5j{pPrjZs)(3jAkpt_ z&*&%O+LZkqeAV^ulP92WYm`gll=B^Dp5|UujI8b2IyGV`oC#(?&*^!Gh*^iEN}j+9 zQkn7ps495~54O%5Q7*p=px$7BPvVC|lgQ3zGoR4l&#Lpk+-BDfbzs>j3i~RWPI2P9 ztb7P~QMhG_zKV)iRGU3fxNJ=dfo{(Qe7F(raqPa#%OZEcQ7Vtahv2Zcp^pfRx zSYJLkYCzncCi$-uh-i{}>QUYoQK?*(vsne2H3rkesxoK8}UxxnQ>)88BtUD zG%-MWZg6v^tlMiMvpE0dbLSbWuPlGN_BAdr*ZR}UEM%sQhb{6n1-r_(~N5L}G(>Y@*uXSp-J;qRJ8pkuU1;JJ=ws-Nz*3_46^17G0H1S$L zTJC9(N*C+e^{_v=rT9$Myw10#8c;G}$&e1Eg#6JAES1{mpF3HikPq@GDL)t+nQym& zUTW3)+RVNINC-Ug*SI@kz)6y~hu)VNZVTS@-4eh6SR7!0qMx;we|lbYoRE>)c@!Fn zG|hZkbAM$atosdL{I_3Nj7)8{gAOp_i?q>zUtw@Tt3PWDEV!=$If4F0oW~|Lgg*~l zi~Jn!o9F!zZ87%s?~Yq@92H^g@f!M+T_y;jkPLrfEAni8^) z*VI)mxTt5$6MV;>_E`mZ589I9{X+}j{biD_w$qYPbgJgl+P(iBEjVJonj*JeFU!=L z^a}I=dt+KoTTRqiDy{)0DIyKSZjp(Tgx3)@E5-9|&Y#MA{ly8rI00cUO3m^i|PtA?rB$XgME*q1N_quTWh(=%VDHT%UR?a_@lR0i^0jP`c(F(Q{Y`xX2;) zYBuRkvr%!L-RXVuqGyDQ_oTP>9@F-pQxKCCQ!;;nn3m4kWy!hLDbsU3NZVU#1P ze5H2*iT_L4Rp`{TwgX`!c~MhPpCWlRZQmnQMdwIg9->SD!x}P*3o!4iFQR4bkf({N z+Z&HEX~HxunfTmXF>J424edF7KGkaF<2ioO?Ktf-+AFxd#-Ewk@GDPyZn@))?@N`E zGrm(O6+$s4*TRj=sW1$HvazHTgN_Z4%|Q(0MAU(sTV`mFgN#`#Hj=XDMK zr(d>YBrcywaA-KIcQzVSDomzm9-ld<>P6rsN@mX2Qo}Sqp1uQNpW@}9dT@47@y>9@ zs9(&Bp6J1k=xyDR_~q%M!OGCn#GcaRl*15Y2pyj2?@=<~Kk7LxcIOqV2o$mMP+?!^}gadB; zhlNvNu)|J4n}dnZ0$0@U1PEZ@wOj23ekPh~_UKK<=_sGhX3O!roQKv=N^AC>@+H6~ zR%Dsz$by?0E+`FkG zQmnJa?D^vF71_vv+^31a=WIh&U8~=?a#8kQF>38lGeq6ByKh`Y0QKTr#sZJP>jf-b zj;Zr=rm=jz#ty0LIX+^p(M$XxqyR}kw!cw?Mih{}C_d+2pvtF@=QVGBNRuub<>&icq>aoAzXG*2uyv`TdoOW>xe z#-h?4pTe@gJ8Sbd15{UndB|DW;v6R1_9K=b_ak-`A5z}Kd(w;P^|Z={1`8gy_r7&O z9$kem^ha)i{)Qg7JJ-kkd8B#De8$w6?px08bgferFoQnjZGi+=g0uvWO9fy z!6trbYU(h2H3A*)|^*YSg23r$cwq6LqIYNELk@wnVn*rtZ?23d!*Fba-K)@X=+O|HR5Ws^Fl)Yxosn9BPGT@w6g2M2 zS!;!2-v8dj!VS(*ah?`xW~qMd-3OO|6w!s|H)G-YS4|e!ytHsif;u2@H|H;;R3@(X zR@GKv=Q}?ZcG+vYSU2gwJ70~ zxE%K&g<1A3f2D-D9Q@@rZT7(c`jfssrT#(9q4y6u8ndQ^=HCDuXrGta)M0xC0nsI$ z@G`}s=EKma#9ThA1qyt01`xW_|WmX&Z;|khHrz6&>j`4 zmf5vx-xh+j=&tQGpsNxuI9vF7V}x9_ctt@`Iv7$44ON-CAG6vYgm5-3Nlx+5vL zAvZG%U8|mLggog6Y8)0*1Z0Mx|2x7?a((fx3v~*;v^E*>dmHbXX|S^JwQa1*A3dcL z2q|w{o0w|#cAOHVb_C8uM?Ic0k9|Kkgd}C(@edD);k!ZmBD^H&8BN(5@F`hJ$Kw9i zK_QznCT*}x9|Ns=m4y=xilGgwC6vHyHNJv%c22?4{nn{<>0EFB_Z9%;OATtL`HQIF zJB(X4?C{058gde`1)G{_Wu}pYJ^vCp7D4$TXN7-M8n%>Z^7I2JP%qN`S}0#I?C&|3 zGg8R=wq7Tp0^N&V>rBWxrE_j&gH^>!9n@mCrOV0%kOU|T`nv1SC3QHD)zr9Xh6REi zOnlkztl+z9gMB|CYr=flF^w@IED*hO^vLdrMT&1*&oFReL$H=>XgQm*U?n3gU_LiRv=bdj;R5&oBH|bjkQwW-NE*&(X`LI+VSj12_g5H8sSc zgZi;~>#$i(3oy(w+$(=~dUM?zN!F5cRdNOng=3@$uwW>9zF|wNaY~$cw+ScmA)r%u z<(8?d>DkLLx-ICNwlT>l+#(Wj@+;+Kv08F7Jyl_Gj6fN%q#ylO+6J+cDReXO12g=i zsks9b<7;*R3}sq>vAkzEN#l#UVt{cT({DGSj7*}^5n5t}ur7juL^^;tx?af~8c5j4 zWX?{OD$5Jfz4)Q!LXe{}IUi%3B#OD|>-+Ehc(^*M6^SKw^z~TUV|b}wITR(V`~sP- z2pHRu`lbrq2e0|@cC))R1~$IjEQKn~LwxDPfRVr=ozJ0N6IF}?jvtTuai{8iG6X-N zVSAjj2(>bzb*qa!pRBTER}%k=Yrjr~5#JbzUQ=t4T^orX^N~#OJq@{J4@pCMS);1XKQpfkDO2z=T@Q_tj4)o3CQnRY8th^hm}sXAIy_s z3AN0NX1maZr4AK@bR@S&9CnxaYkt*foQPt?(354xwty&xV~#vZD}(cN&u>2kyXIKn z5$q!jywz3Mepgak@3{JMuZU8UDx(3W0-qgX=Th!D{%JzVFLHyx)dg^^xr;H*_ofX& z`GgCWSgEvUg48I_?CDtcH-H^%y|S;=I7u0kl2`;RLP8@Dp01_jWdaV#mCgN{tzJmkA+zb!9k6{lr z8$m^FntBAYbTuYS#sB_*2GQrWXH}JjNeel7;Jo&g+@V;^&ENk94~z5Lvn0G|)crA7 zUQxxxG&GtU(hEv4|5Xbm;;y}M^{v%HHQ8RA(}@Pj=%1fC+h9!?a8i7@r2(mwJUM9t zFX-wNWGJpymXEyF65pdQ^5j^R2fY?5tl{Gy9-62!QYmXwKjSNob=xQJ{mxS$li0J zLk=u_zo=_f*k9?pAr_0_grfA5t{3G}F(3hXU%xT{38SE%7UgB6!d7<$wasC~|J~D?eda`^Y|VUzL=bh8hm1f38f3!5fR+TP z3~PG=riIJ5sR+S}BLwxJA>Uw8pMRIN296#*vC|o{(-{-0jE|;qeh8cYfwn2>hQ1UC zOuce;XQ8W%(>?1LIG$7)9AIv$dON!=wk2U}M;wSn%$p1tqnQDB34i$!Q4TH(%8!w% zyrQJPuAMe*lw?SyKFxCf?f*Ah@iGA6*Iw8k+{76hTPc>4m-2ai3Ha?=%bg*|7bjcB zwSqEx;WV*vSF-%1j;_qSv{k9(|d37$o_mQ0LK%wF+ zW52x9-yH+WaP*%YbH+(GXP!TyN4D})%->XHl?u5O3I-lS&!|80lc9_ zG(1@tYS%ZMFtu0lZNe`9GYg8a{dJS{FD?Su?mSPKIyyrNYych7C&TE>NB6d^n)cl( zeyLhUpmlqMj$^E*p2;Il(#7m#p%pCE-L_Ci)HlhN%>t@d=dy$DBEKT#5Wo16O&Y?s zwUzo!6yHg{v6oR@(@jyyWAh)a3s zRNFJU*6x4s`@vtmh0yyDF^VzjydG^+&Zg#|fj-JFgGP1%AwEXbM#rcRCBM3BlVO7g zGk7{Bu0nwtidZw~A-snO#;on1X8o-Q?Uxr7P&o|8+`N`{GPd6!5%&;8ETBn-uH$Dl z59IyxP07&AD%ah&2tG|D&B(^D>X9UKtLJv!VKpdfYLr@1GaJ1{I!9udec}fTT&wji z0kQ5bm#r8il^jp=dm;tC;8CUF|8*&2`J^ z1zf6q^Tf9hu|H|wr>X>(Z}Dq($0O`ex0W&U$1kxSoNmm2E*1PdHkLmQCu^aMEv@C6 z@W&`c^6#UOFC&63fVpOcD@>xr8!^jb-CmV*b>_Cl@YQ7rqqWkR6w$&+(-j9Pkh_Ur z{4u#s1cy%F#MA?(sO$(zqRkx{_XVn#U@m^DpqYK=)^>aOzsyy=)f7WBC&-UP6^5*mJ5f2_1Hd|M}*$?^OaibAx%aRRNOddlJlXWZJOE!4E zpu={*8W2FpzOJ>qbpN+5qM&uA;j;& z^sKM-coH@94ot%Zr(KeHl$L`~VB{YA^s1QPaVZ&WO)tw3&!b@mX!*ZEOC>Ps6}0#@h9C z??)&_OiaF;8%`<_kH~LUk_T641LE^Mk^OmBsne*PUXt+&6UgPW=ifw4A$f%}a&Tni zA>+scrWTsIy8a`YW#M&RHy`{0Z2+Ovq+Xy~Buxuh>bsms*lseQOySPSY4WfT|GBT{ zoaCAYMi!wt+ezNnj~%M^r1_Vz{qBMs5#EbddMi%d|uv`|K7UX;a zC?*14nj4Qamvxtyh|BP+CeTL+Z`M4GHeSK9g{M8;K)Mt>xlVCPGZoCjliVt?9x^}f zB`+9{uao#~dWzA)4w{jNQ=P9pO#rDy7>Mh4UxJg@_(ST0xz`4Lv0vKB+ z6Mls#c9IH!haYIJ(=CO>g1#4spNxV(A{Ngna#$14X(i?n83j zihN|0>aKYYE-USQQeL>R&U+n^d2G=1TrtiCFgq_PNfb!`076jnrWWFyoKMb`DQ-~> zASiXJv|J1jo5;EO&O1xbjWizq!p07d9t_p{GsWTid~qE^DJnlKUnQgqDNx>asclj? z3qMhZ_TY7jye=6xop|Icrb}4uf@O>^-M_cV&r(^9t}*}?C^DG=|@!5esUYTcE^jAcgE4XX$evn7`o|AA5z;wHWzt))FnG2VJ5W`Y4Vk!4}{!4 zH6}gI|C1c@@JsZ_&(J90xY#6lM+#7Pu`*4lorpVH9D|XjFIrGxY9v`TVkV-1X}9H?8FeLi-yUE|%?fam zdw!sOhV`U|H)6+X3rD}SLK+8X;VkcKf!))PF;k>wS$}IZISI#9ubqk~ zr@a(Te(;A*c%;J9lhY&wb}_Oex-D8vEOB%&i<3EYsyHs1@n0EyCZVRTP6vUECHoV$ z-o{J`w`%lgLW7$I3}*h!J6kb9%B6d!xISM>;2zcw$a6WAv(|kpLXGNLL5&NhQ7pav zS^_MS+^%Z%7K@%ztt*z24o^V?%K+Z)$mmoy2^oRBYtq+z=oC3b2@@Ngu?r|xyyg>J zZp0cCyq?I&vFQ$d)pYcE*p5o#RN!5&$+yJJ$)n~$)Kzl}^|@Lc*#&V|%&Lg)`b^SiUNY<6msj0AnOP z=nXo!x*qrs+l2>GG{%GVBB)m<5*%>U+-xS1j+j1;OJ+ha;!S~F5yXve%`SRAb!9jI z=YhL%Uksp$x`559KF6y5j}497`pT#aO5Dhcika@>OHmK#i>|A+zS=?QrYe|&goR*v zzcVU*aMoxes1`C|EW`$Zc`%r*RXSgV z@{BDIdH{-1%+f5Id9V4#iiR_@l`ye8n5fSsh<ye9?_U+|?%p_VjHh-2E7Py@+{55|#1Oj%7tn=QHZ47kdE@r|WqlqEm-*`a z=|Svdi9B&(`mw@4U)SCZ=5*(Jx~ z?$E5Y~)HZujfrHm#&QYIn zXb$))*tgdC_IIOVw#RUDk>0eIJZ#HKN%m0#_$IFXQ#7dl=_j~4C&J0Vu_ydZ{pt?K zaX+yc<6v}v7#uZI(m-*Xq=?}qN)!1=#Fu-V5vAFNmNX6@?e@IKp3ULdH8CFVtY#Ag z6H}*N40^h()}?yYu4&(OSGf-3PKd97VdTCfa4v~*tE32 zRRvv;ZQZlPqByQ|q62x*kBh?lsGPc;oE6WNIRB89mIsw<25Xl2e4Dlx`ka=doVq&q z1a=}6K7G7(h5{K$cxxt+jW{uID9yTe=wjzRoyM_pX_plVyHW~Y)f zAqKVYPv1=)3j}0kP&hEtKb8<#38;EbNDQ@tD1y zz~`4mv;BCJPbO)`C5Tv8Y&(2>aec*iUOf?u>~2$x$IReXu7f&x6XfwNb`LLHN}kY5hYcs1DkKd* zC8c-!rIkMskp37YRQ_^l7u0gxSG&G9{$uLdbqmiQjH1^S z4cN=4`5cW;0@23-2G;h$7}xkEci@SXJ183& zkgC_*Vl;JGlib)0k~{``*L`?CJuU9N>Y340dy6bi2o@Tb;_zZ&!8&n@Yh)SW++icb zUvn=K=s;ghJ4D_&qB6i_KO*1JsHh=xR`1^a*BZ_%{+L2qG zmLMLX_Sxh$g>%%nCi+gz_P{*@Mf{h+tdzQ|DgJUhhsb~k(XD2&nN0c9^?*ohGO*n?LUaAG^%Q4% zH~41Dva|{>%dl9)QCPs_?|#9bKdf8H3YU$`&lZc2i7fsd3PlJTG#PexjVjQ13Rc?b z=Fh3~Mis2L`Q9*9bAeqpo1|q>#UpxLJ2-j`)~14>*lOq2cQyAmh%#Hu$h}o}GbsN3 z--#zVKwS)X0=g0nou$Q}N&DlSFH zXE@~hp6ot~M+p~{o9`YySe*i9sVSIFp?n3Xr%V5L+wQjT;Q%cGUw_Ek3wvh5Lc8qh zD=7JBN?Wj^wXh&KQ#J0j4zaY0n${h1d~9L=Ms?Hqj?zh^A^| zNfbBG8c3r!ZaJa#c1GTahujMJzwCd_6lmoFpo&n^i$x=3!oTdp@j?Th)t}|Yacl<{ zn!@(4biqEPMOvrE(|V?ZyBVI?eY6MJ7Ox_Akr`dF3zv283Gh2M&KHg~*_$;iX4*!V zS%k_>JGM45pWK6-^;!C)SIW`k{o)N6A-7`dTZDl5oPp>$ z^M}HpsS*Ifcf<0?mL;Y}#j~Zwb0|JqVFtLeDb*Md6dj37O&=`NK1ESVcXxFjKg`$S zE%S31kr-XNmG%F81Y3gnZe2;+rp9Q}ORu)J2cE&@OV0gwEwfC5CitS4Y~9Th#pg>)a+j!J=@QYM)z0x=klgJ zMEq_g5b-mG?Yjw*Mf`U}zxU-{K|Z)|qdlbTD@u4o=C3{0m#CUFvl7z1pB?axDnw06 z?n|3R?O0}8E*f{tMqlgrXoWtm_m)g4vmk$Pe=iGe82*;5(rH^UyJ|4$|HUbgg7tQ< zM5q>d6kcLq6l*y<%{knggznhZw*c=uy;Kx6b!u%FYJact=IyW=w)?r+&6sJYD{2H4 z`P!4v2o(iiJLdEKmi(La-36P~LIABYV@vmCTgYq|Tea*ex?PZ*n%qB09azhJ`>`37 z8V|P$?0P4f(pDQR^Od-V*1wc^1~l)<5Wsi_!@9Q{s4o{n+gA!XGA;!0QJNRI#I;&( z1&5{;IvORqAB;`9wx(i;G8Py&F$gBGei<)umV%(?z zFA)D571cnhOMr_A)G5@#3s-@Z7tJE)398OD#M9SU04bRP$ej^5lGAC6ai0;`(=cTO z2?R8CvEOQLx$Yk9=E(QHs&DI5DL65e*kwKl?#_kA)%yyo_Cnc5 z5aNpGX3JyFkc-R2pPoBKyGf8VMKvMhK!#NU#TTDFx^XG#;QnQNvTAA^)SN%|X7aya z2+mD7uW1ZMNDAzMVhPZFuZXN3dAhy*?M zaHC29spxnjZNTkJ?c0xgkmLZQ>3-b8yXqM249z1=w}^Xa^+stxJ$KZK06=;vyhhln z0WiL1A3h&-iEO!g9O-|YDzvshgHn?sawla-?_aYrH^_A{x7LV#&@2`4~O)C78 zx)|63QJo6D!-mK%nP1BepeQhXjU8I&OPaCgz{^#dU-u@;4(5J^N{8~0D10rq?@Cl599It=O96chP@2LmNY``5iYKbbe?A8gU!iUihPL`11B zE}oEemcvoC3(>F!V<%2-C|=NfpG(0#kL>d!I7yl?7()BD3&+ zl97|th6YQ9Q_iW*pC2(W0PWf=PWasau7DIqq!JeTBGTVk=Rhu1;ea*LFbG&-BN$fsLm@B+r&&3_w3EV3vRYY^S|z$5A_$$tW?opqjhJ3_rJtZ zq1Nk$pRFu#mBHYneDPY(Rwwjg>jTJ35_zh3b6HT2{T=K#{@L?zS@c!F>z}Vg{fj(l z8lrsg*Pc??ZwxWDeF+*pguWONC63q7q7WEshH@ z@iHeFCKB6c#sEU{J@JqbO|$i2_MgiHfGcMSAP>K|`DTV6ZXxobP4PUIbyM^;oCZ~< zv!|JhmX)MtflSn(ebaIV%1mxQ+f6sjQ&r<+0=!SRCJ(P)6t2Ud~sj^7%S^{f) z==1#;+^sPB5l4>;x+-$dH*vzh`FEcM3wKqGkT3105wL!w;#DK?K*M%FtEA6jbl)Z_ zp1b7hmL~8BA)==O6ACh1Wr&&8FkD45)=d#2HQqZi8!2vQ%dS9oxpI+|+>n)C1^b)C zdzUkoJasYN-9w)}Wd4Q9@E>;(I@+oEIcaZMpnfcLzSM0XaZKH1;zc~KgonniUgawz zEeJ9!G|u|%vA8ktO5$zf717S7IXjGupCxS{P>Dgi&N%p21av9(POsxQ+oXxq6p@YFt0Qz?J!sN!8f=2y=Ddq9Nc=c8LoY~qvM z4gzMW>C5;n8)b*T_D|#L4f)Bm!$WpS_xIoPT1t#-XGU8+z6?}5T^{wOjC!a(lvM~A^EnY1iGi5c6 zSa;WOO>M{{4B~smrL5-zpIoQ{yJfxxPtnMU+}O7T4kxySlp{ztCH>yg0D!*sHAQX7 zrO&^>@`t2WT*N{f&Y{uquGUFsJSz*aSXG#hLI39nN15BgE|m0&eRuisNU@2TFWip$ z$1QdA+j#6oFY-1zP_`ic+$kPyc1jEWOx&y6V6Gp4?dHKWNnX7R*!L>=%{a{ktw=S- zlMuMNUMz%IOkBu*?_%RU+Bx17^&`{t5X1g%uG+>E!!Kj8s$Xmrn|o}v+pqY(Izqw2 zlKRwcEXbVKbe-&ZjGAAv^cnUc2X^wl}Zh$jZPCh zQ8QI}>{pp82JlBact@8oB|`{{iAB6t=OI8Y3jg#!U;>+Zg}J(c=4C$A0nm_Lsy|bd z%d}*D+%ZxUc_3SiNE&=a6=S;r3LN%31POc z`Nvq4i+m`Ucx%_*kv1t7N{Xl;k5C#KWEPc-@_W+GO%XpnzpsaCA4dK|V`Wl_Y@AAR zRoP^lF3Hg!7UH#AM5+|5j!``a)W<15mRsG*UDzub~~i; zImM*fBI(~pMMF@+t?zmkiNKk@fnXHx%oVIU!&caskK&ONUHEwg6<;LQ9xamK=f7|dC1QZ1r zno-O^7`Gho4F+^Io_A{g$kX^?MU3~(rdVtO2#5p14^vN|bu-oM)i(Cms%#j2#41AX zW@bl<2;JRT#d!Pm0^&A(w?tSRIz$fot9ijtac=y$tD#M3fCW7c7&W4EQ^Cub-@Zfk z_}>9wStPsN1tOLO0%~!GF;6-t#s@PC4|PLO`H4wVj4lGy6~w?i){YwGoRGQ!U8$@B z#_g*P?6=gr3&J6rn-B4kd~O6WOrs+)(ZhW6&Xy0oM8K(zW;t`?_KP+XfdAj;gM#cw0ZGXP>{%g?`T%q-NkT9wo@Oaj zf?4Z;xGU%Mehen{kA1mH)-ENK6wQs~CLOixhoEr!T)+7#d}&rhpaEqR(&R#1T$Fo3 zD5fj9#Hh`U_;|l1^kPieK=PRR&7rD*o%^=D%Q}PY=)dEzt8$Bw9vS|HyW*_n?lj1E z1Nf=6Ci(pE-w~;rUUi9GLiYQNo_q@q2bnYW^(#P2%tb;)+et#L9%pO>yE=(<&gP!(Oh5%65|EbFsf5fL#1R%6T7-B%6;U+ z++Y$E4jtf31%dsA#m-}LEnYE-b)U0} z3BYVnL<)$r4ysG3aD1AvHlvw_-Pd07-NA9*(mRu?b5Or4vGP`=Sb}r_Wy!`+JDsP8 z7K6uwtF(XP1hxS4?KVw$ttF7h!ww;vD#@34bV;}6zENmFdkU>{#GuNKRSTYX!&n?x z5#9v`>v=Cw7J%CL&R8|UR|st0#{ILS3}Ptsp?U6g>uao_(p^H{M(0o0yS}As!b4G$ znH+*YkH*mZztni2KGLcdt~_WLH$WcH=TTUd9Xh8l+Wgl=g`^*J7f+}ist<*2!gQ6% z=iltK@4dzXnob>#kL0&Y%31)NxYS@rkpv! zAEqV(=OtF~-vH$*}Zp!S)t4SFPezn$@gj)134LAcP3&VLzP>;nQoN z>yS?XY3I4tG1KS-mNY&zchva_`cpRo17JJW!LJ!p)hrWk)~4E!*EM%J zpwDZMVyY{U<@4nK&62xqdv_&jzV?#VCMv~2d)XQ9N*je7dVNEP+_XwZs%pxF-%KgB z#vWMzl*yKBGr9s>@w}`ed`*nu^7$>e}LHlELhwE3wJ)J8Q`mF|FX=?52k*-#D3gg)u zeEpUDzjTBAj&9&uIm-XJJXaZ+m-Yj)J|J9)yxcIjx{!2u*%X9(`ry@#@R*7%@4vBO z=I$Lj$G640x5ZmPI`9!Is`C}e)Y=0FlZGHw8f0?(12TRG&f*^Ev3eHx;lHr`VDgrJ zdO5gV-OXl`;;belx*(!5AuC&!FMU@sOBYScl-k>_cOq|q=Ycti|Hc72gg?fc-y9}*Ok>G@Nizo2<4_GaVsOg3IU;tSXa^XHR7U2%M&*Jw=De^&WC}V$}h6P(yEFwG?y1_;i;)T zWzIP%s;n)|K`c>FVIw}hJ_Rw1s(xHZH^2v2$_SrL-TP#u?jRKC-O*f<5LD)`V!Qt@ zxxsNKH+ofU)9zxW4qNi6>yBVb2O%}E+YRvC6R<`($#s+!=ARdlE7!iv>UV(o6i2?{ z9@row5l9Ahg2IdQ5Gu?yYx2CH;0IQ?pDvq|o*%gSWek4#4&gM0Y%i1cpvk=~UnBRNrDG{Vq^((lm}kqaZu;#f#c0w1#+cEBx=V#)ekO zGIR|!x~~!_8k`v2(LW0rWtmup11NKuUmv&Yb-@P6DxGKhnI?UVP~ra;5pa)Nk_HjC zwKKkB@^Wwy{F^1-90XdChdcA=lv^2V4lV^_9Rt}tX!s0+^%B^_H&>yD-#yHJbOIkPF04%V!GO1 zfCO%wdFoC8{r74k08LnvgCJd8?7Mk;t7^0-eafTsS>^D4Jls(lC7#Ec_7L*&OX>v5 z?~Wm`-%^z|vyB`4aU770l<7cmlliMOpGc?P^ zvqx`_c|ti{4VCW0K6=PUn$`a?$lUK8=xsl44?ic9Iz7+| zWK`^=yEkq4QLVB6d7S0u98Ulfc8K{&T#9t@&h zf5Pf6@=5H%W4*tU3;bro`Yrw$%2P&KW7X6T6O0cM*UawL&vWsZNv zlAv6@;NW1FVJ9De<0IBeDvqtcgC3Ip=JRVX!v1NF=|Y}c;goG4HLd{SN?1FO>j${} z61WboCSu^?P6Ch|oH@L(d29QYC$418J&-Q&J~_jOA$Tt4qa=#)4nIdBaI|t3H)T9x zF8%3|;a{)~9j;e;)0KY@D4DAv75IQ!Y@oht7k5G(b;QHw@!O@@W;_#Lf=8YJB|L9& zea5u#aRH`|h!(QOn;I!QS^>GO2}JC=xdiAjKhW;xzCQ~4tIG5WU1fU57xPBsRJKE2=G}y*MkDt!fc%wg-pqr@qKjiDiFrJx_PgorRuKidfD@DR*j?K0i_$@6SQ`dLx!F?#{j>VszFHka z^ZY$VL?tvN9g|1A3mkn4!+5S&!%l_hhSzzo|K(~TcxY5;#UVoY+m={BW^vd9*8xAD zA$(m)F*;&D`@^t8V?6W@j6P6O#H+U@)Ch(=l#E&I#&=EIC|Epjrx<=q-LL5OG3zg* z;k&WODV8kXf3`+_E-3)sl!LK++@9O{y-D=ch^6duA|I_>v$c=hI!45cP=h2)7__Td zg1hm`-U0Q+=AsG*-TsburffIy?oP{S-aq1_5bp<`$bRDBa;g@8e{$UJg}LfRB{?}y zazmr1QO#^Z>guX|J*>h_unNpixhz!}Tx{dGfJ&mjc%wF&H{Q_R=fAR4jhPm+TUe}O7MJa*jUt}3CP|8>(4MrftgBH`d7{{k?Qja5M&zk}yY@N)fvq<08YS(;Dk7-ix;r^3GSC zx7eH>SgwT-C8T74C~Vds-)A+!2u8X8vy);s?gXP{vb*)a%h?>T3SbJ!+_7W2&%I&% zU98~MI~4PHU@oe0Xml>dTCPMAMoPPtuZ3VQD z33NdHfA{CKkUgHkL8{<}@HoW99CLKz>FXYR0V}}QQ_0ajb7bd4g}yj!{>rOZ81e9S zvpbQtKC-tj?#rJFsSmnB+8{CVTTKxz44JC@rJ)S}8J$86w004uMYg^UQqI*>m<{O- zk~_r+SjT!^7J|gJ%VlvL#xD?XL%hD7)!PmHKQ#>^bZQTwUL*VG*E&^XCE1~;M|0ri z-C7P#9sWe;)9L`ciIH3ALBh*($>mvp?2oyaAFORwi3^0-k=IR8Im3B>0lXJzfH(90 zS=;X~9t7W{X77UwzugLZxDm^dWUzFDZB4`X(vr`TT6mzTg`}&4_CNQ8Tp%?MlmSlGID^#M zrTX(55!oqE^5K4%45f@m@-%rb5yo7I2gPu^k1e$7;AjQd2C8GCvXS-A4)V#}oN`i% z^49N*QI(9qH@Aq_x0K3q$QrdF3Vrut_6(Y0pZJmOt!)_EC_{fu-nytUF3Hv}u3}`{ zD*t1KQ|P}V1zXKR-wRUaxE-y3joNHjNoKQ2nmN()F`4nIs$NxYwG{)8ScogmVKx+*u>1RhrvzHu&y2cp>lE4?xV;1dGBrj6%0ljbNr>g=Tni|&e2r$ zCz@%3vDG_osLvF=^sJSYmD?_SSy>lmPG(k&4J*>NOPs#!P41`eq{w{9X!vPiY`gKs z_w#kIm*yGQ4eKQIHBpeSP~|8k+phAO~$HY&OiHDr+l-1Q-xCc zD5NB?@I}B@xGZwmX$G;K%1B=n&0G+#FXDsq6bF6kfB#t9rc;@ z+>qg{z;3$SP7Y9WVTKNTJZZBNUXvkRO|!0VkRDbyi|=#C4Xcs*+Ini}?z*$G^cX?d zXv|d^ACV;MEG0fGY-1q)^J6<-5gT~{Qn#N+ZWqgMA>*Fi^T@#7mqMJOp#(Luqwa2+ z&lQQMjK5r8TR#qx5R);^+?hB}BY{*0eiO^T58e)fONqY-;0Ozwn)3PuE(Gb7iwOp4 zYw?R>+@$dbA&&fu3G&4ctrVdl0RSBE6oy&xe}u9B7drgx5f0B+%LFMGhYhZie#X=7 z?cYJTI4QeetDH}}HF}19rXKz>Mg8M=wP-75%v#Dx5t5?gm|0E|Xp($z&YGMW0&|o8 zNnu{+Fqu=V!Wk4LU)DD%)Wnw~97Ko}MdzHkWPcIucF&nUP@s037^1S~hiHWpg53nb z^6qr~FXqH;Fp@7;zdIA+1kCh}ebJ2X1^;YpICi^&H;CnjxasXy$Zfyr6McmYA>KXk zi}Ccb+?`h;-eH9Hjms=1Q;SyY3JrZ6Dx|A{g6YB$KR^tfnpLx?^^xEAD&}nOTw9bM>=h_35sQSsXs3 z+{~Bs+7N%WCwb(h2 zIVqI5C{~05k`k~F@77deRQt+QuZ(NJ;XBVh}N`zk_dDp^^{)+ zDEeOXBghcvRg@MV#TQB&)Dn=lcN_NIhPyl#4RmeEyGmXnFu}HenkT?gboIwx`qObG zSCEH&>(v!`>w+#tY4ypr_)dU>z5n26EyL4Sh0{tS(OZ(Od9>U28E%=ABtB$l9ASza zhLn8=-Tq;nbK>|ikku5~be3V#nDKg!1wSPc#*OKCILksvMGxCB<_S^4IISs$OHlBt zF?~}hp+yWKACiMy@;Js<*4!Z}L(O!A6#hutU_`E(`?qeBC;o9^vk~y)Kuc8APn!8d_IJY@L3po&Dw+mOF0B^pK%XS~p{OhZMu(tEW0{I_x}<)%aYPepBlN6WOTrnN6q#m!Z?(-j2kHM70*Xj3n`c;PDZV^-r7_~OM z?J9d|lA3^RwT=VU`B5wp)Ux}lC`tq}fH-hFlzos7&!siA3(93M#0}0o2UGCPjh3I( zOi|8VMB_Wxf@vo)wuSSIpy44=Oym9R&XPFM%KeLiAop{_S>v~_G=3xuc(7(ZlkjYO zx||oEo+&5zX8r)vK%V%?zBN8sRcwrmX6JMzf4zxW<94gPHX9&|^M z+O&*86zOq(KD9xmw7{DfWQ6_ho*ME!zG z^xhNtPzi8ns1WGvUS}@p5G0%2{IRnRM%LYS2=y&um+a7Jin#-4pJP6$6LNt zkHM31$Zxg|mKEPge;)`KA}r8Xi)K>Ier@Ct>>4_J z4->bJB$L{C3IA%C22%b+4x8XU9)GopI{WGzU73m`1Vs1DGXdmD>`L+6Q)%d4ZKGvV z(3RCKo?ofFwX5X2dvsKH{h~=&g}FYAX@7jHV|9i!4n5;}_g6jr6`HcNrROM+{T4kJ zTlclEUBJ8o#z?xgxamdqv1XdNvR*VIVs?k9=T@wSXPbY40wT#=sR@*Chu98)${Q_4 zGZ_`1_h*A@FkWt1P&nfECT2H4pRK|vT6b`{76dxp#GAsKku1=M&1IlNB zl9;1ZYc4T2tc8oG+!%96V_U|+b56Ai?+=?geSoe4b1*b;qYpb%137U~t%N_Wdw{Kn z$G+HA!S!Le%r!k29!b3@Q<&RdgyefPkYUp-a9K}48W=?wzdA>lF7xeO zFKyv5F^v2Eas-@SfiFUn*R=lSAWau$lA!}jvK2WXl+#GE|GdxIx1a4Vh^lns2-7U3 zSLk{j)alfay2=NR9%*zL7$7@Y*i10XJc`?T% zkF$;)9V0Q&+}m(r7|PVUB0Wq7yWjF9XA(@1r@-{>E!umA~|{nkE?rs}%j254F`rm*Spv6i%Q&O&#XOmU149&s5)!s#HY%YDBH@%?+OaaAl9D@Y7a=lPD#e`=9v>5AVP zii=qWze`Ak;3>%Ubn9s)MIoEQR{nk48waDU!o`=?RVE1@ypmuDKRmnjPkaL zvxo5_hzMA}+H^mnQ^h9`dJWeBi)gd6)d)|gp!{hl!+2^if+ zdjl#Gge^RM4QET~U(=cML|1||75dPVdk7qyaa)&=Py1HAw?@;NM5kTJ4PQcuvsCH) zIVo&UcXC)^vZ9y;to;Q8rz^fAJeNgmbJezhG+rTi)`sJx-{ZjCCKD)A_a`F#HRj2& zxS2PcB&c0F*W1wm7!7j$5Nx+ZlLL4#A2ei2!e~mdKff@KnJEI2bl3GerZNZ?G7 zNCtE{KYa=P8mTNDa@f=Lov(-4e}Tn*sOgpJ=QnPztsrk6P>(AV!)4mSRfxCOzk5z(Alu!SA72nt2Y#j0{D zAH!A$RN|>B^@5}|Igy`mPCtqxci|pAfa(|%3#?yTn4E$?AmVUQ0k7{EAc1`CP}HUNYEm9UEW9 zeUKS)a@2x}=}qwcPF2T4(53sQHp4IFZnHAvy4(-0&po;`r9cvBNX^9jPx{ly5V6shz4avr7j0%LDlX|Y~< zB7M<_{jTXL;B5F_JzME51%*X1Pw*94p?^lIpiLdc;Y57Rmi z0hq<_sUBbhPmO=ht(Rj+uZ+=3R+pEh2&rw{)xY=JOFky`hkZ2CP%gkDagD}9gh#Yr zHs`Mt+DLp8jT?#Y6#t_)2?Kvx!ri~!m2!S`dllglc*Pm0)B_iI&3ds4pi-PIU!d|^ z6g;Gtj-0XVAb$D|?goa;u8@{N@X2sDIqU8u;ZL1RCA;j}^FLWm_i~<>y{1kFa4%Zh za8DUtOgTKm{43y~*Ihl-|4%tRsE>UPD?{S)afO75>xMYZi`ZQZc4b^e3f+P+Lo?)# zLh)NKx0*uQ8%lcvy1@e7)5>*M4{mAS3exJ>de5Hnimjz2dX5W=;RSBG z?@117@xC(7VYa)kET1=xuAyZRyC8*5~L+goeH>V8cHu3CD z?wg7Hd!nMoUBTsFGvi~{=F=^Rb(1icw+v{f&ReEaB|Oa1E6C=oYI_?*$oA|Kn~R4k zI|NC-dld~SD*)j6kGXRK8Na@Ko~H_P?K4}Xq=?Uvfye0pZ;zE~7bn~Tag7?5j!a|I z4r0}iA<-b3Q44!iet@| z5d^WY-T9$a8FwmwY@*tS-fDQKhh_p|7Pw%B>u=%$uIp?*L<}%Rq=+b0Ky-Vd!72nc zp&SXe`)le_i-idr$*D6S^zTyVuyW4wAAZXITo$ctIpHwIxSQo>$M9obXSh)GPAPL+ zCy;~9_8Aa3gbfpcD`DE!zJUv_XH~HM*pF&7q&qv4D0*BMJN1hc*Z%g?AFFs_K#@i4 z8nX9)*2skkUHRX!_L7Vb<03*Mf31_!jDR>K_|0XaCd`|{PUi$(Tlx;TopLdDOl{gE z0@ca-e{U!o7B+Eq!LRb2YlcEBx{k%4PAt-*KVApnaTPt?zJ&kzCzaAbg5t_6ZYIEQ zymA13@U^k#ozkm=$?p0>EMiR#lKY+(aBiSwUjsa$0&kQK>NL9AsJcZs(cwhZ3`I zoo(ba%aA_^w*MGi!Mo5!v;$JIQ>J%=2>}P-%G0MW`UoTeqgI2)^@5UqB;HU^m0AoT z{GG6&0Z0DbxgD=}fN9?o3)DU?7NcY+SIiVKE9NErF!mh8JG}I$6oV+D$NwIz7H3#} z{NmCeMPDZi`O88vyrX~jN_4b<1YjrdToNc2N?rY=Y4X2TDbyZ4DpYk|xD_|5T@!m(&$pOhlE5RM zTlRX@eU1BW%HUIHW;*%GI?C{-Gx|fBLxEVo3#(7_M6Dgf-fI}okL9s_2sag0GNf0f zUBMUTmtuKlSGQ)a#!$FtOYCp$F}uEwKQ@Z{Q(I9)RPhyvt#gTbq(iX@0ELVU%Mb+r zce*+K3~!8?0wcpaDvLKKx0Eql?j#(9MGq8p!_r$Xc$>#ro41@q#+7W zOGvN$#GB}sf&w||hmiRB-K|aH)m_XK84~9N0DTY>E9a>5V(yJwxL~M{-N~u>68Vs$ z`VMJL&sBcUe~DX!2;HX5=XYnzR6u?!yp)sug%MIez-Te04o=Op=2PXRA2=CN~d_9?Iugbi(dD)^9>l%pHs&y~KpZ{K5V@}7^5i_(L z>6zJ*?w&HpOuDnvj?9UBvRo|gGOvXK-+=mZ?>&V)482t0{_VHJ0so#8Bl?`Q%zd+S z>4C}sHc4*K=*YQ8^Rq*7?*mgW5&&+;Q5()DC)S#<6QGQR&q5W)+BSigoppjSHkenm1(dwc($Jt98=HNytCKHf{D40@UbEsH zMEyFSHovF!*5Yk=2 zWKqF;FBf+OKnbH-z=Fgscfeb5HJ}U^y}ucFG727*RxazFm$*+pwD`D_f{LCT&QGdT zP=V(W(6Js(9N~GwBy)F_CjvaFBM`3x&{Rz9O<-Dq@`hy%#YuLkK6{n~+2ATF$u@qf zhLn7GQXu=E$2w?e&Nahma6PFI-E-M*zNSP>#f5b{Q~dIT(~W9p&pXx zWpKpNasU1P){Xn#4ewXKt$GVrS=Pn1e`0GZz=4eoyWZKrzivYc2l2Ogdf~bDU%1JMPt~8 zfHaTnu%n|{CWl&A;l$6MPH9kh4r9Hk8XNpr^mvX+N#8d%1IqoTb$v0K46}PIiJGrj z6_AJdr|n?tkM`RD#xF{E*{11tFSnd5R}(r+jrjRRCS9N7-F`;H9z_n~^~t(#7XlIC z1KRW+XyqCz`|M-wtGj*gopo=4x5fqFG!UhK%izqsK{O$|7gv0lPY#u&TEHMy-clOK zOXp3mKt>Fr^tMy}fUsBMfjz3Z>_t62T{yc+S$6-*?Agkr=LIbCSK}R7k+hzSP7f5y zYsj`glfnaH2VYp&31A{x&VMdFHX{L;t!h_gu|o_+pxmuH^o5vDb#FsBoe;51cDsUn zF#PgnW;lroy*sE#iePFs$@XUm!-rfsFcoHh;3b$eC+9og9SbYJ*N-UH{WMjqayT^L z*r7#zQU6_ajK_c_OF`>U&q3uGY(9ka?SNbLzC?^luC@_5ZZmfsHrxT^AA#D78lF`J z5O|*q*_>8Zt$XZjJNsfj=X)_I>Q%VF=_y$R0Y1}=Y+1XM<9^S; z{CYks)2{=I%~XEY?nC&}?PTH?Ta<=r8Eu_C_mw~*FDTb{|E-o(K)hRDpBGWAH;l3) zgQ~qz#K(SXFAfJztNW)6&CNHytZcKc*cv|zWr1@`0^Wk0#pxR;f*jb(QU}a#kHu%C zcuMSi>`Ery+H7v5Y>Xt-hpZN6&TTl}z#kf<2=KXM$Pbl;Srty?E}0f0lO06ao1xUu z8u!&}R?*rzEK&Uv1v$XdR#D983y?-s=ifVW88-xiZ#Hzs9zLy&Wy!4Qi!I=Hu0!Xu zN2^L0=go04n>hM}wlI|Ca|M}U8nw+`*Ir-xj})(;7sRnj1?d9eslq#1 z@A)Ar z=i6s)9=;vb__+hh7CW4XXZY)JXX2O#Y2$aSs*?ZcO$mCa)L_qk#fz*g0p)xzs8KiQAQ zZFk=Oerc_kSbX^eKlNe5$&&5E)4&+!CMaOW3je-c`I%CSu z_f$*o8S*8@TS6SHJ>QAd%|CZp&S;@U6i9=bMWbc?FX}!^DuBt$)V_}MAyb$9UD@+-GOCNg3aTgDsJXRp zqig=RT1d0vfQilB6DMDkYwQe>ja;ofNTOOR1Q?mHue$~xMrhe6LY*u(CovLd^P zhsFLS$X+1YFozI|ZQ5%Zvny`xniDOjzITy;afXt~b!pNv+IGSwqIAm(!QFn=yZa{m z3rK^;W%=i=KT157wtT1b3ybu*DGW93X;MGp%!nL>8Qm$>Uz4P_sUt<`nB?v?NlJ&P z2cFrKh|J)Mf_&mK+kVKNGSr@IhnBLgD;`V&6L2s*wDM4R15>bzOoN|zRF)Emid1BGu_ND z6H&SikCg*lg48DQc=I16TZjdPLK4^>XjMH_5KYhbRH0TMD@CZK!>>=`5N!`L zOnpySJBiN#N+9V{0%Vjo6P-0NJZ{N|h9k#Fh_e!w&D4_5|c#k221k&R#Oa2CR5F&$TD_S2@l4r1Bk* zdb@W%c<^i893{Hk7pO`PzptlG!*^h7P-tYvhE&%Lc?QUJkJP!hVCcOf{h;yuQ`FOa zl^k9R8n+6{v;eQP$Ei?B5HBv`WK|HqT<;0{8@E)_BfA^0ySE*;TJx&09CfP{_FW1Y@>&EZ$-aItfTtx8`wonQ<@)-fN8GdB zM4`fDHdCHArg-83mkr@9C41!ZhnOJM!58);BvLO3(3qufT-#XpkA&W`>HEB>jAqF!mv6(oT_(i)EnEWhN#uAV zmB;aN6Wj3a1>v`h3rU}6U?S;rF6B&b(ttv8sKUe$*-uIY8M0(gC2*x$@VtAdW^ag* zb$7BfzR`s`^=tbPBes@;_QLNp^#*6^v%RDA+2T>d4!~T-Y?lp&4C!*hWSTS5Loz)-vD6GZ3s0ol~P){;3HK%RutIc?);O@s8RF1uE+Z+u+i=lohA1 zpSMIryMgg$azSS;?T130MmT^kx~Rh98CF=+BLbh&t=avydrBb6ev;UnvLpoo(!4uJ zGtRe^k%P@&b-0nfGHF{vCN-cKa(ch(j287>kl2f$9*t)p?3YvYYmqS;4My<8}hkcnK7|*G7v-5nWVRI`GdD{Y6I7h0}CULE=Db; z?~ex{DiN1{hX=~#(|Hd$LMFUsn_EKh@M9A9W*x6ekA2eM)2$OuV}nX|z7J-g%acmo z^?UZp;Cpcm=2tW-9lopNTaTN7hXT0j-n+sh_M2Vip0P8pEW-s`H)i$|)l;P1un1^D z6E!6J0$8FNU`2!mX^(+-?~)7Bq$d{zP?(%FaBP@UE(N~?xjX( zJccz;5^}j+`|MHq<>TdroW#csOLXH?H4G+6(45|QxeVU>ftaY)*>m5znb^FtmawJ+ zb6EeQTX|^e;Qba_Y}nR$3JyhCQ=gk3+uk1GC9yRJaUAFv{;2)>mX9gf*eX(&vzCZ4 zcizNHM=ObRZUmRJWMvIUP{rBRo%~e-iCxAbHG6aBvE40ogF6UgSSPrPhvv38&tPMI zl<^%9OMf=_x#H~mM(fSG+tmCnU%Gj6#sLOTY+nwPTHg63D!=0NG8S$d$j{p1vr4t9 z6mM);K4W%zmx%&@Pdq3SN67U{NE1;&qgV&rLH&&vWY;Fnj6Q>->fgDfdfJ0-%BNE^iPI=B|+XP>SCbCGUlVx=TIT-QAv9*IU}J zMWXrSKhfu9U|<`bg$|gTy38<(mvwK<{#wFw$1ga)FLl^7$ptcFoy#xqsJZ=0^)ud& z1RZ_e}paL01HwSvmJ{SB8&s81Zd*GGWG48TW{6rK)C0GM8! z)JcflgUH@yeb8_&Y;awvZ>BUo2qeep$ImZ}mAi3tF_5*-!QdhX?OL_{#5rDnJW-BY zM9xKyC6&*ni_N78_3-!{laF^p#pePb?Z}B!ieXx&>1=Qm-5iCu*_s^sxkx%dU8||D z11l(W$!d{;qRelN)K&d}9M!e^Z46{4^6DmeyaVho*@B1yKFrBgLwpb=DYz^N(WeDP%B7uFlIdcBB#?_oM$>XH(LCsSEYYH8yj-Hz$xH0=l*2H?b~ zkt|?bxr6ASeF?0Zyqz~cZ|ANo{n&>Ui#&I_<~o)>0S&rG=araS{y1+ObIpLp1TMjmQ3QJVlC{Ui>eV1tDygjVrd&n&E-w7aRA z*1g(RP}$u*X$&tf^}D4r6Y4V!gq@W$O9FY{iirs*60W!`o1<>Oo$nM=Ex5FK0xisR>$7#*`0GnnV5MM1}o|&h84u2gR&)eeqdply_5#J zIL@&_OdqQP5y&g5eD`fVW}^t$2u&z_SC{%|o-*#R^c^$E1d80BwvVC70Y=udn&yci zZz*D5==9i_#y*Rf-%k?W8TlA;RH7mHa}Z>Qfw3y#PNiffKE|P7_)+t@B8bbbv+%0a z^A%E)WV~`AWPquqJ}*qFZlD1LsXZ}H9mH_2jU8m}kAdB5)D8b|g(hBTH7SY350@2% z`N5uzkH9q1dk)$oK5J9qr*m;Ar=ri7$)OdUr?WgQld%x*2teSO-3V^ieDSZ#OceHG z)EQCv$wcW~e^*mDbF5nGdSx;vUMT@5X^F_3WiWw6%J@3^4B|@Z51l=@6d$J;tiWxa5r%g1RBJI{t9@fh%o)FsAcM1m~O_2 zOgnq%b1S!-W;8FqOic7XJzRulgGboRsbP{6ebW=?ZeKO+q9aq&YcFSYX@TDP-^X{_7;tJ)wLb?usz1K<)_m-JT zS{=8f;fEck&oWgDXeh>?t0D**a9MHRSBAXg6#)D$2~PmkSnWkMD3>;B`j=D?O7gMe63 zWu2aM*}e@fX+Q?%T>60_9|>Ab_`2nksW9e{z!G)P_iKFTn!!UQ%xKc-`y-Ze=Rj&y zPrt5Y*fdi=FCl!|w(gi4WTJ*tKI1!VDtp_qzIfMF@2KR_r-H(gqa@eSZ;Hq$up@!v z!Tqm>O1U**BNNZs9L>BQ0r#V#N_?Q>u6oosb3bUuVr&6;T?B&@13gnyCFNHIw+nr09oxL1Oz(EP+AVfW1Z_n@UH&|1RWQ^ZnE9K+2XqF#W52 zHW`Se|Cb~5l-s#~0fh(-u+YNvv1$8Zsd;lEKpoR(5C`dLQU}Un`j+tmYa095a_>^2Elef8)|;@x zW+tBuk#%vRFO}s{kJeG#tbN9Q9i}B49P}o?{G=;s2Sxna_gG-IDU%y0;`{V+2dZUD z*`s;mxz;<(^yc=&bE|==EM^m_&ptRkR#=}T&?}Cul1G{3pxocG^uGjmeic&tikZ*- zklWzdslMRlDcPN5(Qn$L0HwnBWXKTlN_}RgX2~frY{NpSOf%ss#iGYe-4L81%mN{n zC(^7?AW*}5e?49i#)>&?G^~3N+)-7CDczeETHOH{$}A9>_WEEA`^;WHS00ObNid zhH!U34K1WR%03a7!|Vm7c)+zV?@iRZ&`Y|qTx|;Oe%E;64rl2f25-_l$=Z1qh8)|c zPP&z@FgDZReY$fk9ahEgG{BxwsU%oqIt*L-E^UL<@qX9pgm_rncSsjFc41vB02xu( z65?o#9x$WFoUVG8Fp~EF(@%He`z0FATz)q|p_n8@_Kx zOHx*k^7*JZP?DA+bprg{#cgv*3yOJAHSh|N7l{-jDG=Uic*~72%TSguK-8>)jsvgQ z6;p0AYI3|d*w`x5x3|3equw-WkH_UuR#j=|hj>7!T1kXYjDgX$xXP=N>Ywf)y9$>6 zZtyB_7aOB{XXhI-N6TV2p<}>nQQ&oJEAENYa==je77tpZaeU`XK%Li-UVraSI5aT~ zb(t#sy|?$tc8J#+xaJ$}QFQO}MbJldrP+@oh-N4fH&sNys3RP;jgs#hSh#yWJ!=!N zVa8VA>F@|tFXh2B`ZGL1g+VF1iPFQ>@X6P|J`79T2fzoAU)40W zW8N~Dd+`0v2jk^&55x_eC{{x9L=LACYV+kepXJNSjkO=BZc8I0fpoWs!sk1Ujo#cV zz=8GP9^}m|FJ|aSN=Xj*FH7^9e+~2Tz`Z4D`G^_G^^6qgMCLpob7`4#Jm}u^%C8=h#l}6MR&z$nwR#UzxPxq%>6DxRo!rWdzb0UBUiOkd zA@$u8HY9(!kOWRt=jXRL=)W?<24lbGo&0F?oS!gop*kK0)sw1Lr-)p*(RtCo~kIrHXUpE-j9L=oRYLL{3qi6AGIg8mr zvGAD7WH$+NgCxPDb^dbaWB(cVy!XV3DmjiL2R94sQG;i|jdNphI}Pu8g^guN`o+-P z#^lX@(|M*Z-&ZK!Hd+F3I<>qCDcYiMYg{o$=)}7l^QN|An&nqKNGuSu?^~-u&%7`J zg)cR>X5R;1WcmXY;_iL>#MBz$?$ykQ`{LO61XJ*t2T2VlS|q*d>Xn7nWT>pcY``2@EDWwaFATf5B?7Ji>8%_9H^=$iPxJ`n&vEuBj zA#|&qRYs`o7AT{qv|=4wP+va6(_=m%a5pYKHNCkG)zO6H4K*_0EMZY72LC=qCSr)r zn(RPSP)`2tsqFPmzuRuv?Sqvg98k7r^a(;~06m`8tKQp8{jl$WiNS$M_C5#s zvdY#^=#wC8>C38=PcoPh!8W z(9<{4%a&}-WGR8%Pp=*XA?`Aj4*517;tw(T2wnt`UaPNY8yZ=NKy{MWwzeS-=ID3Z zg$WCecPw%GGs^v`B(K=cweG!KTumVZC+;;7+@QfPzZ2vac(L-AJ3zcE{*q!HmvhoP zeyF&FjMNXmP;}~AqW7d~M{65$St*0W*pO07lIaN_?Z*-_-a}m^LPtJI(48%dQ*+El z#q&4A0CDG&eDqA@FEa-KDvbwHT>k7)r$owgaqKC1M|V2UaN4Q9%p1sS9Ag0)>HYFH zWe>kEcpoxeiAN9|mKI*AWRqSVC{q^RszVE=nZipHaL)wf3R@h__Piy{%C6 zK!d4E;HU93=_b7eRPj)z1&;7ebh{=iM}{zr1VGyL^jP~-%@64@9lu$v%z<4b-Mj@{!ZvYI1$ ztNw?TQbF703ae6{_|oA-!jqh@pll!kq2KM#E0TDOx$BxWT?cu@yFS*gwC}@bM0>rc z>%MZ=t4P|jQhhtIsZkE{;Rk5a!3z8JA-75-@+0Pht7X2;7w6CJT@#@o1C0UV@0N{R zpprn)1Ai*tVUk66b zEO7QKsVwJJl%AO&SjmHy*>AYY!EsFNb4nb;?}5eox#dmpr7p^H_iMTsRH32O*N-$Y zfp}MAzh_5!)DUJ?9)RA|&=)p`lLZrlX9uevIG`)zRKWvWMej4lSb&cM`(4Y9C#T#N zA)h>@`;2hMl*k8%!QUxN+rfAk{fYHPeK2|h6Eegeqoy*~?hn_%3qr(6R(L!W!``-N zVX>4+%q#)=W+s-$R>c}lN`!t8E9xemf+(*SwGu2FQR|!J?Nw^zZwC1+hrAGk+F(T_ zb#>xnhNFFQ>sh`9ao!m5{qcpn#}|Qk=@%!=qeC5^jb|DORwbO{6G7+kPwk+7Fye!q zhL|+o`FG|$+0CC{p&8k`Xn<3>uKn@s*x?@JV z6`^0ofV${my3hC;0Nkph3~J*d{2mFUaN20*mX`*kU3F6*ho*{mM|rQW-y*!~dq~OD zp~^1_Tpdm{9}7t@<*1?q*5Rk_F-C^<`<`+sX9mQ6MX98hgd3FV@QvM?WMzv-Rllb(C!D4QO>D9V&A+o@R2qWrcnd50;NJ{A@MpvwcbqPrzPg zZok_qF~gZJO0<@cQEsK5xOIt4%3oEgwn^21@|;?kPP1*|nDq|*+zpRWDeCFVs;})7 z!C9|G7p=x0fn;b<`n8oSb0nLA^BeCoy*}O(y7sCvsdOVEz4@k)^iLfAE+CKPh{^Ys zy{OKk4b82<{d6zwAG)INs&YklQSGVg=o`m93P^W#I}fvkB>i}EBZXKi(8;}%N3qf2 zB(X{)5w0(%LPmgMzDT`R2SUNU!Ks`<`K{HT}DGUt#M_;qcSfg z9&RuF=wu2b<-Pq467eQ*We0Y&tnr}nj3&ux25Rl|ddB)e!OyZZhpyVffb*n_5z3dus$AMTic>y~nwpNtEPm=Lyk zf4i31zu;owlNMUeh!3c4CA3%f%Z_j?;Ed)qWnZfbJ-n7bLe68fAI&YHTnW#+vh(QJ{C7wItXxq@PuVcK)l)+d0 z0WkxTE~S;4Tf{+mXo>3~k5`1YbvTBqfw_jz)G*YreW}ILSZaWnbZc?DI%V~ewIk9f_Sf)5vq+|9ov1+-YTVX|rPOvallCzIkCobsZRb^qF$(O}|*| z=_*-JLU{qBJTYE#2KY2-4ln2+}Rx?{J>uIh_CdWiGvb z?6uckd9R(R(U1x(poyV>OnP_(HxYes+nI|J{v)1xsCS_>ZXCKrA^R=v zQl>55@Q`^UD*;i@I6|Rs%Gc1CU?_$yCQ_qS;B@|BEHKNND9N=&R6@%0jbYRkA0-C2 zeJQLP#dJL*#kD?>MGec)@W0l)t0JN5!rDJOtMxIiazvhRs4Xdl4-vwLoRyVvB#uWA zYsNkzr^RJeIL*Z{_H+oWS6TLI4p2ixSwo%iX+NgPlY-RyBjCMTzL2mI8avMjFB-6r~Lqb`FH+742J zrJg@Q!%IuD%DsrS9!`cQ+-20Lh?j~`MUEyTg4SL!YC)$@ZXFS?w`z-jem}V(n+P~J z`4S=|jT*;XaGQ4uA0qJ42ODoN&LdLV_DqzG)_w*(AVe&Js+Df4fr``-6dZ z5F}IU+2f>@4>zI*x*btTNiByn4&1Xh!rTQ{w_BCwy9ku$#=Npe#)yz~FCH10?XhHH zahI#bT_C8Q5xs==EV_aYQv`oHuQXEP8a)PTU_Id%Tnml78fb(9V$IC6OJ&32jNNfF zD;xZIb}n#6(4QleK#wj3952DhNRKm=Y_KasF*oJgNc87ErHSzB1n9?0_Jx}8^$Eit zV>H*1->%Ck$Lhja92_?*&ZB2)=fqOCZ=b>;2i9{GJ-HE+SNw9h2qNXsYfsKje(LNR zF#^W$6cdO|k0@;te^y^lNJIX;B{qP9$Ds*U9&ql*X4u%7_art+tqqg0LT7cu^Lgr5 z497jjLkk7&`M+4a?po`|3wAA0)sL6xO28iq|#U(4u}fhBMMZuIC=)zQu$xriv84 z2*&9p6^3-HYsC@$_(+hf$HY0`a(Lz8Q)E`D|7&uGja%DnW~|4qY_6A0=Jad5@Yx2Z zSNS=eOz9)fCGTiZfEW3-8H?~tPP0-uzYx`5I0yY@ zyp`3&cbKgouLM#%()3;K)235_6fnvB7GE4viM`JZxzBa|*D@h)?DfWgitK9q*`Av% z{a^+7=|>DSYHvy@CK~hg<|Wy1oR*274%16xu#eD*znHYq8%y4%hYwzP7k1Z%JM)K- z%Utz*<$Hzwd_L9Sdv_lNvRV>9;Nwg$;f>hx?e>a!__$o3Ds3C-*q%|)gKjml!90{- zrQaJ)Y%oUFQhYA#+Jb^|G4~?XHjjf^=iR`z(x8V#7|unSEUq6+30_bB?pD|M^sPw2 z-U@S!yVCSDA!Ci3)1P=WYnzq;OJ>MtjmsO4`e{u*g?LJD)Hb5PE*PFoXc^;>IAu{b zBwiR>aY+h8qXIl%Io8Ek*{a`tIlKGFe8Kng@|C&emNH$e4kT0MX<-BPM)BtjQem;% zYnose^eXJpU#0m%x+V-I&(GEK+-cfA-~0-Awp&WPX6)&Ut_GTZT^5Xio{Otu;6oIc ztz@!)>6LgEa9zmCnP6y;Ayv0AR`9`n&7jgL2qSLKxgwh)sQJoHdOQ)LP zf`gg{3s>(H&BxS)W|>Oou`$k|%vkl)nLwO8l535}V+Ciz$}*$(z{0+x6No5q?sW=szAy|R=8MeE_cTQ(yyQM{>q4pyrum1y$4W0wtd5Io(wG($CbwFNJAadKc6baEUUkF z@lTqA_{;Q7UTKJ_wf1^xXudX!z8;AfAxx0TC@0QBH!=e$N-m5LGtfQ_^)3+_mVoE+ z2z|jql}2kjt>+6v3+Tuz5L8Q7n|@yIcj&Tg#b%v|;Y$rG3A@CPpnJl-()KK{baK`2 z*)B3D+M>X+&Z1X#(^2uezs$T>n(tDKuU$xeX}C1YRocYjvhPJ~D&5$p6qO<%$Dd}n zY?7RQIi{DqoHcB(ZEoKE@kHHAO1oQiwz#v*pK`g_Nrdrz%6Kpc&c{q-4A{ ziur4;hC1L%y*Js5<_B-jz>3^?p>+b!Q`{>y&^`=kz>wSyPmgf=C2^^pzad7rcMr(Q zIb)ed*t6mU_<}`Ae9XrtCcExZ=+$2w;i`gJ`;@Q=D=dKgk~Dq+aX?O!&pR)VGsC%B z*2xpGK<(m!{Yu^7c@*6jukc5OI^q&CD%K=LhIzjCBq0yYw-yXswA%x0l9`09k^VaV z2vO8{sg}8>zj6Lh>Ziq!%Np6!B(XI!7D!_HB9#&`{6hQ+PZ%Ifb~IS)!70NZL@3)9 z2a0@Z{u(oXNi9dMI;(x5tZseM_8F+tYi@eAIsEz>6HM&%u!9X`L`HR;^+a-~S@PuK zMTl>vJI0dHM7oik2#4`Fz3Jofvg>g6v0sEBw~cr{%eJ@a`&pJR)qF4f_nR-5q`zs| zO-9gD0gl}UM}xuqq5>Ltxh*18#5*obqOl37DRTgIt4Wa#fXq?;3N1o5APj5d(T*nj zkR-elip7Ak@hHzUr9Px}u6Wm5m-BzyWZgf&SB`4hxjlJyuhE38D_&{ERGxG`!ATYm zYg+1fyf=2Q`oWCyTLzIwL~&$fPX&|Ph8E844ync8{wSvr{5Cz7>$EYU=h1986Tmec zh{1awD6rQhLCVhSxkcuUN15ShdGYaPOo+_}A791xrze%IcLv zX5y-!v(pl_=K;%%-c@e;nK8Jxsgk?Yt(`+gIPQEFtfqF!eRCdg6&n`(926BPIlMj( zwrJO&`M&D5VYj<*?3y3(bmo5t2quj|DcAm1jp^l~C0cW-;!cy8xbi&%@x?%{fT6Ncqv0AA_|=ZNA`-l0Wj9!}|OC)A1w6 z_(GsCHQ^*Ri1d03`<&3^LElaw`cT*JZ+1(R4^=h0f>B;C+qPqB7Aq>3e>oBf^-S`> zdm0klr@B}7sVB9KMN`Au&5uCAqix1TdS^?+VXA7Y-^j}1H<;Qh5* zU4V{O z46rqe^jn92$agBtrludVV6n0)5bL;-YoTVfXdH~Tr|lb7f6-3xVs8{%9@|`%5vdr^ zU+*Ixe5f`e2#9|hgeUdS5npi(tq&&V{+QY;&6?P*fITlRO38trtsk^lAQVCXoRoDG z*WDSJrGQX!%pfku-@K0ueWI=GN2^;DzYMe8*HS;5z7QNcj3Q+qP;yV(9CT`vKBg!8 zIDA~q=CP}6ei>^u%V}5}yeVOlI~ZcI1`zGAflMu5>P|QJ*}t8%0u(g!b35aD-&{`i zk)C_FtR`GsqY>nz?vXV4#~8kO^gF_q`Wy8>d&0$I;qAEW!UgB@U(>bRzF4ir^Ftz~ zp^E&%_H-@VT-qW@Dzs|!m$uar5ipfWOhz;Y|7V|GYV>^L$7>Co%c#G07i6C<3Y#-w zC?NWM?>vH9YIi8T06?(MfkOWKx%8>&$_m%jc`?_~G$+?Vf`b-o(nOIY_6cqPZt?X!<}Lnv&jDNR`2U07CAF# z#5f*|8NOa9=R`clg1Uuozsm&0y_{82i$qg4vcy0_+EDSUiu|`c`{kq!YEWVkzv;sq@Quw0?S=2L>DzKRIjPWG>He zi~e@izh;r~%BM!6aki&$f&cmKM)5q@P6K_1R6xy2rv(Ax+a@{1Klo(@Q@%9M<_Cqo!uoE2DG%y*0T{ z9*%asy;H65v)-95j7uKepW+v*1O*w3&9TJ_d~j5b2tl))*RZ{c(#Co#1Oz2sg@Q0V z+)Rwj?ZpJ@RG|^QSo!&(ajC&IV|dvkrcw;HoA}bY_h5FkM&bE*%@OP3RH75a{XZ>M zMMYz-P3UgMp0)_>tKRP~Em%-5PzYtH{^TNeJpto=G} zaoAS#jfX4_-u@%6H)g-7zqb@Of0$>GnRd>Y3C*CDPeb+gaayBTfE?9YMBN-$YfHYy zBOX&AsoGpF0P}wOC6T9T1pKMFt$}0;olZ49cs#n`O!ORM`t3wJCjHIKKN<**6lk_ z&aX1&(u_EDoSf*qocgt3sx8rNIdBsOP^Y=Y@yn{~{ekt2k*2*b`^v>x6juYQkxlL- z^7lDuMFavb#Vn-8?=)DFGrcbT5ehJaNHfgaXw-_c@+3Wbj+U!s1a| z6FVjdzY5z;+x@2Y3KPHNl|hc(W7Jl{Q}4@3WOaAF#1v^5*V-KxYiXp{J}Tl+8mfiG zI#H}98&&(m)G9qR{#oi2#$Z?w#)xlSJKITf3R7M+O8~F6dKMpvzEyM2%|ePw{gT)( zHCFr1g{IHk*9qI9qx-YBOS&^wYqkIEK(8XsQQyRIQ7$)dZ;x*8&epWrqL#|3Cyp`| zz(p9if-mhfIR@bu1#*B@BU_rDM>{5h`*g0pbllau#oHS%rqV0QhK8J7z zTfl=G_R%Oi@0@=xz4&X5Edk6%l&T~HpFRW!v&wtg*u69Rer&v;Y1lR&YjAs$Tj_k$ zoM>CtqzCjdpz9mm+vEW1Mwy7Tium@$OqWgt1>=oAfha?Rti4GyVRX6V;1YYRQ{fL6 zkBqEDf0}}v{38k%gC>;vx4wglF0*gmjwMV)>FYT5*MuvUe!j@c!ViY`-`*c-A!x(- z?^_*&IWC8Fy`mlotYUn|91Z$hC~$Mp@BN@=qjg36s}g( zf5ohF9gmii`ENXU_+I9A0zeJq+GBiWj2Go;$XSqFcT?ZINe@zukOh40OCI%Mx!fGMlxv;t*_oP~YmL7e z5)eMp4T1VA>gG4QR{Y5~LLhUlSFC&j1If*A-}Pv!=$M52%*oh6m+leG$e7S$r6dA4 z$m!b~tP_0jsf@{=qvrQY^$*e3{%)nI>x4=dzH#PXtpMsh ze)8_~I*CH_5orvEo>9*43#HPA z-Y9t<9X&4S*pupL2g&OD@z0DlF~AH@{0-~Z0Ux{{i8bkT8h)n z-_8mhvlCbnSW?OQ&lzwZ2E>-CPTum+?`fEDLM|qV zkXoDbF^lua=Qy7mze8%l582l*$o!a;xZ4E7p{_vjahev(FWs9j+XT;r4=0y$VzsTl zsTg&YQG}uih8%`%*6bgov?KziY9D8z6=b8@p5lvFiLn#FIOX8|nRpt%G4@2aQiLb!!zh%({7x2o0T zOPxL-I#34lTbpmDc^!fliCRBjPC;4V{AO;A?~UYX4&mS=Py5TBI${Exw+zf|?DRZ- z#6P0%mF0dR#$)4hOZ~zgXN~aAgJ37I3XiVPBTO=}Xp#ULrQccCh52HB_8$1CnZ}3J z^Yh(zrV7KDCBF4|%+DJCoW7e>1o4GejX9&TI4UnSN?bQbQEs*FPkE8w1Udd%j@576 zN5eIIf#Tl~+xvtlm6%qD`^_l=5O#rv=Xao+qx}kg$eRu@f3kmWQ$XuTB|nNStKZlg zj5CVCRSKZ!x;lMS`3wngp%MrgE~57mYg8`j-Mb3*?(gHtdx%CaXL%s3ysW@oUxtL} zlJI}tzc8}F7^E(AnJj!+^ewK7R?MHO(itL~`bbd6;X`UvaVwJ6fu2ivlc=J4&wP3!VM$2OQ@eM6QbXf_>WGKz zw8{)sI!L4gKPfS*WNl<8vXT-SrC%qa6i^zeg-TuW#Ry=Rxa#KQ$BvPnTf*NFZ0PMGNnJd#5-%Q79^@9 z+Y-8_ab+OltHzmXvjDV4+mgH*l1Vav=BC`&>=a6BU;Gi$$&K&5vlXOQ^)|DICM|O1 z1GC5C+aZ3(kn={>lNIkrptWv*_u7R8eLSvkqaI7BlA}X%joly%l9klYW6%Du!UD8# zb>=N<5z;k~>R@32JnDE*CLZ24$hGK)gt)RbWuALyYdCveBtK%RSdB7gY|V3@Cv1db zeTd2y0$3}cU_3MSZF>Jy^u4n;Ch!K7r9<~yvdnEKTCQrCJLx2L(qz#NL#fN*x1Ag$_o zCd>B`l244xY-2tu9i0DM$<dDKkvUzC&RM{ zKUws9f34j-Th{JP@k0+}QhL3`YACgO-AeXN9KswmD0@hn$R4BdS_ziSAY(KJK98W0 zdB?IIUCGOGCW^HcwDq0xw|t0JLXyb_9EwyDn>hpfK_`kiY;tYjPW&kq-v-?`LP(Oman-3GPcWmP=ouS)<39 z10*cU6*uuo8I3r{X=W+T|93g`9_02x8Cu`-l7C+qB(_xfP&A(N^1cz}M8KhDoWud% za4cu4%YZ+Q#M#477sqttQQpARz+|EKz5*2}5Z@~?HOk_gTh2z}8PyN9I^-gO-^cteBL;;&$a4j`s%$9@0d#$Iz@eP0 zWT;>#1f0DQjbg>&6>E-)tm9d`;wo4xfvjWtkXOTD-Zc}=1-m>ank7dgxS-iUKLSk) zAHRl#6kb?^!heOH&?{Ne)Ydpk^FL+GU~~c57788@j!Aaen z#QdVInA%Vk?Cg&FW0XD}rHpystx_vB3yzhJk;4vmv(79VA#}_R&N9toXi;4(cC*M8m^61c9ICK|Iyb$Ay&|V-q5WiH;tJp*f)k_m z?u2#O7n+@8Q@K{PU7Qc5zK1YPwX&d2l8MWl+l&%ej#~5XjNAnHc#uAvNSZsl`jxD% zO_7In@zfDjmOtT(ca*MbkPi8anB_r*wQoMgD=klyy?>wfg_pF3zc*-Ka#C1pQPyai z^iLqGq>9Jv2<0Ws&GLTWUS9u#A4o(2G?pQ;F7EEWn%`Wg{fY^qh1f=`3-C0@Cb_xP zdL7IUNMP%)&K}&{*tuNCpy7?W28xG6%_+3%eY-Z6%d%)1GIBBQ^CA%DdW?t{$@Wo@ zlLpZV_!|HSgVsnI1a$x+{{cn*4<`viNxKoWD35xBt1EosG%L_pT4qF%Vo;KM-=HGb zB3ws_2Q`#g(5xFy9q?R~a4>9G9r-iihj&(!xL~MkQNYEQnFf2KXlvWn^#(G6Z{MG9 z4EYG#SX5M$(W-i%jJ@GzlcNK##|MYK=R2BA!QPmUPR->n)*8g(eQs(bE)B*;vckm% zdI)%*nJJ_UCV&8dV1gR?RElHNzQGjG1WJEb>G7%Y8N!e?a_mxCK6jZkS+BF&mrZMh6M& zfXznBGGqRFlP3Nvw*Z&@7#0a$+@DAJPStPTqmkR@(*K%&x6-8fwgbr(Gm2By5{I8=3sj;iL3pPlVGQKuSwwQ$%PUw$1Nwk?sm4@|BMMJw-#l?%n+Ya3R+ zZr^bY6JJi{+)k+*`PxVqEWNY?%94Z4T6X=;n`hphu_z2H8`I#+g65%Z#J^7cHie#t z?LvMdxrAn0(7uEP4yz-=i03c+77Q$G)S(>(ykl3#@I;kdQwP_beR;QUvyp`$0VfN~ zu6L}eVfepgLuwWB8!QWWSga^W|2Nl@Kw$GQC3*lBnS*s6{2dQdVTDghU&CJB_RU!F zqn{cx+Cge%TALsHPOL01cVs^Mwfzys9X! zA^UkPGrHZ8s<~U^b7SX4ddt@%AQ4~&+}H7!B_bIwLtV_T!CJfYwohNYYIEZgtg(72 zTx_*f#^2;IEp6^$V|tF;XVuKQLmoMv3R^F@PE0cweG*1d9Tfh^?ktE}OWUHmRg#d0bMZEjUWcXm;f>N3)IIB@~AOT7>O2PSYllWeZmTR zD~wjzk7&yLIb{$1`_U5y*;SUI$(BqHMG3#{qfcXEF7(S|`d$sTnxi1aiui~s3lM!m zjpDo3NxZK zZLFZ=(34d-(5wc+`!ON`lMg(^Nr3;eigO6Ocu=SH0%qe2EsJ0?ERQ;{aAT}CBfjv+ z@AZucqY*3!hCXJ^ITTf6tCA_trccG!sdo8bonP~5=}E+7@uUnnx=|ZC(P1}09rG>q z=!FUDx%din;MpMFC9BS6)~ar0-6s?|B2RkA65**2#b$oe1FVY12)@B}U4r|l%x4HI zKtO*7#a_l+3smuZGLPc}tHKcbJ~ja{r1hjE@UmrTtC;cf2RU}VuXNbwYOV_{+JR7wNBGeH@a?4_$;~5K-2_# z_vRJsCWGocY@u}Bq<9im?AO=Mx29Lcm1Yl|^LV&tDwx4exJRmF#>e*!jp9%n%XbTy zqRKVO8z`P?q$ipB>}5{bO=rqxs05;%6ucpfSR!tlL%Ve9L8sc%pjva18X@7o^m3DW zsV)>bgq=5(tnE|WqK(g~H@%HB#cA`#0 zJKl(n^^_T}d31rprNab=C4KTmd+d4r7Gf-{i=|(07miHdcv!4GBoWnK`G{o~J0bYs zYk|4lS`7CZH8OfWl!AgG+|#gh$lt~Y#&#`sN84CvtZgV-UmmyHo=!BA;YEWuDO`1I zlG8e>!VDOS&^nbB+A^2@&A#pfiDpZbT`ZGW@OPyNIP+vpo1I=%@pj1CN1)wmGF#Zcds@47$)&S zx=av|(I(pz@t^brgZM6MuCBj;rOubxNCe36pe2^&OZfH#6Mv3>g0QJt4J)4PWi6g8 zT20}@Cm6B1{zd+#xIHGxc$QIegsOc+DLkCH#vXm1+Q}!98hycktce)fQOpWGVXD*I zsF(DijN9DsrG&Fu;`rBm) zVkmnt*JHEXr!Nl%eY8)t^yrh>!yaQsUbE2}heEHdwx|SEZ;IBi)4$^QdY#&$i8y}n zeF(xh%mrXV#q9*~DE@ZbPjrKY7$0OpH3POYm6dE%s!4Q3kD9`^=WRX@h}zT}-l$WE zIKthj#PaM>#H9fNZy3{$1hJ59jcUNB0VzMN9r{WCCgn|wAOVWU#h-jNXmoDXD4s8w z%~gx(x^H)~A6uB!22a*BsA@n9ruaHfg8wO|JA+SEI3V~aRcMm&c7$*gB)ueb_#W@y z%A(zS2%6ggvWK%LAmi7mnrV+W8HUDmPh- zoo#A-t+zJu;p2xNa87k@*|ToX7akR4y=3K50vJ;K_(``>g|$r`N3- zlYC}N7st9qugcz_5oGwlO|;4%|0VuaWSaL4f6GMh$L;5_J*xp~^r_koQQtJ~~9$G^JDc4g4caXHppx!6mcAbQz=hBJF# z6RbcjW_{6gS-1QJ+-Y?TApM`LsGmc@@O0)<+&@M(XacK|hph6vF}L*RvC-kn({7wr z(FCfa@MLz3e9N9 z>rY_#ps%Fh%UdMy1gQp5G|~im=-=c-=m@Mz;IyL!!1KNLXt)ZxW7aklF|4Gvrn|s$ z+y3_BUY$|vwegCfcIqB)MhHJ~1aV|nZUU4WGxUB5abbtWEu}6(T3}>i6+-qO?FM1F zc3|y22B%y1tw@}HWls{b(hN8i*hfH3;>8_(7w8g%j>{B9T}B__QCCdG8dim(;q{VW z;m=7>{4bOiAp=Q^oo+wQ-&TnBik6y_wg~G(K||T=q2KTOUFpPUhQ}y0rd`IYDK<6q zbxYgN^UQcFjb2-KV=aB&Cj*KrK?i6fyMD1nzm#jacu?{`!VO5mFb89$Kc0f7pGwi} zL$)wES)#F&HWstGwZb`HI-8S)GpYq-bR&rqJx?3Iup5XqC?DP`P^1(x{;_V=bCwF5 zOTrN*T@AXWS&F1dXYZ>-^@pZBoE1e!G3;Kdu1k5AOb^!96{TAIQx!Grq8Pj1k>*5X ztlEP)y8gZjC|DZhB)6#G$H%T3ZX;9oY9z2X%JjRivt2Nt_?jH{8Ran}SnGdW zAu})BsDi-)_P6dae7`};rz_0IIxw|LmP2BNNp2qFQpS~w6*t+NphryZm~_~#WX7`D zQVZZ;mY=;blaW!sH<*jHSIGnx&4rf$4cGcYZnFmw5??+nRTq5pcf^1gg`n1<0{88& zVD>Lr$}}3SY+^aJ+?@LPIg+Xqc9o_&Ip$tHP?_bk$qXE@YyhaETk^wZCu__}1XG<* z79^2iFoJ7P0Tj{`qoX$jGYBy`eh%SiyKf+m6q3%zeJIq3lk@x1rDNzwbA|KYBP)oD`-uLp~nV=dVVaY z&c-ME-Rhnzb&6DYvk@_RcsuN7e!`%7UrNUIczG$0Ag(f(VLdL>MH2vUnWZv41! z>pLKxAm}<6EQgj6L0MYhu)xXG?{q5+6nZ3Vf{=e2`P;IA;Hq1HNrRxEgU=1sY}gH` z265NK=m^jr+k9cw&^N3)U#W{$e^BCYS4_fJ4?oSmP{-uT(?)G))1>^^K_ts+g{Zdu zHn{UN^}^{LfCsm&>GChCPmyELU@pV|M^c@rqNgVbOdxtQjBae~s@e)m`TN5${sP3B z7#Za{**sXk4>s^pAEV++Sfs~W8BH8;PIm5SQ_NH^w4dxw00J)-i@@SBP^P~fs!AH! z!MI@A{eM+~T4w_GB&8i>1MLrE9F|Nq6|Y{sY0|{_70f!WdIYg^Q{Su$V^h#I+mBIq zm{Z|4iU_l$1g4m!a`D@*>(MEJGs?8(S-m2=OqW=IG%~d5tE!<)T!#x{0A%nUx((j( z#JY5UEDA&P8>HF>8jI1U4$332980Kr;-RPxI;iqKdILJ2-QGv>r3CKcsgR{qM18$- z;)73K2kzesG(pGLk(|S5$J>b@2B*h+(dx2k^ZQ(=CGRnNQQX3r)7zPZ<}e|tKLewE z0&XFZONx50HB8(Cg@s~vv;`~wER zfD9fJDzSmK{pb$|Z(dO$NI>Ecm?q|0ZAEg(1*<0?OuW_bU?8}< zc9qQY!(aY{^kaXk$Kk~P#2{lJ{`V!>OX|Q=FR_V9y>g9oW64I_W!(u|H`ixNSohq1 zNEElhbIcCNWmPn9{Cr^z#YZ}?o!iSc#8nc9p@Hd{o}n`G1K=k z)zR0K*A#pr#H%0|DASv#7AHc*kM=U_yS7D=n5K(=-;Q^Z|8_D(x)1$dQ$CbSrC3|2 z+z}rPns3S%`DTH$ft$}ZS2lfKr>?oOq>b+UTz_BF4AMR!K9^dDVcLKNQAeS^yfAuW zKoa?q1geRDdieI;$K0Byv?3a+Zm@O+GW9Xou9P~8fm`H078qA$ZTIBl$AzjfUD8Vd zl;8_?RbQVQ!_zeK1z~TYXw7O zujFh$LK5#`FyQh}mKk~R?aZXqRSwR3tbX!s7>?)+-1HGY>NlEM+NsFmIfOI{R>^;S zL#U1(+Cc(3+jr^-x7?FtB*r55Q#mlbIih=VY+xRIDru7Xc%qLZ zdm^k2z4b9a2u2Yoe_rdt5L?9rDL-P4B4k2ed*i5#y-xsZx#jKDuJ-}`zr2+~jn`@v z;5MM0=8BYn!Te-OSw4_{pM&UYPJMNN`9|RfVU>=RT!fA_4lVEy72Luf>(++Pa{pd}75M zm`-ERtfz~rRJMr?dj;>56UbSq zk%g}NEiS=JJ&5|(09xq~rN0A7mFb^JT88Dd)9)qNF~=Pj&g|AL*`MUr8(!F|HBV?? z>c6B!c({-F{VaF$IoUU9reMOlw`EZ-$L(2-%1GH@4F3$I?(KMivTK|Qkia{QX4^Yq z-k8w&`Ig$kZ@UY)%~b4!XK+(|{V|M2G{Y1Hg~}goKn(0|faIsY8YuIRAZfYUKu&y; zCznf~V4Qi>HT7AD9htc#QB%K;1W{mQ_gg2&g>E#gwaq-ToFD37g9iwpzX&ju^?D8r zwID_EQGCgYIGGrcBRJi>PJT}WC{$$Rq1K|>k6cP7_u{w7A zxRkj`6`8-cFjj+hZJ4@F*lI3+kz0L|d4DMiXJ@iWUwv$oLu{mmfpg!ljs81gHws3LUVzDFySeVYoNYglIq4!e=ypE>_hBUobv?%pg=J%LYnB+iscbdSZ} zDF@q9YfAY)Y@x75%2g_}&o%OtSag5Hy&XmCV0R+J|LJZJnYYQ#ivfVULoS5edrtbU zWqijq=!En>DC3^^x>7c?QBcH(2pPow?aX)6gWbDaz&Hso64-6V6G*Fc3`^7l8o$V8 zvw!Z=5mr21Fl6r-ntu!dA(U`;82&R->^2gBWY2dl-wi)TGxS{7cJ8w`p8(q|&{ZY2c7%?7`eVP74F`n1iR*?!mI#Ij8&)j-Dp>AlXa50(;$P$K$)(-a zPIX>_f_DY30>OkbTgKz6+=nXgTbzA-(GwQ)1+do2|1**>5`YP4Lc1%Nl1vZ`bR%78 zE~)kcfQuoBAz$^XtcyX$&UV*8-b(;LiX;eiu&3cC4+_1bBUMz<*%J;x6dDNUP0Kn6 zadi{IQ?8*x0ttozKA#^g)lkz%`gLwLg#JglqIFPi0BiuHQm8#?D|&uG)MVDgYppgQ zZd19eyRQI9UQ1r4l5ZeF)vI5LqL6#LL3{h&R@Ly3Dwu=b5 zo>*QANGaSEiZW8y>Ozm~JG)Rw?QY*JgX|w2#x^u`7fNExL1bSTGiz_SS*~clCRa8V zH<{NP3Kud|OQ5&)$eb{iTHUF-b_5?v2pux%6itfcvb)YZoSW;o}5`YP+ zXn?FmIe*m+RP4Yfz$pK|MClPlY@tRG4>@AVS7Op#25BH$%n~$rd<<@c`Rt`>Uth3# zZ0s0nswkHUz*RSw>&a^$1D`&uCC2*WewXplQ1qip+&*6dSAo}I5aU}jtFjX0`j45x zSpoM>9XNV*{rnp7l@THMwIw#OROizZwwG}K`tw#A?feH*i?yF00-EB&G>MUg8||H0 z2HfNc3P!R1uMvMczF%idk+}=wg;nUDi7AFMRwO>X<4|NTk*hiTy|^_3%-J6?Y9krkH{*hIGxxsQqUdw!KS+ z9V1-3ZQtINP9xC=A9zp{=ygc(^~D$HyWyJUF$;g%ER+WH{%kbLsYVecumYu!F|mMy zmf3Y35v>90;3zGOJ;YZJ8r~)5uu2D-xlKyCwP$w?;Jp;Q*nfOt!uG6JTmGH-yWGd> zARMF9Z}OMgNt)iay~#Io3*}c1mw9~wOA_T{tg&`Ke+9WO1>zT!)ma{mxrO{9;QaoL zE7hdMS{D^Xhq0l7d3YRVx*7!GcvD#oGCqY>=No-Q%;74Xnsr_zv3f7eD9!{={zjh_PfIEIl6iv_8pViJ4J=w=ot!FiAvmd;QDxX z@_ikutzNTr0`@_b@6VAM?le(};v-~{5yR_e)Ca*&qJk#EE|Qo?D>M;hw!rIfux(!L>iIR z={hOm;7;x&Q-O7Nm(2+uCHIMYOp-5$c~U}OO}ElF71Mm8C z9O%edU9-A42Yg+}$KNwJ#|5$9Cge4cxq>4+f7t6b?5wfzzR;o zj5&b%-D}HhL;k`+5g;b?5D@2#bvO1!J_Djwf0Mgm?UAqYJT55o_kN*SpYTF-I7uW+ za82_$xaFq5Qj$|bdpnPg-scQ6qH^~aWtRyRKgHc73>ikfT&#+POz@$>r;ltjk`t=o z7AQuNMp|GZ{xk+m=2Y z6p+0tW(i~278uq+oC-qhH%yY>1wGVisXxnswg%8M(xNyq^i?lj^O8*bV~LjWK#LR#P;v4(r_-Nw?O9{RD~GPo*^-2wf)Lnao`kUM z`$jm>YyngJ|D=2{D9pN#!|#S&vP%VDmnb*@J;>_mD3~Hr?pu)K-xL5C>cL)geJ6GApMjdKcUSG<2CW*y~7RQM$ zzc9~dc=~cA!CC;)x~>-9Cj##Xz>j@URTH}GLZhp51!}j*vNIi^?uiK1^0zH09ta7P zp|!d#h{owD@$WQ}dPKk{l_23aufbthwZ58M-E}`=YSNw&D91Pg1xRJJtkWYyMmu0F ziQPx~E_Rl=_hFPObVdaTENGj?}oBf5u_KY{e!Plg>>AJW!e-@2y4hl&5VrY`uq zhEZ(5o|LYz&yc}o>&>vafw1|z{U<#u*fYP+d@(?Q97u7bR&%Z1Q7+^=YTC~Jx{{gQ z*f`Rlm$6rEe~!MGsqt@3TRSG5W7lSY!ih0dfO}xe2GqNj?ctw$f#yIq5Mv1KwAp(Pm)lLy^+-il5cKSxnBjd z0E)EDoLa1HY(mi^Cu5f2=g*;7|D7O2O64`-UJ; zbGu(o`5|&}#HIU>?mFyRG*lB*K@L;bWQ`}^`!sin5YrX(>t?C8*LHDHV+1v!Vk2RF z5fZIOu(lunr?6lL<$jrJzf2tSzl^B^>6I-WR&4v9sf+whSg4p?TdSf(p?L$Ry82S!3RFpHs`<_j~+Ua28sxHcPr=dpVd5=^e62d!hdLG3;&# zGh#x`V`X(;ceqK9E;i8EGc4IhK}SNY%U}|Z?dh)8#d1Pq#Y_b78`Gm?yJKgqj|X#j z?S9Up+SnH9t|MM2i2hErmw83VRU`)u#RBGl$@(48EUpA^yOasB`;XDcAiK12Kii$J z7~U$#WG|W0G$=0HDpQc{KI(INkF!5}bSEuRxgMgt33}M~r-3dvDs&*U@SM#bQb8Xf=9YE{KbX+V9|2NX#DB5C?66->Ag_$!9&Wd z6&nvk|K}>4k|4eq3Ohp^uhlB+JM89hp464unl>(4axcGtuO~Qr`6Q$imvDTP0bqdo z7#>nwx7W!^jmf!>Tw#Inf>Ij8sx*0qefdOzu_s|>n5QPN*;MV%{zX1O4Tmr^GtWs}4 z;7>-iTNs>fOCfgAw{c2CBIh>SoixvWWrZ|G_>P+5?GUm;1s#n^DJtpq(Ev}*lLu=# zd5`~t!GzKhMs51npq74pz|vRE`Q?zG39BtrJN7ChSD7keAzysDPhwO`-$HQkw{`wl z{QZN;Bpp=7{{mPlmPtzLJblN--JcXohmm6;XLUbg{6+lkix2c)3U=S*vi{(dFsR@7 z%Jsrl^Ut9laj=0jqTN^+nED}yZ*LB6PX060*FPhQlC4`J%IqRfmOpd;{e^YesMY)h z^I9A`Na-72OuE;=3(0a2K|7!~~x{w-*$4$WUgEReEI& zVM8QkH!I0}HxZ=#5GV;~gTMaisXS272)c}<)p-+m9*gb+0PihpEbF zSY?emHh-$Gj)CyGe-2?vn^gvC33mB*AKZ@2JIVCG4%aT8bk%anNsRK-9NYocnzHeB~KHgK!E6zT5H{8r-B1|5tQC+WZyr>o!xYI)fzW; z*!-=O4ODztu4$I`b8v{m@JU^)%XOW`3rE4wZ&7X7R-UOkBp@|>tH5$eZ%PH*r{q>V z1im5)AHCO5$j^GvUgBBl96(Rs)r**Hbpwmr8#@rf21sYl~+)&nz+WxW7YRL`<NNs300lV_H^RT%5CZy51UvL!InTRg*pnpM7W8d?#SCN~K_x)5 zL&W}zQ~&WVlRqKX#B=-4`1lXo0X}#T{v_%X(Bp!5C-DP4cQn8FE4lrLpCbMj_5X)) zae_g4^S%4jkA)+mz5^(L>D^Eti9kIwfFOcvUN1^K7LJBX1AGUOTgQDQ0(ZOV!P`tQ z8bTfm$EN{`JXHFT2you~gH8fCzrY?B$Q2+D z!V&pFZy=9#QiJpmeg^6Hk1P7`0DqXt{|xd!gZ$4R|6dqHK@~)^e_mGquf;d((@562 zSl|ORmI{Wy*f&~8K3-A{(gx|g+7zEB$}j)~ zmv}<84cfBuK+#3~1Vf>Z)M^XLA8KtwqB>id`5H9K6OH*PR1MrV!e?B&Uj={Q5>~ge!ZonJ0 z_V9-}-Z5xXO=(g?A`b)bAxMvP984T#X_VldZKhu;Ue>=pdLe@Z z-U>8myD?S!NQ&r&v7Bc7Nagzw@RMb>!C86c;t?@CG)N2^V4Agpg|EIKi>m%#K{N!S zdT9KAtwNCwA7E`B5h}n?&q|04RQ~TODjsU3+6(w{%P+E2e#vBk37D0RASZLzx`&hK zFllH=pbvhPSW+n&{>y)%i0MC#@@F|Ar5;h>47@Q=ZMkxE z!u#Q{#}U4U-d|T`@!(Bjzf^jo8R&q=bv#eWmT^CSQ0Es1{g+r$zjz2Z;{^XCH>L;g z>nQMun$6U4WHr<>m*GU?d4lk`hZ;xT!kp!Q1O#o|JAJ1hNCc=0GGtDlq0Sa_+80Hr zq$v3LFyMg=?Z&DfEeP3^<|KX2(lEhYZ0)^NOV(%O@;Qalvb zq23zlN>^A2cTIAuwRW<>SV#!B4kD#yGv9nYLqSwUiplAdF z&);=wZv+Zkdm1?IBmT>u-gB?>Iw{pvf(|@0CW(`L`lFQqf%7$2wgSlDkyM0~7k(Eq z5RQN41p}z1UV^z;>UsK{hiO3MVYM%iAUfly+R}9sb4ZD;k-^a2xJ4>W| z*iXb=V?FuG=N*4p7(&Meo~XRT?vxE zP8vMCsK;IOv1wW%LzVyMyeo$q6_XXMKs1p``m%2G{E*%PD)x-te}!#5qHvwV_8&cw zBjmlWq`%v@!_NR*Ro63CH9D7?Y-o8GrO$lV1Rm>Wx#Rq;BN}~B=ukCPUjWA*uX8U_ER|!K#D*Uy+##}_IFPxf^H3xu&T%4CtVnte;~5UHz1L6c;hzg=if;QJ-_tIZJ&?BRY0Ky`o0@r4Vf2AXZl- zQG-l&Fg3YsnCMhD5ZEC1cYo4AV1kO6-0W`ZP^J5R<|I3OWlq5f3496Q%jZPDunh~+ zU5x1q2yVP3cYN%MK1$#^2OT}QgtGjFy)ANkws5li&9{DLKtW?lAC${VlS!*W3wW$> zFe3NJq+-O|{iSKMaJUp3L4x7@rdnXz3bQzHvUJg+*i1slT$VAbE(W6i7(x~_LRFm% z&_K7==}k$Y7W0&1dGc4sMG3$>AYqk8)p8^oU=GPh*I(9n>m$*>99V>Iy%0VxCU^dF z)>1dY*!PD5)uuE-F5s#}>cezY%#N2R?z(;UGIQG$(K;`AhRP!xYL?5J;auTXe&rOf zWT}&&FXpq7skXghf}ab(b@7sVSJlX*#nWDlIqF?SfV14rWI6FzKF8#CfAPGiu2??l ztmQnVc=4Oyz>Oimc24MxR;6K2FoUKVVn^|^)uq7P;}CEvge0h4<`yJ(QV*3cU-hV+ zYDCvO^fX#0OPTy7(A3+JbIJvXo~ZUp$QF3S63kG&ET-Cqim3_%Dwnuz=bjM(3NuZo zGJU#onk?9y=lR!rOQFmWru!sL|E&H0hd_oPc@eeEP3MIOhdWkHs*)J^h{x;P{z$%I z0=o6`KA=5CV76w%op`P)PK6!_XV%veMyF=)+KFXUG^P;h@=Lcnk- zrJ;fx*Nr#Espcs!1K^N-FzIo6r_Y;)2e5ry;A^a4=M*{bE@OvWl$6{$?zD3OC|B*Y zQUH=m<5728nx?;Dr2k4vP9GsdnN*$u`#Zd)Lj?yV%_myTwx;))fZAvL^A=3j)UOje z3%LM60w)_6{G7RuaIlsLMCCbHS7M=_AlqV*D^i!xMS+m_wkS$sa{KK(XQM@O)ARE_ zq4FNmm=Qa||DuI;MI=JYIikCHe%Lo7;aat6@;Bp_Q_L%Cs@-Z^)48L|Hs4!7hR$-$ z4*DW4tXb;EM`&@sVWRZ$Jt!*^crCZ;sDh}c%SU4xJA;+neNb5QPt$$-i z%zdUsg4tf~5$owd*ai~9d=$J;EsWA5_2%mm1-AR#{zyjjlXV_CWWf27F-=DdZcnoj<@ijZ#YFaA276OOt!FcUBF`_8~37>Pr= z<0?<+jisH{ppMw#ZRF08?)UA#;y)Bd6lJM2kV<74P`Sw8epqJ<&(XLYzV*R`aNP~H zogNhG8XDBbIV~{>ut-Z{73Ba0t0+Hd8?t%`?~Zs*k4^jsYH$D?qv?GmT4>vaz1YVh+E7JwE^j&q#q=acp{b~h zGnsjbbzp|w8E*xEBeM$y|0w(2S6nNrnXsN zukvSd$DHAXj|!W74&#v;0zZy+pHmaQV*}7W#*si(XwAv(g2xu24vfDd{Y0edD(nPm zbbrZ5Rf-5ML8DgzwK^d&0;B{?mc+Gt2F*Kt+`tnpo=cUFH>2RZk1X&uE;7^Kq)$Jt zOT@FHY>$M@TjjL@ywrA`8%8b>3}KRkPsyR?a#$JjKjHTQE4D~x|Js_ftIu?VP?vwW z6N|fn&-qgL?6weT`ItT_I){D%xw#gytS7MPXKB%QRpC7eDQ18~BG(Eymy81+V}vvp zZa;5_pR$xsphd~B%p(ApwEf<4=$9H*l~2597lY03 zF7uXfs7YV$pz{o`IgMleHIvo^$WRy+L4eaXZ^2Lu6<@%9>Cl5xj|dU60o%>zOSBd7 z{9jx1ji>zp)TJ6~6*^+eeUG4zM+QWN5ui*u6d8jjrhAs|PKp{?zIjkjxgL@q40kO?(3%f1gl+8=tGgekT z?G1D0&3CYYHBIPPDfh5>O4!$dv>9g>8+pHu8g#?I#|vV_-L=co7)jNJhdeJ_P}2+E z;$JcSSTk;cf#btM05I+*!n$yS?yneG%_jrP%NUAM;`aTm-{kDL^gTkRJUAl%`t7Xl z2v_Oo_|JX#JV{48J!E(K|ru+_#F!n$A%_%vAhyq z)!0bcf}H~3G+ z^*@p=%qp|x;MW#8K#K8!1WS<&V3L@>Y1%t8;DB2w2sRpX!o7Q8L*E#ZHokD3+wAo7 zy**bet*HWF8)Mxxg1Xr$h_2D__Gz;`%k5d?3FtRDz2qaT3!+(n*s!wUx#=^)C2sQU zUGJ$m4ZCEHsh?5y98j*UtDSwkDwatmHkcx@F(xat_#o+^2ioR(lybo!q`O@h(Y?@? z9!%_N{^kdqY(Yh=rk#Te3|h}Q>cK(KdDsEi&{=0KHnstZIBJIBc`h!p`0G^MRDZKE z5!O7KF@!+s19)1@La>S6BAi*})oBRx72K%d9pLIobOv%HYDj}wnUkG2P)7_c&rm;$ zjT<)s&n?&YH{l~9;DhE>Jw8WRkv)45C|rNUPH^nYBN#HttKu zZ5(Rd<2A38xR(N2abhISo67+(IctVBmY2e5PgSsS^+0wXz!=_ZB^V6;8|se&{sN

LdE_np(jX*#V!=?aLJ;15zz$#br3t!H)CPzaO?8z_ zCz_Vxueb2WS~0mIrGScNyR8yd=hQ(^0v0yhNj^;6D_ljBziD2MG8mXPbT2*)k32NR zp1vrPbA(F@J8$)72HkLW=Fbl2a>Vs8;X-9LG+Y@CQ6{iz%@$QHM$RKLeFXv<|8`|7c5sM*%MKVk({>5U z&u4(X9Cd+RW>y>5>{+J{5#?b(H)Fh;;aXTXm)0qnRw@3PtRo$fg;(ksW!^!OL78A2 zSV^PJVo<4Twp+tIx?}d>^=Ob479#dYM)!ZC$&#q`T|OS7(aH1mj_y>dN<@p zdY@s>173j@SxdB+<-yM@cW%ih2-PRO2({WwzwWI7LG5clhptcs|E^a>O3`!`)KH5r zXPR1dmQU{`8Nf?S%O~IuaC!I1MVfZ1FNpzIi`0tpmD5ai77*9ixy8t;B=0W(eM^pY zoIcl`?*iOxlPKWkQ-p9H+mQT~t%X47@99#m^>kD^^Lt^`?8g!n=zFJZ72-PMODe`X zRqVfF2oS?P=R`c25R1gzBs6N%_%)##V;a95$w}6!*{;^AYASruj=4ze@quDs+qA!S zka{4ht360(jPT^gX&pu&@!9&CmGo^HUC9gPU7zY2)lwYnRCI_5zvfD6748HI=?=y> zO<%~CcH2pL*VmaCSi&y-Iosdx$kPErzoQ@rAH1IijFwG`Pv5_7gWPx`!PCYp*-|-4 z@<3*zimpdI-cp;O%8a;_`U^Qh=a4+^tJ7WV<7GDIMWj1t=EJ{90@~HbkO4XNn7FQ* zg>5PJ#_m<8MU+gf&cK3|`L$=}ixxmOKr`uC{K_>+^LeFQnbG)?tPZFn1^Xa5r=xre zr=sI$dcEPyh>yx1FA>le>Q3@ku~;*&x_sMuKyDQMW?~n!rrhABlgIf~e?WPnnNXxj z{)+kPNaNI#woShF^6*0D8$DDmyhDurY%}0Kp-H@W8KX_*7^_<^cIYoPuz+IxJNn>l zF1g#kdf=uGK}<8XYTn%*QkFowv1v;nb#lBl1>)-5<$V(gM+&zg(?@eoE&CT0->h}I zQ3Zkm_1AoIr|CAkNxNKXt{xQ)s=(5c!8$Ge1J9|pb2X5l++HG8=5Pt@1|P@sQs=w3 z)-y5=9Luzm(a%~o3$HNIu37;Zj4L+$;^4l@HltMMcA}!M* zt!)m&z|}6uxCgE?AW|X#TO5kd;YTiZ!1L{IO|bb1yh;p!W-I<-ml3#YqfEOLEH7C_3# zzE%rFT39HTHLu99+Eb!R;BVirB>;)rnHoQ%9(9^Is`v)ayy2aA&32h!aG^+VxdoS% zzK5~?CXswfTnto}6Zs|{W7EgQTAy2ibkUFzcHb>&c56uXO21p-R$K5Ct4fUQIIQ`1 zHL!)G9ORx|TJr?I=F{a%3l#hPCg-Wce&@S67$%mjPcCis;$~ zy}7R%{R1npKWm0{PUYGsD<90cx{Dt~EWU3;{94#}Fw4DCnqxe*)Zk>vR>8`O_fGFv zqF}4zDYOEVE(u2c%O`3XLE;Lg+rVy%`0_a{B+9I|6rwj*v-j-iur;;UZ18!S5V+Q8 zYReC;MMbqg2b3bb_k04R!)*yOeFBtEtsPjPNn^u<==ld2bXf|v`&jqWlv4)+_jHG| z+}|TymKr;^{r~3Q>vf2P+iNC-wtkb{)mt4QaK!;qJuhoG!kB57iQ2Lem-Wv)n>}kr z)UVWeLA0kA?VpnPf%pJL$HZ6hC435zroZ*@;y8m09}GMTB@eKWn!lBwonTTQbk;RS z;MayUCFjg&6|W7ol7p`yt#r_kH}~RyThvVgIB*@q#;=|mTv{&Cbv+9wS~1mq=dM)~ zTpoJQ6%m@Pef|4JRtzqtgZRzWRy0i+h=ZwrqX6y>EQ7zehpScmkT7jrG_c#eZXAo{ zca~`qx=qGhDC|MNsaS@J-@hMsxa}i@c`Yc50KDxvcU6wZx&* zElkKF{v;H{th7r$S=+goOsQ9X_{r}A(nzUyX2q z2B`GD9))AX-#VhhgYE#__%wJt;57`@{~IjK>>gNmV5#Go_5DG2J_fj0HLd3{!L@%{I#u% zlM?hF64TBtHfZUZ?#7hBj}Uxwo6}syuH{`bucO+*+>az2^z$ zs=z}DVv}OT8)H|hH+a=c)3xJnqyZ&S!T)D0i-N%+(zhGz)R2i6XGDcV35Eu@oRe$6 zvF@{1r>PfIst}xi6dvAs5_PVg4H-D{1TRmD>@5uyS6{Ic)~a+8tF4p-K&|GB%AYIKgV9&P@tcr zowru*L+hJswi6B+J8e}YVMd(RjR%$4@a3@7mvq=U2cphYE|xkmbUlgPjg}i5jxt(UX{C`SS!d$sSl~!L@RFa~PE^ z(E-WXuUKTNGcyV7tMd+&JMldT3`-M~cdz0IzY7arXZ$B~RHvDieTFkke@|Hj&wzb} zanR_R@(&8lLLH`@Yf~y&{>KxK-!=a4_P^WzpEu|V2rjYYi2n10IQs_h@TVxN zDpM_G7G`hB%L@RYqeZK$%44CEqdz>tQdE%9eE6mLbD<(X+&u#V&Hw;JEPH8bbwz1u z8g&m>8+#{f06-`%PRH2pi4LK7yQeKZ!?>0c|7)*O2`omeBwhae#f3LN_cBEI zGVI&xR;>>MPqUA5ULAh2Jwn?4RQ@tGkq}6nSWV8BfxwZyIg)rG}& z3op2zJD~Nu<$Rx~cyOG(%@2-^nJ6S3Er+Ny+=MR!S8|xQytQ+tc`6Qj<=a0CEV8^; z^6K1<%wf6CJ$A28o%>2AGIGTuj?9g2*##K4zH9WqD1V?h0g%zVes3yXo*(xCrvdeSWYLxP2Ot%87FKF)cZqs6RX^ zBwtSQVrv6d_e}{Gfy{yYr(y`#`$B9(?oDIo;_ZnSm?Y1>QokVHy9w3IgUd9$^?=mq zBUfm|#;GlFe%jr;))*Kk3Csen ziC~UrAPFWi8vMoZ36rOa7m4mqfpq>cqAC|jPwEM*j&2r|oMcTzpUvHO#PVqtXUVQS zZ*0#qgY&T|8)?l~a$q+{(vPypZqpmTHoe}vdwRis=TNjB z@ak$ncQ;n0UJPSX2)5y`u9K>=z*f|z75;PVx9@JwDN)#E*-t79$nvQ_UipDso1r=~rwmWUQX zS>0DjoHq@{K6%cd+dInHGM9SI-D%6!Advoyu*)9S7?JOb=_CvC8bP+y%-!v%Qqss_ z<#;=-H%rb26i7#_X9;InPup<_47ub#++sqzB!2JTa&5#n0#ctqLWk&GNGC>6R*{5G zBbMrydngkX0x{OVUhZFX-#qmTzW=)Ot>3e9ixblHOeDK|?Z|6R91O1j*v5qb^Kt`q z)XiY7002_WpO1B3q7CT1QrEU7gs%jBVowNE-&D836wZhx49|~aDSKJ0#X}xmtQx18 zSwxhe|pJ^o?-i*dejOJ-XF1G_XxUlsNI6`J9jA(YjVmumY zT|eDou3d~u!^B^me?jW4ml&krWzC}_omF7IX+z?1ok#;s%z}8_@JfB3qR9*m)Pg*- zrb*#k^`6kUA2~SZ}AceX@2iojhs&bNfn5FU{k=8u(4ZS$MF2V6!GHu+hjq%w$;qYX9;@eq7$~ zz!a3PPrpgnLdndIQ7o9vzw7z)L`LNAI3e-3fKK*Ui`T3n6eC6W7BS&s?d{}E;fE>U;>!|Zs}5nMK9X&kG97Yx*OhXV z+saYex~@@h$^EK&gm4lXW!kQWTEEIZ)X6b-gMeMc0WLA_iHML-eD?`W zK8;H%%{cP2Ve3c@j%2ehUBICh16YZSogY#Mri3>ZoQxVZnmQIk?CCxlwJx11BroU9 zOm5EQO)3&5WybtCpr#e%q^v%q`m)l6(BzMzZtN!2y7ivNk_#_ECuENd2eRUrKH$Jq z?Zt#jfaqe>7&;h%>}QL?*`Uee^5xbKCzkjvI7V3ke6u>?zG$G#$|2_{jj_ERmPoQ1 ziUy)1_n>pnekuP$|GigjR}&t|+e*}E(onojDw!Y2h{|Ju2%a9|;IW<{meIu+!zxMy zI$F?$+(9SmQW(U(HPk_J_)JF4n~d_l)^9=6FnrHDL~23<7KkjAj?*vzDeaf}G9HXW zhN0UJZIg3B$6jo5NG}gTa__VHjVUPm)*d54ekmK4R#4wiy!7ZN zr8{HeXmdHWsvvP918qZX^yM-J(M|!BQPtD}vjL9}>~|)OE^De*#;S(D>8MPz&^%=# zwi(2-DeB9WT=CYv$0{Tz4u)Ih!?AVO8a- z$ur8TWs7!AX@JWj^+wWyTX1R6;B$&^NF=HTWei%pJBwSmr*{_p9KpcI@5D={n76zTS!@ly!8|(?7mS_GdxzYt zF0v*7YVovq`oV^;b7w9s_51va$nTef73t~C{StBGBw}H*&^Nswbrn(8tev6U?c)8l zlj`|Ke7>P0VjD!X#{Mqqu?;%+ z99fD(*q?>dp>mfV^^(R8q>C~cz?g|R6@~d{1cj3X889$dNU7sLG-nD5$22szs`n!X zSO>GfK0J-4Z3+Q?@WgDr%CVY$Ll}0<@WBY|09C`BZB`Ug8w6e z|Ah!*bpIiOe!v4mH0|VhA{ep_GO46GSc9;?ptOvI%^_ANsXS3T>_t@>12c2LQfBiY zQ?q*+6F=|NoS%iLN}&K()9&YJ4f;dFuS^a`g{^XuxJK%WB-ud$M-;Fjo-Z`JxIj-F zKKSh#y!q(W<;ttITe5X|{|++sSwy%o^$9LQZKT%iuK+KAJG?L3XcwLA>L64 zrthYwA~=S7smwXu1wpRV$xbqkUm^c4!W@FiOfg_4Y`=$Wbe?g20KtzRC5C{`DAD9Bhg0xh6t~GtKg)UlhG= z8889A?e&+2<3%beL<%8~o#Xd2MxEjEN{|#{MozKDojJ1a?qYc^(-Cwe6IDI+-;AuN zg(G??{EvMK*Aij@$VVjWZz6ESrP4^==TGgFt0ka#DAgDbbhQ+3E{y1K34Bk)g?jE+ zUC2!{znJuQsz)(vbETu{z`{?1k?1Dj$jF*F-SHTo zFE%nbysT|{5;11;dc-ii_E0Pj3l+Bsxv1j}#&S!qruHvf3P6N7yK*%f+ZBHIsWU!uNtqiR;o=8`hu%vPwaWgfnTb=*gGy;6hm zogpC&w|hk!X>$rE3al{nS5{1Ue-q-5izR&h1z8N8kNd5=(A;}OMER!3mN5+EXKaPs z?2`V$Wyf_U*uh`xcuz#_rnoSJN?4VRwsm`AG)sONQo_vvwMGxQ98;AvnbS#2VtQlS zleweW@t-kNy|QTAiJGK$N?xYd!CMq8>E4!rvU zOPKFp5codl^!_AHQH&CiY#Lsy1;|_erFqU|5BFl`r3{V=`0QAQ-3}Nx2V}5+q&k6gk)#F>9u6jaP&gg%lw=Pq2TJ*TCvDqrO$EaX0Rp z_(y33vy&Y5`V8Fj@a~6TF!>;4cMM$zJk`N4>vwPE4s%^O5Iu4_ga z^$#1;i52WAx-)Vzu8pdDJWdO1pX#4$cZERGUp?7 zl7@lPASRwry7ou*i@r8@%Xis6cq7$QW4Ptkd{=_TB9>own^1R7WSX|d$pYAIuKX*0 zxpf(Vl06J4RcGyPPR6qbNG#21Fu0RuLB6})c-6F-r>@$m4#w!vX zW1Bi>9^ZoKp9U@ZB8l1@o~ZcfI$Y^Micca{x77JyXox z{R@1q;x6xf7&)#;Lp2Vj_HdF|JE-EcM$>2x8UzScOd_Z3)+!smTes6Y z#K+so>)yD+H?p|i_x)(Xvx+6*8HPN`DLu-AGT!sZ)FHRa)KtEoo1TRBWK(Leld=nn zy@ycaH&%2la1k1{M`P8f_W%C)cIx&rX_D8TFfbE2X3_wy#$U^Vg)=m?xvf~l*KB$Z zj}VVGOFMcct)tVnU=W?xhtZ{(KupN>c+apR0rF3u%tWAM++O4znc76{>vrCl-N6u8 zTK#f5$R(=SKG@REttydoQt|tNuG|=dj)IF^m!h`&8Gvj>o+QUZ+3E~jL}eDQKd~FY zPyOGk5MsN05TYV8)H-?v#WF!4qi$WSmJ`dVm4jrdA#kAmJ-wk@K4wpfjWnY;>AuR+LU3)_n<;P9idmp3T+OrI> zW}-f0L#ut~>o+M!ZXhOKscCL!{6olvfP%bqDL!pB7v_T>98a~KK-qOXGDCdrszJt_?F0RYdY{#_UV0{&e8DGV5Sl-m5SFz~;^!2b#Z|0@jq zm%;#_@BdX8Fh&W~*13Q&@g=P)q6&DS8fSu(jAOhwN-GQYt2fH`%G=pfyIIg3d*a*L z+YZsg*4YHrYawB;0h%9Q)F>(_Fgi0O-A(v^wnJq&>a@>z_WUv}EyMpP)wBC{-1qhq zL`V{hi;IW|{D1X>N{FZodzaWA`fi(tK}HByOE)x16GJMD%}fv>m^N3!jNvIM2@pkH z!zGNq2=gN`0XoLm@F=(396Q)PXsg_W(1{6`$U+v~8dgt3fcy@ZQkjV%?@1jIlg#A( zI?at9ckirkw89PW4H)TXX~$DNK`kV7yohfx=vGtr2tSDwKFU+PI9Paw!*cBXE2!AA zA=FKt0iSxT2{*0YFU^@?PK0>N> zexZMP^);SzbtFd*)r?%=!0`3Dt|QW6VQ7bLzvRT=Aid0fa7(^a#eJRsxR8C2xr8ly~2EqD}Y260{5>YE8b&M%{hKpvI zXt1_Imv|fo9l%?k1F%Y**YY-g2^;>79oRWH_FbR_)l4u>OMMK^!!Cg)@A#x24HO2! z!R1LDKYv4JElqh9?EDk6;Kk5R zwfI`gC@17i_*D239lROvdwO4jTKk$2)sF(m1k^O)JK){+{6yy17Eh| zNhdqCw>o)BcI=7dgGP_qngB=w?3iH+AZ4C;ug{!Aj9n|ayn#|xttlW?k5{OgHH{ml z4^BNU4e@^Go#=hifkGa#?E;*X$`x-6Ke9$AWe*P~*C2KcgOK3SfOw|3ma6;0YF(V4 zPoFV-dyD`~I$8jVRjfMr4pe&lUsaw}-AeUy{60wyC zDy(#Iwy>MZR1ysswzK6Q5KN{cVMav-1;>I@;<2ly^>q{l@W7Qs*(@95(|39UTB4|+ z^BBM$%O2ZaC9xzw9zcNeCTR$j>~02Bc7=zyixXPj1D>0O85B**02+VgqJclq(4dk6 zfO9%?`kV#jyXS$zjp3Pul#Mb>!4C)lmB2O2wqDUml1l+R-R`FnZ+F`2yXU=HAIsG|ffealqFek{L>!I18EEpBqYR&u}1LQ(agSajjfgeg^W`r04 zh&A+~`$V%Y2$BN0NVDMmKWggLm@6c?E`?~vhc;5t3^`Ha(Z}+km8)L;{;@5Vn|s05 z=<}*g=W|*}K=`Tzfz8LQG(Lvjum~UL#IGMw-UnPr8np|eM#sy#`H?FB3JA2kClFN8 zOj#Z^V`q~xpVR;GL=@6kMUnW)mAXD58=TPzVhT%9T{$Tu03EY_gJqGji_gnMI~(Tp zwSL|XJSSv0Z;eRKIp~QwB?fIhed-o4gS>yehX2Iimhoib2iu-+(Ch|2=venNIg5!d zOs*=ca4oid(t1R@ztP2+W+#r*!AcWfST#KYdy|=NvxIV?ZXL@h#FjS3BPMWK;9c{F zx;5&SBE6e@Lg{(MO}G1cHQsgD8=31Bsjufyrt*`lvkpZ1-0TF_w-Vq{la&y%aCb4? z^LJ8!T~eeX99{5|AL$<$LKtGc{{Qg-(-xVYpqI-4zUWy=XI z;yS0*y^x7+@Y~r~4Ye-=$0a%P3fjrkFP3>^-#X49C#?nJq^Wl6XK)@9qd!Id)0+RG zHQ($VeeRVA*XvEaueqEMcCruW8bDcs0HX`M8AZ~Sa;C{~Mjotvfb zK)N#O`J#`vOh(QZX@C0Dai`Z-0<$!F50Q7NCU!2?#>7U$6x((@oxX0+jOi+Q50?^j zG+d!!4gmrrcqp4B_p8Zj>w1uBv%gA^(sr7Ak;z2wAKZ+24?-Lw%ESMDcJKU-k@bOj zR^$qc<7)r=%n|cc+XhFor}JXTGUh@b=UC)YGTF0!k!=u=CAPXLz8qOJ(}=Xar4nh| za>GeHohmV5hvX7qJhmPz%5PSC&1lK`91cW!mF~S_cT%l*y?6TgCLIH2Ssb+$ z?-gcQ(!8-)H$~$Oe?i34dj0~rI`VCITzSsA4kE~V`*#ctib`BcA(eW;obH!6) zkCOsul6wQ71u&(bOl}M!pE|zUi{iSwfc*|Iq6K(;feU_1=Nel7!J4}W17^RCiU<2y zO&;0q)*7gZrom@kGKNoMph#_SSh=If7>4LBv>F5u0^~|kJf}9#=9ia}+0O#;0075o zsf5VGB-aE$t@EK;_xwZ$!@EB^%=^wp*TMda7#N^p)R&@d74#pH3(vf(7YKv4d!)l` zf22v@nPHNy5X6rpVovZOnVg(J-breSn~9D@hiR-pAi!yNBx~7h#0ZZY7A9{GZ=ChS z#EHgtO2-M~`G>+73;F!waudDv*$8aCL!QseGZ91m9+Y*Drjue7qoisKed0K7bh!#N ze5&l0DAdvRk1M`$6my9Ke6<~a6m2bveD+~FZ#{9h7X3hs)$AI`%{7f)fEynb1;c=m zC1k4|bG6o&2<0Ws6Z{KY3 zjYGxkg8gCK`SZ!+ZDT%xzVA`sw(H%e=7x~jn(KttF3e|P6oJ$W&#cWwEqaureAhIn z-F9@95@f4UUjm;2n%+m#7o}|M=&7iM-DPyDGAL*|5GNs@9D4K_wyFni>>!h`UzQPi zI)Kx`;UZyVZ45)0a^Xh@dOvcL*_qku1McRq~53e{+-LmieKL^lBGr?Jso0Ixk2CZPZt9G}EZCN>+nyu0 z`?Crh@w)`RIoGt#6tuBL#JKUCtoxFbbBU6P3f+KJpSa0-xAr3pd{dLMKB8}0Xgt70 z?_><%R2q76OSAm6A&1fu4V+fjeK)ws-n4LYRU-6;0IdN7xU4^HWAnv2*w3B{yj+cF zQTNMQ-4W2rmXzO0{ES}ALPR-`l4`ETz`_nKrhTLG{&=2s1F4x3W9%cwsyj8`bW|~3 z8TU=a;ecjwg~Hd+vPT1>I(6ZEZ!Ia~O$p3>nub=LDdw9by<{4_6;UUL>;WC9o z;i3nB9^ajYlWgbfN*Rpj2o8zrkp4E(9LI)&@OXd;mXUtEg>EiQRA_BPcKnpu`fkBA z;){Fqk?f35lC}(Ud=IO|t*^hx5UQ7>_hQc)TH5>snLH3(Y$sJ1So`V^M0< zOKtMuNbXQ|&POayM$~MlKpNbD<^? z0W`Gj4e;q*_E|jYFEj?Vd%fpTbXWnljQDfJD9?8yRg^1{9&e-=Si8_S8~KnRh(6-5 zpu|q#B6^9W#{1XEpf$}2m&$9b5PjC04#9;bi`MHFeW|_mmS`vQwrjnJ^qYD@S zb0Ev&D0f)%Fy8$;9I+}o`L#&`?sU=XLqCQOiX9p?F8W`6c^zV8KE8LQ84OGiTrmhr z$joeR9pHo`k885RNAqr)G&_pIfFUA(%6R-d(M52(tsnHg_ie<4p?25|`tn!iQ>S+& zN)k5SJ?@L;!t+fo@dzvHy+)Yy4NFy<7h3Vz@q1PNrfnTNevFuJt`kPF z+FRb`nJqL=rYvbn_~z-f+C4oY#@s_?924JvSaNb$7V|>nX}xEzzC1W{dymzT07yW$ zzlyv_Q=8?H@m!Pxk>)c1}mqR`tx}|~ArJfgyO;Mcviyi21MGGg3x5O52 zQsmASletz8bk*LyNktH}{cm&=;~&@d~2;!8c(#JA@u> zU>mt-8)RfBe0aQ1)%Di*5PT>ik>@=8M)$L$+kC+JW@Y#}BWiz`y+e{mCKWTj^LvUO zaq-MUFAW9=B_JtDnIa)cpXPL>wQdXRKaC<<&$cC2mkg?%?1hJBJo)&!6JZIsPvDde zTT1LsDUn~fr1YihCjx$j%aQXwFl+ws<(zErvgA&mt?kYB1z-AHi?n-hv(mFvd(|Et zCG|LhS8*~$my|MtGBnF1D)uTg5Kwd|d^Q^|m3HR|;T{WpvY)z?M7w?_GqtM5eK;M7 z3>+oq3%M$c>iaUSE-cntfsXl{)puNP*Y8X(vz+S&n^=QZtHWgFzvW9kb>m+BMC43g zyo5($8v{>tZm;S%W5~-mzH^e&(YZc6s!`G1CZV09lyDUlx^ukjXJF3aB3xRz$7f8U z3j2B&cXSa9SPIa7==8b%6|TU))yM(wd9%IALkB9nPDceqIsUq zZ${(0=g)7wEjlOXsGe*#`&bF)9$Q2V{kvDZgVFN7GwP}9>9a#9R8(xbHk%MJ=w)B` zO>lGdbsWDTR$2z=ed+#M=j$2|7XfIbVN288usB!>Y%|n08e2xm@+9CoQyGEtdvR&` z@obEL=jM~|49ev4k%B_+4bA+?W9Yoh296w8<-*&0jap1=dQ)BM!04dox`aD1tK}4I zbIs9$S|0#fR8J1p*IjzQJ;ds`8i`vgy}>uw?*@lHd0U+Tp$Dy|(ozc$rjBI>Z)B*d zWa>3(b|$i_jqTY(uQL29_y=q5t~QDaP}(L5CzykzWA9H-Eb=h7HZt5-f6bCW!XYZd zfx&b=R6&qV^EyIGR>GQnHHROJuH)~2s#3zf4cA1-U2&8gG-(X5up2S9b8Y}-0GUYCi&EIr+(GM`Wc`Zhl?NVPI#++2J zO1ebiDekL_E)0&<(?mYltSV`26Ov}K+C(p%azZh3LS&Z9YhNIgwD^v^#$HTZF}arA zt_^#52i92G&%bA3-3fV@;v3djZ^!CkxP)r|yX>Z;qf1l&HxF&&~A!}YL!1F=*jx&XD@<5=aq@ojU~FPsh?udCI_^sC(bPTIN-`*Uho1*S3y+;JUrW@-aS zFM_sr{*&r@{pXTOf=~Ue*_#z2_Z`EnQ{zM8%JrIe)6EPBD_2@SYTuW=9yCfz4rd*x zb^rd@oqL}gH|QrS^DM_z^wTLUKMU4#e~s+iyXb~(EQV%{Q~1Xwzp)t65l!qmEZy9t z3*OI5sJx#s?F8L=PZT>`Ye;*#D&}5(m|jV4eNC`IX$%3a9?I~i*9si(AiK2xM$i_Q z;G!ZW#MXN|)XoSVYeERs!%Ra0cWDVf(WNwr3+ zCshT$-8q$do-!QU>!Q@XYILVS1w;o^{oEx1N?^j62#F=%&E1@aF!A{i2JaNbal9ue z+f$VIIgnV1ibGD!O(9b;E==W^Z^7k!-Ubj-|ymEU##uY)+HStm3Diy z^YrW&bOl)rBshJqXW{d5B&&`kmHK&-S3B1d<>uvdmlJ`JMv!E5s)SK2`kZ%JD1I z5>vlhSA0hX3W17R+6Pz0g`YL@*d>462>Pn*!GoeB*suXPAQn3BW!wZLQC6FEzQZx! z?_?>asYH0@lneIj4J#%W?n`zTuEQB=_6j(etl)P<;*SKvw8vaG%l&G5lRHM+4vZ zHu?ilMZ?czz|37;*6fZL(jrgD_HUN`-{G|e9-4>q3B3Zf>P zRXQ2IjaNqp0hIuunm!?8J8{8rVY0dy<|?I&x&ac#NGQSSmpI_i5C)#dQp`07+Qyew zdVzha&!@Q)ca_p7VY0H4vbM~_IHL;OoO)#CtbLl{2qM>z4=Yaim+em?JRK*5ibvOS zZ!xFyv@hU8^Y>`~>?PHd&ewL-5C2{4lOX8RwZ;KNQ&E16kUMPl;?$z>q2H1c?VU9r zCH6=9vwM{{3C{&OlIh0=ahE-}FiJuHiIEJg+Ivm=CG z7xF8@9iN|@zOoF zyXR}wLz$o1QUI?t<4Jx(rb;v4&u`M}8ZzXoNKlf1$UEf_#FA*t>HC8h8oJhbXOFh# zuJrinp-QV;7452p2jaQktcRQ^O?Q-|Q&Q0-PCNa>=v2e37jaTB4wlkC?G*dGkNkzq zu`-)J{Mq5-Q|o)M=Ky~OIumTNaDfXT=cj-*eihd1_tOwo3U0VN`H zwSNm90s-m+!maGtDAehKIjV8ve9pPJ$CNfYn=fP^w!C{1M!wwOT2j_m| zzLH(16=-T)PD8T(umiRAy^t#PyWtnO{5q{1n&<(BgiHSUXh$PVXv4n+LkMoiMW{Va z${-|4g6?<=#or1P@nqm=k=OIC6_CoPbr`^Z}UY8K-mA#j=I= z`w?)funVBR?F1di!lEg8$ygVW-T1deTD>W%sx-P54-q_DroG8b9Ed0aP}*g(d*;b4 zUy-S3#{JO@Yqbty!G-H-JEd8maeP_%sQq-V|BIM^UDNI3`EE4B5li2A`qh+ekVXnl zOK{-{+%t*wMfU)HYJL3OOUi00Yvm#r>@bM6D)8+c+S=DX%e7BTh*TFhMNY4%x;OQ8 z1{?>*o6guw9^ZvoQ-GGuZ-KYC>s>xTUjxEy>o#-!LqjSoHfIb-G+_8s!WN%%QeFMk}P?BP|y!E!{Dg$v~d1CI|Ig4_nSxgHspm0Om~ zXFuhn!m(kVF2MEi*mZlUReZPNETqbgif`UsjLisoxAFjH`QWA@3)3T7Cqx7JDgjy# zxVab!sIt6)>}7g;jOob8-oJ~=wnqB)B080X1@*uM!3FczE5X`)-T)Rj-$XQ}HH)EJ zgR@6C$A?g+iL*tyh|j7oiKk;ft4I`M1KQN?#jkHody5QOYcqN95+85yRLh&CdB3;1 z@?m9v==+=m}I#i@Q$U~_l`p#L0=DfnKh*8tYa*<6f?&4i2`qv=x zlEq<@wLy`GMX8EAIr!x7302*dS6^K_nCrg?N*W7orp6fzrcDq$tiKC;w^V)_GWt}+ zW8c}=ku5JR6N8L2?N8EeplGHp#-)dyjPY7#{z_a;;CuT3%>#x+J<+#;lptM0Z=Vnq zGxBSD)9|0dd8lM&HtS}s7DSKw`Wh5^t45YU?YJ6D5Lcm9feBMo@yPbJiHDGkw*wd2 zJ+%s#>2JaWB-KbK;>Ov&&eYbw@+&a|gu&~K=M#EFT?;Epz)MAzZ-#id(=yxOS!;`y2d@vS1qvHGk4Q&l(W^rlKwQ!GPbu} zsxE{#8Ab>J4_|A2m{8rT8W(<8tn(=tR1vn>-%$nR<@qoLA*!M9f#?SYy50S<-vs*g zqE_!1oh=(<(bII38wuaCwKv|y(&q-so(p7Aq+PGLk6SH9PtS2P&=KrJQ(@ds@iCQl zS-xm`@}=x`pC~qy>9%@}0wgFz=@i_W6>?!k^Jy_eC@*RIC}gl*$!|T<>38zziXB&H z?V=^rI7^o6EMssHMdCxe>|TssG{IjERw1#+W4!Z=$;tdetGU2T&GNxYB#I&Or-c5{ zcT`I~b|yb+hNqsnM~M(^hq>qsQN(d^z$0@9WyUA8ANT8H4T;I0=HAK|ihq1`O(H-? zvm_Of8w#uVHrk7_d#rPpcez2kD!uzedv#bC2Q&E?R%i8PmhQ(^Lx?upho6zMO_uUy zk5RXs$KW{kQ@)pDjR-_f546et^c^Yq@p3uz6&Tq+e3^LKk84xN@vr6f7fCt{Zn!@v zwTa}UqB|e>?btPZ?ql(51O!4GO|(J9Ihg6$seV!JeX*V8v07PH_DmSa-wSSfXPo)o=BkfLS=cLfCjb(f$?6O z-`B!ruL#2p*|(z=xszd-rM_yn6Qb=jD0DFLApQE}hAwZtS8IrGUS&K^6>D~yfim8x zMr0Av*+i(~p#Qktaa86`Ui}u^4`+mmV}eP!Ay10CdqAeG0&EUPVC81p`_tlRtur;7 z;>x9vlCPs@{f7iJeW{REEHxaPZFk{jwaHIQpLXO`sn0pZzTVBtx>tj!ZD@h-o~~2E zue;F&!vG(fK{9QjpDm!>rG?E}pb~oo`IV|XN0aw;8;v z!;iw|s&^1uZ&h^E;p6*yzA^Gn>cOvc?mn%VwkX7X^I9v=shk-!_e9P6p-s-4DD`w={DrJy+e(GF>ZsY7Na%d5=||FAV-fyTjYLp2YNS z#jw{g9+eFuUM;rM0@c`Sl;(8!A2 zbDv^km=i2oaUJHSGAW%pgxG?^i;m%z{vPh5%U(=owmSu@uo}htn3WY0Y^eSa^$VYU zIRUAUFD7c;v7Vu(`-Qt6eDdwf+<==X$?CtdhM<##KtVdrhL5YcyTxofX z(rcHap~^>@Fu5k@&@?UAm;6;E88=;*ak!6Xk=@(8fS${i5j9?1U*;-vlnf9D82WQN zQf^8~$oTz;c`^`06Ky}mvfUbO%4~|;CUEI+`uJXcV%lQJX&`AJLg&3jX=ro*<1}NK z&4jqS2xq;m7~vZgqR$x{!?bL@ zeBXMByGZBA*Y@7dmP5&@S0vU0Wlir_=g|Af`E;Kwvwy(dsff$;61~mQbtP1O?H`fd zDUA^G9N?@-)fG8o7Yo-HiJq7*0jEAI>-VyY>&z_fY>}fH$OmBJusKtu3A7LhYW@ zPLv?~ahDDxI^0R{oyv$_+~yX;pzA9Z)R#*Q>+{VOPUZ(TzeoiGocXs_>F-=CLe=oL zik3jrQJukIZ(~X=nSG!1Ae~2%{ZHUuBKC4(?6bmGLTF`=#NDKRg9o$F3;ol3)c~PfoA<7@CtRae!9Ezms)U*D&qU5j~>JD(mieW(8kf9 ze+fF zYg?Yoo>U?T8&V|`3w_rFs-C0w6kbogH?m#G3yHZs-^jv;TPh)u_Q}NiD~3PciUzls z(EYZ>WJ6x)Q{349=3ePDfW>9Af;W(g3T;s_n`m9J2(wwx<=1F1$=l5Mfdafnu#zi4 z0F9z@+8V77w@dWTdqMQ@Sqf92Tv&pIIq-GJi!sE3J%`Jf3;8c!`jpv7Plw6)Hitg* z=5;M+jZVHw4Hr{#Y%7B7J0H~T@^C!pEf7aV7~SG3VJeTm$UBZ6Ui*eOr0`mNgQ!b> z57^W6pIfOqm%&-`F3ljypjL<34S<2=Sq9sb(+?B&i7__*L$f2d+>tA#fvwU?rX6sMo8d;q`XUfgc zV_Y~RyLJ*DX0!MrJ~|O2J`LJ|jgc}>U=odmNk|mB+E3q1i9w9{*0viZucpqhVK(2OjzV*SU%=!2J{lj2VoS@w+@&Vd>JB-%DfWNMSXeLtA8ys{hSP` zpiu^AK3NB?l%+lDaz=Qq@tlm|w8 zF^d&3@UO(m{CuHL!*wT;c0g3`m4yfnM?6WFKOK*M%3!VdM8^OqD)`mpS@Bx;lP@yx z+9*9t(iaB%v=82P?NVV6VMjb1&iD(8alj=M${(|h4pQqYkPN&inFWR`hBLm(y#nWi z#0fdXL4JMW`z*L(d!K($89#`*(+oGK2B3g_02wA+IDqx}?_f$$!uxq*>Vn!bp^N^G znqpZxurW*=3)3eSN=ss`tE-$NxRzfo%(fFPC40D}mah3LvFwI&&rGC^Z-fI?I?bE} zc1W25@Q(qoQV%MPL1zz_t$%iO9PZZ>uwkf)-XJ4tdWXT8!!sQ9kGTjnMz5bN3;Dl~ zLtzd6;ajPA6Aai5k|E`h1g8Pyk@xwoZ{DXuVC<2y@;x*SKg;zmf=ym>0}shFLS6ZH zK-0l7LhmY{-D&@W-`Z0f(>;D{vNSd*2(Sz1DmR4z zQAQ^uGV)R3H}1gzwUFmyz)*7J;zIlZ2YAwpS%LG{ldZ6kN(^WxUYYqYHsn~lvyj)Y zJATIK1EoMmq{K7aM@WKC>7Lm`u8FL)oP~3dKQZyc8lkF&06oCc;nZ=M#*yN5^|pP3 zf`wE^^Hs3H5)3F5x5)gv9>nqWYUkXF$-?wN|NKp2L&Aw?>$8uC>SJ+Hg7TltEeQDP z-wOWx#6@@~;=K~K&E6#|>idux^Wx_#zqL`rL zqf^YCdkmmGQqlsk_S0fVrSZ0f_S3LFAraqhXhKP34@-u?^1kv58mjOWzTI;gba?-e zaKKUXhOo#9OGX?E4AWZJ1^n^yK*kE2OU6+>$<(d2J?`@etho76Ch31Kvzi)+MyA;k4WlIP$83zQ6`5Olje zy2*GIw#lgpON#|BOAr*6vwnRcCx?J(pApetr#yj442u2y@}n`9QUKJLk{pbYw#nFp z1?Hk42j?Kso>2eaSehdbs6|avBEbG%8Y;Eh&8X(7{&q=nV z^GODZHdO=8&(2%y4%XJv`P1(iq(TGZz(!^eZ~v<&7>Myt(N?e$kZkMYI;8YHTbWl(^-Q$u*Svh7?c5(o>)0jHVfsM!?v5`2V^&&51U=g)r~s7X=pjeXwC10Fc5@>h>5lJ(?{7R)=smPLwL@lUHNfj=XO zfnGsPNrDX}Af{I{W)sH~$jkoM(Vi$en+F62n@cnVM!*=81bW2|@g@8)O{AXeKSZBT z@a7NMGEAGh zB|HZH(>+Z3#RanyloK=y91%b~ynSJ4bN6&lr3&_1V9tKUS2s7-=Za56Z^Uy;! zYiAsB*khuQcE$AWkwJz~SW;zcDX1p9a>J}`V$TN1N5xvT@rDrPT2c|um69?$0Q&GO z&i-d&I}zY!JwPUe;%XU=$tDbX)CDJMA?AP}5KVbPqP*%yL@IXBudc1Z0l8 zqnW=z66diKBz`>tsfmLz9ls_J>*NME?kEaa9{B!@1{(tI_Q`0?nK?r&07WMjhDT+@*;E}2In0Y9y>D!upncbb|KGS zc6nBLW{sayX#4L>!7xE{Zdh*+#3q2c1K!^TQYl`2nploAUKfEd{ae^(uDzu~SN&uA zhh%_uz<B>n~N{D^*~_)N&S} zjZ`>30fX%Eho}WXf@+0Sd>i{VSOG3C8J*&v{QaS>QX5AzD_$S2Pkn@`aB6LqNxX$Qx9;qP8mPXPz&7lGh{{{Tj@e_($M!ni8Aq#LDza%1 z#W;x*`s0Sr_6hkv`s0pq?e_+oGh8CtaQ1&0=;Hza0-FE#fj$u6&-1T=zH^W1+y5Tu z`|p9i{~qZ3?}5Jmhk-sQ;O~LH{ZELQ`WhE~ep3xs%eF^5ZTMITQ1J?R4IB(GuCn?* z{Qc9+)5>W>0404ch;hXDb7~M&R`zJ2_Mq)*VR>QssmXzpBH!L^tId=1tR=g3csS$A z{^nIwMND4Aq~|mHnEB z#W!2x)B&Ub(_3PKty<$!A(oBJF9Ruvv{Eqyo@7+Ylrt1c>WxA|uRIBUslGXWrz%SQ zIe5?ryd(#r#)tz?V?3ovFo4=liGEUbtS!H9S0gzkTA}SY*)2}Ivf#-ncE>;@_L+YI zjN`?jl1UXvNT>Lq^gGS7J9P$}eESNOzU1eK8p8?CV$e0M7J?9>TmZiO@)3S)yQF!d z`b%1D-2P_48CPvr8nuC9@xY5y2_uS>0OWXJ!DO1mtQgLPXXO>*xJX8`PkV7@YAEX| zhXLso=&j1D;bg^6jHsU|`}lT_y(jM1)w`49u1E{N3NcB7sG%V093mhMTx)0ooGGq# zJa*{jgD=0^fU%R63_8yvsCc#v%Xd_}PPBNEgWNV9yD4{u;j`##!UhEa=VmyF)~9{p zfRYK@7k`u%*I5klNCsXkBDxIixp}tent#Wu!aLGmj!c+=d8r4d?OV>w=Ezouu};{h zVz#56*#&AdJBz+HuQNo3_f>XbB@+9?PzcsBBlw}(5IT!ldeE>+qGQ_FwbA9PBROwv zZQ;Vmyow8}09Gj?BKNvDw-e(>Hu?DvZ-uHH@16Is>HU!ugaRak3w-%7RNMK1ovMSn zkEqRu@0u!yJ5B{$3UbUYokUMfzULV1P#%6D!^9qOc^jpMCH!2!`z6MN@*m4y zhIj-Q_Gge*2~_Nnb#B1%lsYx4Ji8iOjz{^`QN=s zKk9g6T!ic}HK(`R|FBUTR068<5G#RF0&RZSDK8D%1QPzo)gXpvH3z?T zBxO3pblr6Zaq966T>eK%Y@$FFz;qHcVE${-5So7_ydqB99((o}V2S~-;$&Rt1Gs{; zWfZ(0z`6hJH?Je{H{4(&g}qRln#Hz*3lp9T*=;~nc3#(b6f|RmhXy_AW8Pm4n09T#O0KL&MJWZjUx{n6L z9P(|2ITo__mkCp|se%k?pogp&QsmA}Bz9l#oQ(5tZcati=m9pr{3Nd{;^rV9AAA;i zha>;qBO9EgfW1(dIcqU+2d)AWa|F_K9wEa%o@rV7`8!ud-80-j+$2@o{%c@iQBz5P zDlk3GYGub9_*w(#0oAWeixVoLhDOalDqf#ZWWgs zhkyzXFV8b0Or*P8cq&Rr`5f}vJ_?-LLU(?W`y14WXsINw!Gk&(ioY5@-8JRf@~ zuG)>_~NBZgJ zd-8C?-)8bh1(JA-=^m0igQtLv1QR?MVh`E3k8Ho>{8!?Bf9VuCKXA|&t)c$=0N7X< z;T8JJbp0+K`-F(~%!yL|U+W;qoY3D$$XT8akjT?*nfEp04azINQ08B zkd%s&9Hm}8NlzX^4^V=uHzfM~8kXIXZ^DlADDBERMDe%r3HnoUuuBif(l8|tbLEac zuU)bjTFJrX)kTOe8YYqEin92dY#cNPL%CYz-<3a`Q8o}KF-=^Jzw}6Jwm;etKM+ln zF$ey2M)Eia{X+48Y@|moZu%GVqMsLY2Egr#K95M;23avAoW~FDbZ2ybF#u5q$xBBZ zh>8`0?4^aj?<}Jk{Dq0teJ7Oc@0h1sD2B8D@l4Ps7(EbgfwsdM$_$hb*y0dPeZciP&fZVtLAE5{0bSGkFrp`;!tHyS}yS^o#r3b zz`{TpiDYIC4vpCFyPpBt<}*(&3s)UMg?_@#QJx8ZYY_DBnx7FFfEC(oCcqWwi|UY0 zZe6}I@Yv3Zo%e6P#wl|Cur6Q7xUjpIa;Fart2QY&Z;tx5GH1|x|F_h{qhSdJxd7(q zDwCLsr9(A%C_G!`BAY8r@5y^vX*l+8*1<^h@X(l@2Ofnh*EsTQMgY;bIEIgdICS_= z!K-G2w26N)wk-x7P#0v=8PGQReWV6Yz8Dyuu%=xFVEd2cuVJu+FY@(_FZTlXV=UJ= z;h_pRcuu-(zQ!2vgXaJ78fvx=pg&xfn3pEh<&8PfBW6E?9b7KW5Xi}ZKnA{3Yq{I| zAO1i6MRD+T7pBf0HnoTvU=_nX81L7u0{4mBSsK#6auos6==IV;6;l)HMC9Am0L;1t z9Q?OeDr0O!{{StYICMZ$1ysE+Q9Vni?_CJ!rwp!A6=Vd6?BH37|HBy>#yG+prI`gU zY=;?urvi9S?I=dc0w8lCSot?5u|6C3Gvob>ww`;53vSuk0Ma;*-UOA1H%nhuBMUju z|C1A%A<@75YJLDm=^QI8I(a3c0$7!7o(V{c*9^G&FJn!I(Y}-Vopm$FX|zTJZw%O} zmSGS1{lp2kh5N6xut4(P8Ff(No2Z(euD!gU?dG;rwpJU%)BE?m!oMKda#9RRYYim%+V0)5x%r<<%SydP2!YRz?@` zcb)IqNmdKwNQrwzA0QQ0SSwMzs3!+BgM1Cn+1tW4x#Z&By= zXdk0J}^O`plmC%x};C zB++CTl_c>^d831L$gpYgAK0A#5z)5XYFH^r-G$-I#PcSYA|y^#`UBoKL5f!0Hh9h z0UM_L_q{E+7?4&bqfPezX%<=*7<+F2xD_cdaQV6b zG@?<+>a+Jy%M`G>prnB>Z{!OaSX2MDf{T#R?T^h2 z*It5gM&WOQK|nyz2{j@UGROtjHsrMwAPKXuY?piyf45`8l}aqV(G^&{)Pi_Wcd^Kc zHlZOQWl#WOiwX@(je{0r5hMWd4q#GHGc)x~!#?@&`?L6AWz0|Ux3x0(F()@{Vx zOZB-n%YyVv$1(J9856o{6)Xf0O(_^MR9Wb|Eg0!K1jcc;WUHC4$S65`-`n4DtZL4} zj~_25*UkWIii61^(ZAC?oGe&m|J+DGQ_&H!-e4$pbL(ndRyt9L81Uwg$xMdE&rkxX zkm$QAQl$F|=mxBEl2c7) zNwTHBw|e@|znD!2yU@f5_z}C#R$U zzOC8%hDjP8@+o6{YQoNXWEu+`U*|OuYo!@G`Naf-#fq&KU7G+2%nWSl4zXpwsJK4~ zq;Fg`J(u*?K$zHb))7Z>B<4DCM9M~0YV#KJyCKqrk;?AD%2)*!5t)2TJ|J;Ik}1R__z&Dc{vTvoR~;+yx`V8Pd*}l#c4rbtPH44Lxuueu)fNIsAzHy z&XknCPsjQp2jd&jPTX(z`Q#it6^b~3Ll}{RI%SUm8Ujv>k55eR69|=od`LK1l>ShfIC8z% zYCIMx^Y`y_c>FJD{c|Yel$GiI8%D)kOn=Y^Ufq(S-~v`SEn=uwc|kgncvPN?E*;5Z z0e={!j%)IGnLw))vJe2zL3|wU)64nib0*t$PiC(*5H()Rncjo&A?bN-!{>%JlB`3; z^Q+7LVi_SU_IOwqm|0VBzub|Jl4>nsylr$_w%GYmcBf{G(r%Fpr^0})cSxKhk@{(z zO>RR66$^p~vZ?UXR}{gbQ@~B_FbUxunwo-hcjmNdu#@Wjex*|9Nu`TUCaI;yA|#Jw z{0Hv($%3YE!;8u2Ak6)PbQ1>P4!B@6Lxg3o5gc@(&i?vk57!-Qio5a zNWrhxdR)^Wff0ap*Q`FbFC?u9TaNrXH^gM#;G(tPV_k||aoM=rNjPZH2?>+F@IWv> z7PZbjQ8YfMdACCZT26UYJI9;jc7(R?cj75olyA0Aqh-1-BND;RY1xHoS(=;4^_Byx zFB%`-xXpoZJ5awEa1EfWAqVkCHfIY}*9NYHTYkW+!Kk-@Xx_H@TS$Xgme;Y%ds zBQyM98b3~)<7xDO8nziq?GIFe-Yt`!yLzqK3kS{0kV!5qRhV5`b%YJf>3@BLP5@8K z!;606=}GVD-uAZDSry1ua;1ZYv@P3t_@1)Lm|0&%MIhx=Y_^SrgztRNuksRcMQr)8 z+w}L*obU9sIv5)%EgYtWso}c2voFCz&)nVtM2=;L|v?``3xKlFhWB_ZR!gULztY z@=%2#S^JSvdJ&LU?yf+%6fJ)1R-}i(w`7wv9SX$ zy0LiOg!E5ty&j2(37{h}b{<=ZE4XV$`6?4en{4dfnk>dh&!MKPaOIJB=2Qrs5&t7X zesL7D3g|s5{aX(yWgr15ouL${kR}HY@ZCJW`z`FIqpX$KE6WFA#>*|^EpOu6yAWJX zR$v{puH2e6LQ^=_ccIr*5*eRHn1iM_EH^|00T*UsvMxn!tO&CCk(-WJQ*EB@Tzi;Y z`m+_-lI1I&aW>b+h6e=+U@1=lg%9i(x=xk2$OMAK7V2`{k(J~nU35!+_P!AGV+3?d z_oB#kW`dL8$vODpV~!mSn2IlNv>XT)lWp2s z3NOB4W4$pG&I9FmrPctj#^Yg@Aee_hr2q2HbQO7y#_-c_sH)xZMr%iTae9*&I0-jr z?m+sc+5NLy{r0E*we@5+fk7^0E?hvHSLRJ3Y!o~ln?@z{0u2nB=SLw2wjpUt0x_-%<*~=vFY4=Z z^U7zFoJL%2d1}y1LA$Kdo~8T6uM!(^ZygY8BN7fBo2-G5b*qRsRKRYedE!^gL&V#A zVnzJJ+3>u~&ABt$>w!X2Njy8bPyM4yxA z`@Sri#DA*4mFH~xnCJtZ!v8A)SbKT*{VenIiY_Ur^GV+0b3$m8(}nHD(OPrxVDztp>2Vc`9^^zECm`@mQ5)Bj-NE5qt&nkbQrySuwvaCZ;x!65{P z;KAKBxI+@$HMqM6cXxNccQ5a^`#k%9rf0gVtLmJp(_PC?{QYl(ZE!fc0hs=p0KmjU zM)fNJg_wj$WkNz$I3K@RJtsz1B2BMRh@S%E7s{u;o!#x2xYSd#?U*QJ zJqJ5J@WKGWtm0@YohAeylIAQP@$Ii%zttf*D;*Js`9Jh5jex)H68(F7W^Us>#f zgk4fBOko4!;vRCe`>lRca)^>;L{G|Y52R7p4)d3Lr0AN6<-=4*=!E z`-P8%9VJ^>u<6E(@U92F-D-D}9^BZQj>mrRwKp;F`jF+<%ei2w9{9#Ugw^61g)Mt*#LgXaHRKC+4rh7&=O20qV9;VaRbv!} zUc+xEm%)y3djW*HNv#%B(#Ab}MxmIJ_?VP3cv4;70sF79VBQ#qpyLDJa_l4_K*E!s z6aI02YhYDl0yae7$6&<#NS~kskM;oLo$p-f-)Af3=;;Fn3eE2S>k^0^q31)P3;0f? zB0`ok-^Sx`f!e3mLgg3N0@BayzJHM9zyxZrt5CNI-w{?mJglDKT1@1Gx8%JG4H~(J zo}I=c3ZvU`eE2Rg*rfvEC8n{aiC;rj6FFR1aeaVe^zCoomq?Jui0(+HV3QyavQs}` z=+1Up;Ab%ef2+UH=4`FVE~1Yx*GJ8oFgHj~bF2GdL+do*M8UZtQbk2Q7r)i9u1LmU z69NLkmdA(Bk|t0Dzp3*Z>v>GaY&)$pYWx`~rm`Dek?6{EdVLMKnRtCd`N-ZnwCxW; zhkfPIdBWm_!=0OZ!PI)Bh#H{6ooMoTwAoTvauQx~&;FwdEeB?T^bbGa8}x{tW%<~F z|CnmG6pdwHD)fr%+*D-Y1Z-_*)U-k;Gi@3cHS^mFP;=bAR~2C7pxhrh*aWr7V+U!g zL9}`otQ>HgBQx;xERQ}}GeQ)dnQBJ?#udS~@_G&9CZd3(!6so9yqPqNd(P{c0@Ll; zS*oB;*z^7UZ!B!mF4y9paLFXb3i`e=FiG25(g@{>SNo)$M-GW4JdWCK*A{CUR5FTT zm}8SbM>&F#VVGpVe_1;-fFd7u$h{Z^<}h*@)LBhsz9H1L*iqa;G7*mUt8tJ0eHU#$DcYQ950b&}{EW6Mz2T z6XPehyrL<+id1GtnZ8jF1*y1LeFcvq{xM2|yWKFiB5cpLb7H#NYEHV-gj*Qg9l_E0 zJnm^qm0@rp9x!l+yZTpo3k-CwA2M=;C+R&q=#wzxC=3fk@pfPJM;Q$~P`7;Tl|?>= zlZ+t8ZR#q=^$O8;R3uNu3$(BAio$!+yrbzQm%rq5n1@B9pP-QMyX@hE8xAn6F&PHz zDu9p5QqRIKiX~E>%23|Yh?(2T9AbM zD5tQvQc%?F5@7e2fsbp>2o9M4Dt=K&lYX1woxo`sMUg^?Eh`*bSLT0+<=8b2<0l)9HnAoYG5QFC^BHchO2@<`29UB#jPl)1R^^Uy^EJS zFug%DoyB!E#!CT@JL zjs{k~!c8I%@a{s_^qHusJygFO?sp3gUplvW6c`|a>sF=wu+)w)VIzF?{|76;v?AqqoI$v}V*8p`?Z zEXPCQM7Sl11}_SrhP=mLHAJP3$%8l0O~0^L{pGK+89CYI%Jzf}bM$EI90lc-36N11 z130RSLmsTZ(|{?|yjMJlYNIpN!Wzil&g%{1Qwk~qNUgaioS=lPmJ|W^6S+g!z0%C` z@^HG~)Tdu~!mFe0lEDEltIjeZ6y7uZPBOB`8%H7td-JmkUo*QX{s-KyXdv(5PT^fl zc4QsJ27^LtmhQRDv?`3l??pifsGZlGYxe6e7l&jB^lD*qh3%6s0vTDC#PXzs`%Nc1Ak)GEVGyarzBU-^lHLG^WG@Qa?cZobJt^)@jpf0Cm;r( z38v{CE1JkXttNU;Vk&hU|8$Z*ZQeA#L#8hlu_b-taqqfn57|8D&btx~GVmg>V_^EJ z+C%c<96!&FNaDsr#Kb}X&_nL$GcgN5?N+y=Ixl;*R^?q&o;cWvdAo75 zKp2tx&;-^~py%a8>*aOAIqNN3xvc6L8#Dri?Gh3}1>EJ_j($bY(ZW?UHsl4^0Zlgw zcLezm^rA>uqBm;T%!a7Zc0CqgYD}FEi{&1UlW~h@)~lt{cQWUXQM>b7!rMdc$+4bV zA7cC;R>hDt0=;9iDTitL-OQ<4&G$c5<-qc0hn^MCyU0V=OC9YO6$1_|pVA@-!iRI* zS+fp`MtOSTaF@# z9QxE^>3T_>SS4SrX-+Y&0CQ!a25T;k`=8C-7zCvT-X|WHgM)DXk-?6gh$@a<))T-X zD12;wIO>mD=ftfy3S9-k12SGj#0IiW_+ zs$<^{$8kXv9t9=?h%kJptYCp<+g5o_^ z*rS=&xY8Mj0R{08NP-4XCumFC4HUK)5;0vni0il~cMXl^Q=56c1vDr;`1Q$x?%PQ8aG^~igoRW(iM(78F>*rXOb2~Fq?+e+6y+*r)Ktav5vG3=_(_@2|#-Z zzZ{nn3mHlu`PqNx-{w#bOtGpG#vE}x-9`IV*~G9F(sjbqh?@WP6}Mp&p2~EMPtyAz z1*+ztkt@dcG*;}PJl>%z81t>aofIB%k5pV)R~7ej5~oiV%e0p^A|m<5QJ51H{~NutAC z#v-apH|vqI{BDuv$mn@e-2HfB)haT_MlCtESS=KssKfbqIXD^c`akPsB?_1q(c5XT z?}rgt3I~Nqr3Oa=-Xz2tAfk!2v!Hp3*Byh58x8daPTU69e}}3=@-g7% zenJX7^Sb4DKQOS&iqlAAY}C;*?PK!`YlVJ=)U!2NIQQ$bZeKywt#!zuhfqx9v0ZR- zxPInl)X$fGQK$yqc!g$AAmEGT+w}dIJ6p4k>NXwXS(IuWuASd`Ri(?9X_$$u#XLGR zi^&i%#3S}KG{l^Iluxek((*a>hSGoXhD?b%>}@??Z6|wH0Mk1Us9<`3?^s<3_bi*c z>KZV&d+qB%%#I1jGuUqWdbOH?h0>yJ=6evx_u~>>X#th7fw;&R;0CX_Qg3 zy&3kLn|sKAU<#b<{m7?P8^}_KHl=kG!;g_;z|`?dtY&x?OZ6A%_nH#6(G3Qe17!nu zF#O8boE?0Q#2bBs=JUiKur-oQ`%7X; z35j_{2HD6|yjPhv!`c?@%5D+YY6?!~u?YlENdbiKbbD45{`-F-2)PE+^lZIQqI3#q zozv@2ONX``tkD>^FGIPfMFTK1Tq@AfeE+KvQq_QrK{EG~=SBCS;{PipiXcGl8;F3` zZWBFvr0JgB?}}HL%4+TtHw)aSM3C>`63;>SpKN}sQ6a@e8F>zB2Fk{jQf?-RO=Eqd zXYB3N@|U#rYP9x^ezG7k$+NrH(w;NfxGvX=Yy^qCt^Jq~*jPmKA5*cC6pIDU7AZ+> zJmZm5Qf%8fkSsLXY#R>@x-GG70AGYMy$YVz#bRy zeY_DwHZ{7?b-p6jr{oQa|HEzrvjv1B?Ouh>aauV$I!>$96wibehQ>cS4V4X%^LJ$X zVTq*Yp;+%JU@K8fe6E#pgduvQ5W!$C#{keooV+ltX*)}Iowy%1^x9rt=Nm82ijJ;* zua%wA*Am`~_fCI=*|8i=an_KhaTmVTp;pNX+>^(Gt|h48LI6+){%c+|o4Qr`RbRU9 zY5`R%{Y`x5L(vtG6%xe>g#(a3$iKCLdWSQpff*!+p_@-}a`KC1OA z;h&pr&26OUPIk3FQB^wr`l#6;*rbwx73z|u)J;+9$$^Iq(vc$^2Dgt)@@_SCy3WXm z_?|smN2#dKpZyu7uN>d|90$Hr&74S3GazZoN@nRo=8FCEj4XD#oiNKrgqf$45=fu; zL=q_S?5n0d2+cXMG&^Iv(&Ep?mq!n=F)r~wPZ1^l@9BDl<046sTTyH|lbhcEkVUh- z3pI8ie1OiC4kz%Z5IxM8Ho4XDvudEFPflyUx{E51oXI1Kt_uC9|LDuy7k!q%I8t#t zhbnfX1Kaiw<%1Z!XFq2<$hf>_x7t7Tc$;+=$$#Ej6T;QU^_PYQ$Mef6$2Aq1_`rcO zz27}e@(A!OQ`p-w-o3oZhrsD)&+^Z{m&1*xmB--d1+!To@>I-*c`w5dER)VhDDP2YbczEr4 zra6gv7(x9N7?APp7fknXv8G?-tVMyr&F>NV_9rvD*FLHh%F2fq8RQ7GMfCd5wtKtv zob3CpMC=W@z0ElsTi5w}jcICk|NJG~?=ES|k^?rXM9%!L$qExzoF{cU!=8d_dug!q z1lVvole&-KzZpdH+I6>yK2wY?R!et1;UfI*qSuFzSp-@6H@|JI7_u&(c0%C+cPPeN zZjt21rxKqj71>*Uli}i7LT31^4>j1^^tEm?v)N$qW``U5>jk~fGQ0oa=(hL4Di2G=<-q>GDImY`Ad(67SzjF6)L*Du(Ac z(m|o#wL3#y5|cq*PGN#FIga@j`PjL8&R7<{{U{L%^4DIC;WD7=t?3h9-&_xJs}dQy zizWv9j~Yxt)Q%xDF1y=CUmS~h_^M{$rAb) zoFU#?0==cD(>(LXvSRLV3BRh;s)2Ghw5oLY@xS-8a?Hf#(L=vm4cnYlWkBo7_7sjl zQ9Y|x1HoF^wd5Z^)^xA_ye8021~Iz>iL+yHrV_hr0WWI~*j*2d8?OT@s-4@ycT75e zAv2%w9E0NOM|YYz>Oj8B@1p2E_~C|A!ZadlL_zKfVi~~ONyEt6G-Cu=&EHerCaMQO zv^N(V)UIp&?ux;C{t#0OuymUQIr_mZAF@j8+P$$~?9ou8{{SSLSH_(% zo_PcL?Vj$ZroX76HjdFJfTybT&)bGW+tr;GcjHlu`R{3Tg#3Mn-Ws*Cw1ot7(dG{( zvso_J(j@&vgSrE^zpIi%$5V3RW$TbytIgZ<)oZ~hT`x5HV~l(>?CR<5Y~K({2K=}M z-M7x+Izv7D?jSNP-j(vf-l^9Bk$#pKJ2~84At+KlK;#M9Hjbog{`zy?X>VSw2s9i* zuhemkyNuhSyGqJ`v-a7~DzE?B5@_mB^#KU0@wz4Ab^h+69g60__azVo4TzmWv|#$8 z+-!FCC#{Eow0iT2AYM@)tQj&>CaKBU?P<`E#-V6(2#w&wM?YnTzV zIAdfW+Aw5X`5Prk3a0xv2|-?3IKRgxQ}hyH&3$RHlK$AXj;(6ZsF?;9`(s>NBBxhW z%%rdA>)h-@*t-8K79+3Y!IA%yq061ZAHZGYj%LRry1uO+l`Xwd%6S=>ws7;3+aFZq z6WkNqvu`GJ%fsK@-{rgB+h7a7{%#ts7B_1tVevbmQ+$sFXcR)3>}+T%bkC`5M9Jv= z)@t=L?-ubHy(1$f3#`R6j9a^%TC|taE8Jmi?;;i6xf(q1e(&v9iMlK+^4rur`@TQc zZa0S7pqW~rT>+_wghyq6LHT~h7*sa=gqq_Ca$$Q3Td&f+hCrx*SO_%g5QeaVEq*b;Xcdr zWH4?gYaxpB?D^GrTJwv{wkTrUhQYj?EXlbW%hKZw5q+ZYR3uEOTnaH=l4Pi!X1P$C-@oT2~^cDJAC3O`>W-{8Dx;7}HDXno&~z z#N3XG4d&uh=T)2{C>yVq-;x9fb#$oC245^_yDD0!dYDtKSawf;`9h7MuQ=_q1wn{< zCadx|y(4lz4%fEz2vrERMPs_NSQ7$J!t{T3Yje*(N=aj<2Npq_F8v`MANWIKb}-Rw zerB0=Dye&bck*!lvjxsx;NtZ0{`F+pq`2u#pWGb%f{NgW- z((~LGt`oGgfdIsQXDPXizf91bHiTx+Q)8_iRq{oMnIaK(48GOO zqDs^zxKJBbTJv0XDz5ucUk|3r;)={&c3)OgHu6;60$rG~S{@~RbWkm+2ON0tqieQ5Z?AQlz! zVB?lMqY_F3u64f9KyeSu^-fYY?c5!6aolR;iJvrBx0;?MwX~D?dwtO^OFPwu<)Zyh zTuLJbL*D&^$N7y~>F*9KN420RdrM|13MaA>sZNAfUK^e{TZ>e4W@!L19O#y9xg4mj z>UHoB1^<7q@4~A>@}Wj7iU85R@?G6a!XY|aQ&xk#b<$Jg!o1C?dn~-7}~u5r_n<1zEjw$a{ZD*#{2H~x|%)P z&7KNDQ8-zt5C@C3iHW7_y*$-=m!C~nD$POZ|5eQa9FSm`R(CK)_YB~$%Hx?JzzJ=? z)uvQ3n#hNw-zLk;2@cKcLi_3XlpgXa?%LWreqx-;L4b({_A!o*EVxa%@cr1zg0D%p z^FtCGm`}C!(-7if@C7pKN%5{EcC#n@cPtM=j9Fseg;V#5>&u_Uvb74DXbc+fs?}42 zH+4A20-kWKgEu;pk;Sg)plH@G_0M-o_ulTi9eMBg_Vf2YaQoUnG`i$R2r>GQPq_n} z>74v7giRvXaChziSx*aL zFAm55B(7K=rck(Gn6b)!64a=_d)=5_tbWeAOnp9VT9I*P(hDASv*kGC@}TfO_G-=Q z?qI2p>{iYd(vw-=t|O^gW=9Ihyo~>>fcefO`8r%x6 zwI-5wyQqPIwvRLaV{+;o;0_EW6%|9Zy=s*qQv zcqNVKZqfrw&&_m+A|8oNe3RkJdFd(XWQDV{mUt3Nk(;qsF)PCbD;Rk>apTJ_1DoA2 z!);q;{fGOp>_ds0+MPgQyXU^kX{VBGQ$N|bM2`>Ic(*)wa6X1qwQTHdy+%u4|(kY;zFVqBT>3D22&$Z+?iZkC+!x!ef9Pqo4GkEK!Z zP~A4TO`ndPC==BJ4@Je7Ut+O=Kg7Rwel$crns)JR#>#3Q&24Ip*3g-#WHL!l$kQy5 z{qb@N7)agA{M71Do8Ekurp8J#Wz6*Bk~h>ePi#^LZ_g3LTr$lzc?`P;Ntkv&o+yZY zc5&2{V69(7vDp1oKFmu+E(T))n4WZv=0lcp(aSif)7F6zW88^|N|pXmd?{01qeBFv zx!$`=iNT}+H)Cxr$Cw?`@Eo1c_>IG?zRp4vbbKqIu`2u8p`OVDdRSb#owAx)-6w;S z{bdh*`Cn`iBj4IIeibAC6ePgNBxYq#l8J^LyLD0DHb7wnuQk`P*JSmQtmnciPr^g7Sg&l~ zpS|KgarDtg&lXiRMaZq$Bfq0vGki@n`;Rg<09+tvH!Ag-l)) z=prR$wm;?n=b2PBXu}3C@2xIgC0f7a;Wk6)qkMP!3(b7&l1##zL>5SU$*K)z*5nc3 zv;-eC=_)e>Fk-SOkdU=!Spc0C@9=KNe=8TnT+l62*(3Ykk(GeS59I)I`f^^jn4=Y) zyXZSFv8N@@%i6lWYmYbrA3J?HL5l5uAP{nbH_-hNBQ_waXGHIY`Qzo75C|}-Q{5H* zMY|Od(Y?-Z58Kt{IEVV}i{sA;K2hE#BUg`~*|I@xhg@S)h?6}mVs`xBR z^CD(GFdePhN;OK{Q5Nopfx*n|3ap0<^jfSLM@f~8VhcU&KzMj^@J{g2=>-X5RK+;7 z(*GnT#bAW+Avycgg+MPWdlI3f^rosMWX5uY@h9J)3B5Ioa7Irj@^gmFH+oz}ac2%f z_e%_z0_+aq++TuZ$~%`wlIL4+|D6ZK1J4pjIrUvuy8FVlH#a**j=#OMx)_gyd;SRf zRLnr0V`VgIMqMu`wGOc%;*Xdfa_eeq3A$(Cbqd&~zrhg({`dl|YEY1xUft(&oV!U6 zRHd`<`T0s=ul67GWYQ!EWw8ra@c!Zx2LD0v zVV@&(b^wzA;RqJpw{V*%{Vz+5ftiHSQPY2|cnQ(Y#mngdHi4$)XJSWgkG4?(>aZo~ z0MEnvm;Y}uENd`SSJ8gbDovw)@uKJkZbq;aj;jX9?3b9HnXY)I zRK>t9MFy1{W2{esTOOZqFu=)mnid}sO4TOA0QlA3ET=f~}5_y>gS)lR)|@uA zCU{edHNOR;l$d{s#D6i%l)CC|A3PRmJwKN~3!tc3spW%lS1B28}oVE20> zJmiJiVrJUkl*6T4)Kz#MIDI#fl8$Wb0FCA5bV*HABj#_ z;{e|bP~k3^t)?cIKt(GIz02B0d|y|2)vd_3v!%#3+}qQ4b$4go2G1vqZiWVzr3gh! zD+bfupVLQ9-8f{xQ=^E!JzhL`5YSX=vD~hc4^+!UoKWI zL3k&R7lFb;#Mfp1_rp*|m?7PFY#`~u1z z$#kYnYpMA}uR%+zXBT5XmLf)FG>#68WACWMV8le5!uEu=uJdo+8|e+ZFnA89;f-VO z=HWF-Z2GH34D3&`iC4V&t+0Ch_UffO>zB{Ie`c|(A8EYFAwJP!K&U#B`n!X*6%`rG z^f@japWkdhB8-U#cl-JpUQtdeySqfo>r?+&c1G`-z_|XNvGm?(%1Oh@t^W!c6 z#y`xAEGUWQgXFAScrb^?0npX$5$_-`aZ23OXi-QTNQx)jnvoAFuqMP?*oFs;cdOvG z`(w|B_kj>Mh6^D-m*<*?g2SpEr{Pvj5A6atF;?jjoSkSfqww4_7I=|R-lc3cN6z=) z;6z94A%_&lU{wFO5uk-pV_=9#z`0Fi7=c$&3X(h+k>qBeVWt%{5LEv<-XFqLJy?)t z+~4V6CGp-9tm-S~%b=Nu+LQ%|`B3TcExe>q|C1ot3a9$ifbl$I`g~RPi5_!g_B1i& zjI^adw(Zzcy0@IKq+(tjO7<^33}@_Cl9v;APJTv@WmGRI!{MHbt{o-iY@LNvb|AbO zYN7fNxex<}n)$!}9dzOLD3~5CH8T`d*)K+cJi<;#_i2`~-9+E`G?k>u;a}2}$sxJ0 z{!^E8sIAB85XXUhe6+mVye$X3*#ri(s&x3TI?HS=-NloGoI-|V#?1IL6wnJUlkVYc z5Gj~>AUVt^<0nU@m9%NWKoKJ+BNRTv27UpX2^Z4sH=6)lD4ubcBpZ+jZo^YA2t(^z z)Vfo0n~7zgJD83fNrGd6$QMbGMRS}G4TNga>-6Hdo}N|;BQtH)R2aP|as@GJN()1A zDfOiGK`MzN6w0KZ(j3ESR0h~V$Qef9oKmP*87!Ier1*QwUj{?*Ll;!l;%Z-~6724`f^ zkBoc?z0eH@XqT9NT~XVNcxaVLwqL4waGSL27rn;2W~9Fe^|)MsLiJibhfW>`<3n<(4+NGNhdS_;vET?N=KNmy zoAEm?>WC>$7i=x3A^X=ArQcJTp?e5FEk^TIn|A-$gb!5lXl3%2!iU^mw8FKFO${}P zzM<0C8p*x~2J6>QIC@VQcrU~Nst&0))&G+66CY=VN{K}Hd=Xh5=)hs&SG2^69z zfgOPFPsE-y9|e5y7Q*Kj+#u)%%(?f8J9m`F#U0=h``v0`kIAht)M8*F(UF7Nkt{ZR zA(QAn<4%R{AoBBkPKNv$sYP(X^f;zb)j@j9_0@DW4;0Z+o-1SfryuX=T-4?re#^mZ z9&A`wYH$pd{X4$$256@=)PvEK8USvvYC5blGM#&LUw`}CR7=EoAx8hSdjFdJjDm-5U6Sg zZaBmfpVNC^8mhtbkl*l%%8n*4Cd*Xl~K%D?9JZlVQ-9 z#8sep0@`xlne<1Q@{@_GP}n8eYEh|8SfLJ{?m6+W7Qz5=h)OsG)m`;yzJ_i`CH^=# zSqqc`3^31lUjlm-*)ZaLxiDyL;pgbrkmV~;my8kj&OZb?IGzq^5o;|&4WOe}>9|HfoM*$nWt9?-AOws|LTKuH` zKDs^>7S}@>vN-1ZUAmw7zEsz-IMNJ8BZ!EwO<~7{otdS`<%l35b-uY>dnH8X_MEA|P2@Z1%Pv&e_U5i@0rCQ!P$F4VDv+x#!8& zfv*t$s2Vx9YTfj@cG#d6^C1G>IVd@jWa^FNqG@t=z4!9tB7tlO9EcnNK4t;pnNmH0 zeV}*~sYhDO!QaDIXiA{>VI!g|Pt#6!rd!EU6AX>*rqm?=82ff>JeB>RD@g0Jg0>*; z_esO35Q)f0@}8t7;6BG39?6w$jxOJSS7U&GJ+OnBI1R>hB!YADXo@<16KUTF#sQ$r5v%?sj-+VJHUMB=k^Y z=jIdd5c0l4#heXzlkDbMF-t4up5pn!1Uo4Y{cD0*?t%;*oq(&zWQD~e0*72{QJb4Y zAm$yD$>_QDF;2{lB_RVXD?kV1=%*VLN_do7hnH~X!?}3dUvkv6$`Fh?+iv3#*1%Bp zB4t@0psqCZ85dy8ldCG*?e}6vm_h0y*tP@5`ana)0QV zCUtzC6Rt<>mio*m0o$^f#a+^#iS_|{C?o0a_3c5RjYdt`*kLLwHaG^wIReT>Ww{DctRJz_qq?NTPE9-^8%+r>>UvJ{_Buf^L z4nu9fK`AvzTi8*Dy*{CQM|!l|Y2{A6#RS#a00B;hTGetQb?C%Z^mw#ioN0Nv1o;Zyc3+{SEH7NG`12x0-yV&tTj8_SS z8ALh6+uL%vBG7SH^sc<~zkU@VzPnP`x$@QsVe(OZz*MQdJfySFM6`y_7~`F{4jBd$ ziyfHnzQRj4M|~wfz4m+js=B91{>CFsV?$!Ru~_cY`yR41q~Y`(AWG^gWz$2yI8q3A z@@r=)ufa`8y)8K(S=)%ox)Hprkus(Z1@Bm4UQt0BgHu*5{|iPgsq~m5-x(^=zv9nB zcUcZN;Y=>~^amkA-ukQ4KAvp;zg5VwJn80g-weyON1ECxl{yb(lv;r@EHC-`tU zll?!sH?gnWbWDtdSr{X`?z`R5px*8I>XCRZ*>5uJyk#+dDx#TEkR>aBA+_}|(6drt ziYxx<}fCzH=Up!9V3rg5O;KDUU%ql0x7)O zk7A1?;Q5ae7IqmngkE0TBBu$aCc;a3n%Xtcd&R{H86g$(1kes;yrVxtuJ~>>Q&G)0or>sA z0~+JEjMBC~0-1a*3WMnQ{`a&^c70rp4XWMWY5JdL0~`-VLN2*cWECk>^g3i)#lI$b zF&u7A^=<9;k{E**jzRN?L*Qkh=^^TP$Dt8*RF?Jr>SoFB z+(#b-+P$dAfdg4^dILSRH9gIh+~|G&hN(JRp)g!-sg*clp1^4x#zTWkHET9Qa2%23 z!lPGlf{YZ-^2INUza*Z9j%&$&JN0mY>!_Oo)-AI!Z7@Qqd?$(d z3OgB*uyU5JAL;r_)$%Th#)%~}10LGP{AWhw<+6m)N@t5HEO)4Do4!&|QV^gL1T0ha z?GwZ#9P6ebkM|>*+(*(Q;a}`HPSSO~i4@R|X3T|;z(e`gJyq{?c&N2`XQi7Sx2?k; zd}aKl=YTkAn4A1W79TnLNTq{8Ppn|q_W$C#R zRQP}2lQWFv8*0+!EG7*jf^eAj__IQn+J!J)BAo^XZV3dNE>qH2$&lN83n7RN*g6-} z#5^QP9)xZi?A~p!V-ZUn-7?zZ5lUue0(7CvJT4_K9sL6*PY9K|&S&M=yRYYJmDS>^ zzRJ}wIpfh|!1%{EwT78@9e88nlR_rG;bwHjD=Yr2S&mL@vx8ADQj&iAdrkR-6_y59 zO~?Tbd{i=4Z?P*IpouKC!X{v3IFAj);A0?x!knG|P2aLpKHyUH#`Y7=`9RQXC+oq# zWp*2)vK{oSoY)rQC&a>8&g%;{zo>(M>KEwjebAT?ZmK|yWKN>Al)&pW!?<=!rbJH3 zcGb~{yb(SyUWzdnK1mWdwW)n|R2kjr8Z4mM$)v`2YZ@mPLntAezF7Et=6k&9_;mKK5Uc&(2rf99FyMzP^&By3oLom>{zJedMUco2$R@du+zwuYCz! zOTiv364GZh0O)Xq0b)Xrzd7a9jaSrAn(zAG;SjTk?wz}4XDw@P|h zTQ3+|BX8jy7Z()UaxPB9SrIQJGtT;2ppK~YahvUt$P)WYphg1W{pvut!pZN_^dGxJ zs!rE9a)hEHPK4+o+<&0Z$#eAEe3_a=9@y9H&mq;#wP)qP5Tb;MaqzW{HNUbD+l883 z>)&trFfDO=`SGqTs3n>*lYVoCrPtnir{+ho^YyQkkd2Z;oFY)WY^}stGz$YuimZwD z6@vneW^CDV0f^m^N=hC@9c74ud7i{LM9tG!<;OpUgmBaq#1y4bnt;z74LaKLnxj(` zk8e1XA+bMumladVzmMZz>!$}8)+yIC7G)>|c#&d&=A>kR$5=>GSN=-bdh3ix+P7~S zXsJIwx;J#>9E*`g*Ij-`DgOzS=-(#hxr-`d)uDd0{ispdk-Bql=%M^9S%=GpQLM$< zcT%2>J<;*1xDwQV?*9YX{+>k>3i+2~QxLNp<8V)V+vP0fmof+)r2`5uxEJzumQaR; zgH>%hP`3NAC*H8Qkas1llF(fWj~p>^zh&T9P}~9Ia`{3zIO0>zwDFhBxDnQL#&=Un z%1)?B2VGNW=lkgEf-ZDy^r`yvUC%AT>pXRa&mN&GNb(J`#^e4j311G1|*)a zwA|ql%hn0iLcd#>ee|3mYq*PB(YJeEmt1<7%d;FK>tN2q z##G702^`${-VVBAyWUXo3n`L>8;B1{2Oukq8ox?$K<0to$$nkEMN=p9DEGh?@OI*R zRhZ3cd`QXyuXT*9OUxN}iHM$P)FIjR$eN;f8LHa~vGD+eQowZmZCNt8S7bK=@hmX5IGW8*cC%;Zrt4-3taBrJ8RHz+S46ZOdYaQ2mHg=#4xFDbK99GayWo4w z%hHHxSzPh*!RyN*1t18h-Cnb?YU=nu5-q(vcIB7W_=In%WvgNO0 zDx?%cZ5?hr+}&+;E3$1*IQptRIDlN}hvV~3`*(u#x&y4lgy1fQGB5p5UbThk6vT=P zV%WC&LvMVOWJQZ+wy5#+UNh4=$ilgY>qrYi2Jy1NA4 zmvT9*JY2ANMDEbtMQ`!u&P9jG8Lg-Xk$mLELUF3r8qsV!A5mNt14>JIH$vb!CWumq z6ETJjS}-~EG9o~}knV5y&aQLKGu8=eBwNAX=k(Qel+tkt1#GWdb~e%|2jFy3#)3L5 z@lVhY)oDTh=F4kOONT5)9^4w{=d5q@N27_b5b)*2gug5QNm-)j0IbEL?1((EN{xJ* zEcx9OL!+D>!oR~tPRosxMfzU(gjABCj5v6%&R$m8qaAlbk<}M9cU<3SNVX zIRY+`yN(SqOe7?ZQ!WoG(=&jb|Bf@U&n}I#+wA*yjI^J@!c!oW37q?EOg{5V0{=k5_thMm zJ5fBZv8m$Y%_r6?`AAI&pP=i#jE2Rze6w`{%_?sq%hSa|hfSm9jYZ*4JBJCNy=l({ zM?f;>mcw~3DFXEzjV;u{x*OYI6diAQ-%?GbHJ247Ef1CY-Sc?H8>WjL96l=x{exoYo5C=#2iCpjMJB)p{2q zn`V32j;FiJb6l6Ax9)!m50Gq~Tx5{UAGlG#uvTQ6-d_WJQUy*SUnRGc-fWgLGI2HTKIEMY5+ps%n`&m_BBKV_Q8x}Q>dKM`~`Z$Nu%Vn9KSZct%n4>*eCg@PL|*VSmk=b?s~7h5L508)m75# z&IY8D!@c|{csTcNU3XHfxUXvcLC@tc>xM#zb{XDQsiA#~hTubUM}sYh^>KTQWo6l_ zanwZo8=|5X+8mtXkwIEAgI>6zMKFFoOq{?FDJ&3zoF`=fcw4r#wBue1KWTg-UW#wYdlgbI zo(Pau>XxCE)y2Qju0Xf#mYTqb=FrUSn|NZvsr;E+_rn2wOF6)s%a?+3=d4i3UL%&2Kj(r=f=McMVariRC zgdV&<6hrVrP@|diYKt-Jb&Q*{^PygOZA7ImhkdMSz?jb*1Oz*-2kz7=xnY&@A~8vg z)dd~;GXC$u*|_Y5Tysap;~;`tygm$E2dPNeF?{Up4WBCr)Q*>=Cas3Ai>S`Iw6r>< zKNsx*meXoq`hIYoSch2JAhn?^j(VCTxx!!}B#0$osuq-Hq2d<&*nN$_#&UAi7dXSf z2y52%%8H&CmD#AfMgN%-FS1;_b!>ydyV9XrKAY0p`x_0C=9@X!;I~@ho!gtxMvfX` z2VR>dyTLY)iztuC4UwLs)*r9WTD_ukNp&3~=AC%&o?jb_fHB!04e$Eh9BTCMfaKS$ zxEBFUM?JKx7>M2e$2P9fr|C|GtEIj^n$|7A9DqGGbyKMzt9;0q%qKY#G|`w8)P1h zP?~bKKU+*02U(MKjj&JoHwrfGo|E|)GzE3iyfbJB|FV_o-c*Jm-)c)hArI`P&G!ot zz7Y9@doDFr(6`gVhPNGwutT&VN)$BTAof>D@%L0_tQ~^FZd8P{&M$SqNACXkqB+eMRjShf&+Dxx5@MzL- z$5;|#K>m>$u=*427&ewzWG0QzK2-O(TwHq|DOy*A7ut90d?~E1N4f;v4AJ{~bXbg_-hTfBwMEmTgGmnAg{7*k zM?>7IFR0e0@nDIE6Uhd$>$g07YIGQ-%>RNvw0~e4qlB^-B~7kZh@$_y&OXHw)7XR_ zv)Gu4KrEDr&dQuNZs51ADC~Zj-lZms_-qqsAMFYBa3Q2nRo{O5RNdCvYEZdQwa}^G z#zL`-nL0!SJM@3pc@uaj+qQrFT4u(eY*~u36p=QxXd~^ZyHcT2p;SValEgGK*UTVm z_UubpLS!ciBb5+Rc44{;WtU_(|8uCG>Ur+x`M;m{{XMw?ko ztjuGF%#N6u48^tt=yllLdyu&ErdM_5r#zk3F6)yuH9EujeH}ef9r45DKGMqYJf_eK zqZHmCNci#sO!@4)B?wVF5L-!7t5%D9yOAB?qo&q4B2f^N>3OYsar?e-EAEKs_v7wu zOEcf!%gyZc52*h5az&W^l-*GHW~o0!&s-ZFE7v}3aHmnIe9E%5pt4u1VM~7jCEa~| zfh_bk_AP@bZ54y@^U4!^HsqTHG;d?w-@w;hN67Wm@J(WgIVH6u&rKPH2eV(ti}bN0 z8_ku229xs=U*(2p>$K_DYV}zuWt^nH=~1$JeR*g4=1g@;Nm`P`mXcv#39G=S!G+7X zI(vKbRqMGLH(nmFO0Vd%JJxfPcp}B(eHMdjwbjM`q;T4v{lte{k=mLkPN!7rj;BX2 z>TB!VI@BSW@W=~tNLa5h3u%*M6}}X+Tu)^=+gCIS-Rr0{>A5ah<7z;O_;XH*d;id7 zdDZePZj1EH_bs_K)Hn3T&%K%C?8eW12M_FZ+i*iNy{^eG!|Y|AMb4ys@$!JyBgb?* zNSbRSj+N?a!$R2YkC&`)0#>l+ylrYljqGaQ4a1#FO*1#rgOU>t5VAwGA6xf&bE4V-%3V{pjLaPmJvrmfJRoScCuem@f^`RRM-eOcCerA@1 z=ZCHmb0BVwXA;hT%4pp~)Kw#+MxDdiFC*fI%2k&Oj@%b*wJlg&8D?zMl_M~3s zeSAsu;eg@?#k!>K!TzOMj}&;kpzWzO3agN_vR?D|eCW3=h`QMkQIjM!8dytV6=hv& z-B@F&D(3o9RCc*&CfVn8HJ-OS95`>Uxo5)YS#j2j?z-rsM0lly`mmKBI8`(G`>xMj&QYEKVdi zX;kA5U9k%@FwGuxqb6=^ZMwISGPz1`ip2;{vr3&HY(Cg}DWD3!s&iM@VO8_s*cB({ z;)XJYM6Y_%Hmy%_W91z&j7~m+nwwuaQglUP=lNG&%?oW)()VstfAd0ruwgqfS6L`(n@IY|cwr7noHif+nTl-&cxArW2wYSgOxbNy!v-IH;jk`r! zRF*L0Wudb#oV8)vB|+jNw;?U;8%`CcL>yj=ds9s6+LSNu*`scJ zs`1g;BTHmf?$BYGQY{ZA@wV-RXexsJ+*U!CYtOyp|M2(#HG!98Q1@_lcGu?v>>D>9 zcF|Z*)oa#{-aC{P*}-%Yyr%GG=i0s>#7>feInk=8)8pzVA#2#FEtzeT&O zl9W{>Uw!eNLq*;|!a2&@yLy*eNtxXNEq5J{XP1h-KeY{_nelo-Cz_mEr7?|X_)Ds> zx%HQ}oV>F#ZipqbfL+D6ygseQhca1e zg7Ncbs74S!`{rKxP;I@rHuSja`Ieix-J*{}R+GvbUpCjND_-?W{}Z%%IqVbqn zCAewCaKE$1PxLZQ%2(n7ge1pH_OD4gdFRRTmiQcrwWgoV`(9+6En7qWaLAsZ*ux)9 z@7jxK6?z<~5sX_+JE6i-tukq*GHd6oi#)o|Uk)|95L37>xWFXpT;frq66T(L#~$vU zz3QB{xZqHdG)JfDg#=d!3Bc3$Q^zA#u77=n<<;1-DVhxG`l_2NQp<>aSxdRI&fl9Y z@<&j??xCy~Uac9|_wueBA6Pbq$U;??+e|SCvE#v+wQ!ZS8rRr;^n1{K<>7e5m~j^z zc(0*r?NJr0JIl8`)J^aC{CFt6y3;BlMBSw-0xbS`7mRzdi;xk`Qho5bU9o|&6$9?6(@2I`JQ{Od#zOXiTpm@hqu(z zYGPUb@*tM%%=dc;YOogLR4BXD3gqsYm!ykTH;rZ7V87!^aMg*oxD+)s>%xoI`)&%n zey~4XH(BRxXik7Vm$dU^jCcHG+OH6c= zUSFLg)3sn-`na4<-DB;;hoegN4JO&L76hN&Mo6#KTUod~`+VtZyPLEAIJD0^FTvET zyUL=c?9dY#ljhRp1a6JCEVVVeAlgNqcZ&taieHtuA98V5+e_Hh)wkjHjkm=*lSQT> ztB)ETnfF+Gb5zM367EiOVc674Xo-D7st<&p zc46}DGqB(;yuBmXRI~71?E2s|!+h~`721gv_Onha>v-xH9BuPdpI0c!=rB4^YK^lv zgyC3=3$JcO0Ki;?82Qo@`NiC${pRm)cvh&Pbd6QqKm7Q!l=eRI>vo=My+bS)+K_nl zSmn^#4^}ieV%Zv-s?+<@xSc(2&abWvo+r!g8xpK-sk!xa`@9qxB}ov7191cMa00-4 z_)A5EoZ{ETui`Ual1)55%`Thcn0kB@rTX5otH&}69k%Y}TUKAJrWtr9cS!c}a!uzN z)i}z7lQ-9y$EsCmHCM+cWUt{hy|e#d(!N9P`+|k9<;R}#Sx|OQJ0*u$_-=d1b><0& z)JFf|P+a84#!&G^n1(a%>0+D_Y4$_s4;kev-!G{4>M`>#% z`OY#DeMjcox-8JhaC4J&gc-|Mgna&%VxTpvAiJ`9%~ATPT)DYZ;fkcB(iQ`AYoUq3 z7V}iAF5RT57uUB%?>hKVP#S)=%d>JJ#(_`I$fLdbo;7 zLh4I*VYSO5vZ5CgL8Yt0U5jCKH$4?`y|RJt1OnV5ByG(D+yYcQTC9NxWQpF|1Oy?3 z=%)d~4)-h+fjMki3O9hzNjntyk!iLZz%mN3${o&wrCXURd6zY8XDSCs`{DIR6t^G( z`D<@&=O}!S+jR8I%O!F`TqP>gy0LQAuAl}Yc`T+1yU z%Qc?sE(7a2U2^FJP#pOjcjzW0yT=cDel&Hb@3}t;K94;)dv2p(jSL(}w5f0bE8VUo z?Ymo{s@1^9N7cOEFnhCwVzVE^r&{rZybMe{Ledfk6G{6a6ieD08fD1f{Bq4v(F-k! z$FdW7EDmY=%+Y0Of~uZU6|Vv|rzA<+-inP?M64|Fhip7N9<;sTKVRz_Q>r9rxT)Nx zx$kp^7*qNzM2qsOkq7p0@+1Dnc)5Boc-3u_oj^%ADHPTm~-Vv)3iO(W8-79 zYPTBdnH&#O@-0<7>s=*3>*k>T*`dAXY?N-6Z-(Ps>RTnB>;O?B5U2o;KiYhzncZPv zcTi%gM_xF2i8;}wuFh;~f$dSD6wR<*!8UI^RI6=1#StpQbWca_GC7`b|8@3#8(Z1s z9~#mx`DU0O*RLthWk20-kff((LM2Eop^iOF9905-6R?A&2uH7t+pB#nh^X$)>{@6L zp`a_hoZR%FPbyPpu9?SxWlUGWJnFnrSxyXV9L05;z11+z)ziPW?<5Fq_&C|KA$wfpc%FST#WEU*65ncdItWl{L!_4X1-bp9{?tc< zyM5iqb}!^)c`705{)`D8ib;q4(e=DC{FV2e0^F8%m2tt0M;sAB;S@Z)(KEbyFLhMRlx%bWw^S==$BLe? z`HHUs^%ijgd%58@_*gE!H8o;W)YF{7>UC`1;0Naq+STREGTp_mF>m!ko#`4R%^HOH zdPZ*Ovm1}pSOyT&9FJo->DN8mK5(LYH}|Z|m(7NcuyvEElXu1QuPPrpo1F2;2h!Ga zJ8Zxy7tRRftVZQ1U(e*zw;M7ho5at>vlg0m*q#@{CMHH!a~#hUL25*gHS$Zny0>!D zrRC~`)an;i7oTh#QJw|L=&AGg(&_RSgbm}a3Z;xMrADbnOf0rWw$|s%LNXVGT^%@V zhK3iezKynWqD^e*Q3Tu8rqP3;60f~pJ84-b^DK6@%3YgNIf-{LdANCbN5;6+)PAzD zUdHIFh$=eO#?w^(0G}~!X`J>aNL$P3unt(f;cc7{W6_5Gu%5<&+=8e)_9xHI^>%xL z+>@jquRR6UHfLw0iy$yVsZjqDdZTApb$Z13w#oj2iCtm#pNqx2yEAkgy6 zjC}VlRDcsghVWiw%sdGzYMm6z_2}nq>`y(=nPo7!W}iX+2^){YvQn!Im%0FNY6h<7 zp0>|X+T{&V;Wu^j#)b`Qs}?lbl#Opr9P*@`ShY;hS#@>X21%*$E8${WKz|^{%@^YI z2i6$UGPt>3&5)G-U_aZRkK7fJ@&4X;<`_e&%7@f<5a6&+#1j!0U-wDFb5$2eZRbSy zvm?@VZ#TbIO?;D|zIIc}Nn`W#hGVzS>fLX%C~vw10Q9x%;$q9RA7*`i`QegO>F_&| zDLVjY*=Xb#CwS-LE-5$9q1|dZY-*_*GfJ8R4>p9TYsn09old1|`{AT#QAhnaZBs*9pnq<-+uI^FhIprB zh8wOzLDyPC-r#l2*pkEAs+k8fJ+hAXC*P=xdvNY@_8RBA-36CgOcQS``k?)}ys7tj zZm=w5H|G*GU4>5*-S-hD4iy&OYcZ@mxh9ab>}gJs{qsPPWhSJF_yu-i-Z*K?t$ds~ zlh)#)ov764O%?8#)wI5ar}4wY-ltnNMkOxcX4>*XfP4jV7Dq8>+VZ=V8i-ec%q|WK zEcy}%3vV+O9(QQErcHs{-;e&6AJy{0NiU5tH{J%#fSrXrR}+TEby-a|ZRl zimj(f*Xljb%Q_6J2T*oKs zvmUD1V0=<2&+*xAo`sLM%*>#$3ieEuG)wB6Iw6yw>nsU{_{LcWA^Y|yY>!z-n3{VdQ79l;zn~(Yu=09043>qB`$cc9lIxN z7Ak!E*wF^y+dJ%UHVp`*j>dAS4oiF2@M5yiW{_zwXic;W=l zjPdr&>95!GuZbskX5t%pYSI2<@s*{Qmxbx57D0H^1$>NYZw?@mht;wgi&CqO9vASX zgJ57LCLO$1fA8R?orsoK)*I=W9oFv|FC1bQZ+dEwQmfa{-imq)_%72(y|%9E9wA=@~O=%KaL}m=C zD#uE#2Ks74##pl-=CHV#Mu+Z-e9pY=-?$sGh{Rvzosl~t*gv;(M)K}Mx#R#IU^E9MNFMHqZ-X71UA>|6hTHEfH?wOww_IgjN=na@ zs+mn}XBx$E*7zju(m^3?r5)=)m+=+r$N;y4=Wn>oBxDXRPPzKDiNIkut%lpOkbZ^c zk~K}Y@f*885VyfQ&ada2meab4L@8T82D809t&?`1n<-U4>1zJrk<>Amo@LtgD9nq<0T zA2g-iS#oZO98x%Py2_ME`yw+39{(JX=}*;9>1E$ha}rJ01ELREsf!m>ocna&#`vD zg6_$6D`pJ-M4+E#DK>VehuZW?lRP;{?o@bc_f#@nw(x4y9TU$SM z=!wc{LKE+^mjkW&!8|Gilj>p<1b@yQ)SOYQhI?kQDjlKbxIq%Rj* zotd!b?r!9g%BJa3;&&J0qK-czRq2*Y?$q&+9KV*ZI$+{tx%DHEz|SlE?0Y@qYueH0 z=~9-;f$P-ZBW8>BryGXz1Lk{G_7*qmjfvyzvIvQ)H!g{<92P_R0}l&&m0KEU{zfv=bv=AfinZAq8A)W0hl*A3A*1xlBf}x~I+OIA?CpXQ_`YOM@!~A9EbSm%pwmrbcUle3=L{S&$lz89A+br4oZD zJbla@$X*&Tjk1U|=K21yaNO##dhRd9{GdR8U|X(1 zhb6y(RBFSNK`4uxdc>OdB*Joh?SH5bHCa%qd$-9#^5G-tI}N=h!e1V{CDPBdJiftb z=|n>e#j|Gd(3;%pzV4WSq9L}{VrYNHt6uSu3ir=7PcGL!*nhK0{gnz9Y&CFDe5NX{ z;C82U4NHu7XLhj7rQ_xEmA1G|yxtw+uomurH10~Pony60Cnm2pLZw+ltg$RJ%X9Iu zsTFHy9$tKcX+Ke8#BTDgcyFB=eT8xnxjCFS&ru6Rly}%o+@`>)pw9bOBuwuni=VHG zkfDW`oNaNN4tHT%m1PuVSHYaM4Sm#l^FFrmvRmXP+1zx?``HR)-+O5nOwSqoar~_^ z`L^QS>vxlmFkb{o2=o>x@43ziuNVyf!W}*Ic}sPZ4$K>D)^*vyJ}di}q1V58x=ktYyraiH2@#ZVrxe=9N>x7o zbm7|3<5qMq`-HgjcKkhsGiT;tC)B3W%emq_%wo=-=5L&`veC6| zczqWert>R0rTN|3TwS!@OG>Vvr+mX%j;%)42+T^)Y5Wh#I5 z-PoOX&CQFFQWJYKyH@t4x6szhBI{)&r%S7aHY+{q! zc_ukr|0+y$m415f6nW#E4LPsu;Y)ohukT7WYp^I-T5g&6YNPp4rY~(MD>>_4$nl9z zIQi;|dHuU)zB(xdjnAt|jWBY7LV9yw%`%HzU^Cp;B~`W5Q?sK?=Si1=V3Sy9X7vM$ z+GA1oQhAb7ob=BfYu=iB&B*)Yq53m}1jOxxiWli}XlmtB#BC49Qi5W0C0<{uwDw#Z z9+62MZ|ad6UR8Vi+SAj_C3kz3$J4IXJNfWWRay00KgQoPm<*BoBCnZ|V*iXk>&Q%_03ShRM(Jj9iQc_TUGs1JzqkXzeBk>UK zdf7*@33}zp73XQq4(D|r?%DUbcvVr_<0YSWy*y7<8v2|ST(zC4|Df6klAJyuI`GzS zu4{4Y^BwX}W2s*-=pE|`AxFqTV#}XpA30kc6knTjVQYuEkiob^z&adW8oqyJQGIJg zOphn`=Q`a#RXJfu#H(-IV82oP-6eMD^^|B~Zukq-{a^X(k!(L3-v02JtjKZUZU|hO zJN9qCx7Cnta$%JU1mVLXA%yHi^JXA4Co&yEFo)~DPRMl!4ETl2aPY?n4h%8`F|G$- z`0ETXaB{_5NCdLe^w2)Lny=BF^rl} z?pPsG`NWR_)))}t=atJ&OZr$vvZr8RFLNlIz0e#ecA-;aYi3(hmKTI zDEq!&L~_adPtROPPGB-#N5F9LaHJ=*qpo5kJR`cjC&bN&y{gmO&zu zD2~`1Dk-+B=V`3J3zHpqmBg4fr5h$la!P3$7#bWM4yiiz|SD=i-7O0+%ZRLY)x; zj*Gy#b0Hx3eNK)pL|1!x+%(0RfTH^BQO7~zM|R6XghO&75by|ESSlm#Fdr4sWuL`3 znj8rPRQQD7$0)=RhayYZ7SmJ*0vD=W!@Ac$O@^n*bYvEuK){JKM+>3Mip7!+(x|u| z`wRvNT)t{^#Xtl{K(06Oanw#ZjuA%L%`!kOojogW7PNNw5CXIx3J7ut6b*J#;H*(W zQDKoa`_$2Q5h#KKi*QD8)4RcNyzuI&p(%FFZNmj9&Xq7{dXHf3s%(oTYA3v2yuTre zUMGm+!D=8#K!BfHkG&m25rlVFS;HE{fxwUQ3h)aEK+xOvw{NDZMDQ4a3y<*m_i7<{ z8i5~wwyF(qAjm(!&z~ZLV-V)xa92k#0T{u-o2H(4`vv$zz&$9qcO=Zgqnb4h&YDX_ z$WuxXicXu-jUb2!oJ?hPwhs<3M+q}da3=`h5uA{mlJDda2u7v_Jqfe%I7pM7U~OxE zl|%3$Al!ZKpr zB2JejJ;C{mJ?iukVZWYt140X)&E7EvPr5-kULCKG;Q(qZU>mzac*U2k3B6x# zT_ED@rifWkZke>GgBU7un0*3+@E5GiEspSF5Es23?CA)5%4rnLD+Zj;#^>OmmBV{z z5VFV1*TDzz#iVHvx3rYx0(16p?YE%;5OL`waNEnUVd3t+#*@`(q z=*3|Y4-F!$ntJ2`Xr2)F)|d4T+ZGC3om%1t5xI{fw{*PwI3yPU;fa#Vy~h^@LxipD zSgVVdFWrO?)N_Q!4uo*h%a$%zWJ3=j6KhU!MwWwYawIuoTqH*bV$-fOXmpw*fpMM2 zc64y0(IFb0f~V0ONens$>hATT3anh{nZGqg2lr&>qDKM2!Ttr$bTCYWLJodblj-2> z?2uNj^ZZ5SZN@Vv_gZ=bPvkl8n-OmsD*Y%F8e=hyiaC1(*ZYO$JaM(BQZY|&=jShL zlHK*vwJ4doDP)5giC}c;^`n-&EuoSRdvj2nJJg`J3 zIv1$h_MDYF(z!V6p4kt|*$>zoFVT@3CIUygaUl>d7o7m%87PY5C34XSyr>W(z|Swh zMF!&L!U(eH97k-KipnxuXNVhzL($b9ch1fd7M^|53knJj-pYGJKs-JbOW{pYg%&Pe zUzi-c1c#^bF2d zy#ACI2I?3DZam5-oqW;o9FbFyP(=$1GhQ&lbKy7{i_gjZ|CJIE;5_#j7L*ffm@)85&ICW$e z3PX?}uUx#WiU~~+#1Oxrpm*@?9T>zT@3{(vuEqy>Lofrv3z*OtkMJ%K9xst#p{MTx zq0;A!&5|IK%bZ|Y5X9;3>@PnK5bh!a!x%M=IL^n#AP5f}2b@#qgmL7k ze!D^lgU;x}IKQ1iJ;I!NFa-2TkiQs%2F5f77{hd@J`8rkoFL>J&7lu87uq>T2(hEn z!I)0B17nOv17jKubA({baR7rIIU~9g7&+0w$Z>k)_?M#x0EvL;B-i_IhbCj#`0IOLBa75*umqBhkMjBjl{9 zWHvGoN}_$EW?%>@aVnLK^!tFs_)1O35Q^tuI-5|B0U+>=2$PF4*o3KQ(l=TfShjO7 zgAKpWk4`~SOGX%M{0s8;Y;xEXosHBu*~Qw!QKO*5bzi6cjSZ9T0q%$o=?(_lR{`#@ zH|0C7eFormJ5V{?T)-XkCx7LpfL&5-(*VC~hX3G4ej>(2A(3g$UjD^@DH9Kn1c~Z> zuk_8p@c7hUip60#l4C;sh|6CI#9}Cga;MGxulO;X`c^*W@mKt4-~`XNPHc2)xOea` zmk|Ywd85ODP3W&m3-w~$|4YH!z$uO_2AkNC>`b;NQ|vPTi6~4dp#xx5=)}Q!GY0Q< zoE9zMi28jKy#*E-H$`Kkqe=Dv|G}hqIvbsgw4=s=V4*ex;ZL65d>095F5NUXGMQ}e z2-fXC&RIe@7EMMdj!Y0F?F{PQWMNVvoee($02QG+w1H@vWJTA&wVe)Z{FAS-hSA+X za!@_NWPZb7;x&R|xjj&wHs>}!NW zlkQ+^T}3`5sw>!4*f@<1zaWDlIdmAL!rSYVFM?idbSRrj<;*~92D6R$lHI@qcZNY4 zwRw@hq>&FBd4_RTW1lj;4G$m^`YsVzr_z=DB>{cea2{uWWUr54o&k5t4Gd3qNN)N# z9y5s_>wXbIp)kHmBBQ}%2Vg)(6PPaB-V4KlD0L5r2}b>#$YjSEF+Vo^5Y^p;Sh=Z2$ccZ{tQzayOGPU$4z6YCo z{AFHZpbI!kQJ((9^kx&s2O0`)yHiM%qMvv-*@VIBWKU4}m_KoX*!ZEBF%BeZ{@<;I zhxN4VMRn7g&X1$O&A9d~XA;^bml1UD? zUyeDj(VkcmHR}f{r(Pg+-`*R;g9B1P`8WfFQz4C#`Mr=`BuFbbiR1_B3pu0-c&FBd zl=0QMG*^3sDAjl*)dw9BCJuY#1gcMeAcx?=704GrV zI8oCdNs7Sm6w>vGET-!txa2WNoG}o`8TP>-Di}|}iiYozsG*=bx^x)b98ObB9CTpg>ccU6iaXHBXaoBj^s)yvNV8OYe%+d2Ncm->HXiu$jnY#{$gq`w6rJ{oBU`U8CiYBc~4mT>A`L8NOq9CPan z5g|oR`LU;OnlPy8OT;)jHG)71_~i5Twu#f|zQiNAea#7+UazmW&A@q{C7*6gM?1K0 z0VzWEOf0H!t%PeTr%5bOi9Nn8=AYxfzaRY#Gk(L7-_RxHC)D{3jXDA88I1ZPa{U{k zb^Z?Nx_*a%-G0Ev?mysW&mSTAY5E{FV3mFgL5js!5MwvjNHLVHvKmh}A zfOp~WdN@31z#9O(>l{iShjJYnBsf7s1W-Y6g9Hc%Y>Vd_037@eBjWUk_?M$x@aP>B z!d?GHxlh315N?^ZF&l9z^Y94X;TtELfJekEin_)CKp%ORu%C!BzVWgM2zsy{;PVUx zl>UvH38*HM09de8QQ9|Z2B7Lp0#MQ_2ab7Psp$j+C)EZZO)}T_L>P78;PdS$f$)Wv zMnLew%^(#jZBIt&BZl7n0DFb~z(?0jf~2}5a0iBWfSkkE3*!IAg%LfFTmy2*9Waal z++I1{_uR99TQ?gIxUe9tWKQQ`gRp1MEvbvJ(m5Fp3gI7A{uk^R0*VR+fadj&+0np0(nX-# zPxdx<{M8bofRJPb0Orl%r`O5wn*WvDZQu-ne1OX0YMG`0E>P+ir_(vAqP3ta0?s@LWICU`<+tX zJQfKSAW{$T=h$)B5iEN72!=fWjF(eSN13s= z?;x@9H2~^4Azy+BMcoh>#e0JJ6neqjrTlo1Ac!%D#7|0JBW=$<*FCuHD+ExS2iRH| zjk83=nPZP~5XGKfL)!x!0BarPP`oRcZNmtF<>4r2xULsuz>_)nFJb_ecbnqzoac%6 z!Cbuxs2h;_qZedP>B6ts1E7XGVR|k4oNXW;oQaA7EFTLM`6;69;HAlk2jmd;2(z@P|B z36sKH2bY{aR{#HCmsOhZ866saVVbo69<6u?%TU& zBl!HkTMJKtGe81q%&K>TV*r$wnFu5Jhkqv}Z~;O=Zy@rEN~`QX@1D^-0zi4)c|Iif z??hoMm`<1tS_q0DC}GZuV}38kK$@0n;&3_tNZ6IYg$FsuzuK-0fbz-E`N;i$BzA)U z{Ey7u8Z`t!dBYwQpY?;3z-u674to>ucm%gBa0DRGQH+RYelG-X1z80jLHs~vLD!@K zP#!OeW_)$6I|3_IaWZrzdJ_l`4Z(>EsZc~f#^X^B1VT9oz=88GQ-K`LGhTcED5S^| zPPni%kO%@Ehs;qo0f$xC0h{Es=f#I`D&VP4 zARxvr;qV;c-3{Nsc#8rW4nlC-TQI*TFB%BOI)mS^c-2Z2)C^>K4dABEM{a^=*Y?i< zB~Nf@ai5Fc<`hV9phxR85D@DKo~K|MVwIG;mf)EY=VehGr-lkf0g)jJKjH(X+daj> zW|hxeO5pNhAj`w;N<=|Bz}*2WB~k$wE!l-fy+8p1Nq`ir;Bh6w+&sX1#0S6_s7?oH zVpI1vfh=?9xULk~vtuFbPJq7lX#`Qs1t@$x=fphV^yxw&(h9s1i@JYv)k9!@-YWx+ zY~FV<`b%cxKpcVC1Nn#-eFsE+k-v%NfmBCVCUQ{tr^*<6?KRROyj%nv3JU<}3HyB~ zSpX&_?9Kxye6qi#oSB($J1FAQPcntTLp-|@KLz|qE&_-Fzs#;=#P3J?69N~C@TyoP zza91ZkyA{V1%eeXvgXu{wCeYt#$A47ml60mAy1ekp}64>y))*Qr*Zc85-&JC8bxWK z+z7n+iC51t#M_??Q9lhQ05Jvqk;wA|_+U^2@<69a4WQ_H0oT1JX}E5L)i!=1BB=W0 zbaW88ng~$F7XVJ=Y6P5>ojzZ0n}Gig4tamQeGRypEnZ)5n+Yf)<@p`}@X6`>7LXFC zl&(XdYX}?`I!$7M$Uu-UYx(Dx?(awc02xlBMljnDK#_xl?{Vb}(scfYJzc)xQP(dB z)%_c0z3~mldVPm(eZE7z{@u2dS0O4(1S%k$!1=iwY8b83%{uN8OG_qVBwOU_*59ur$D3 z@G~wK2s#D4^hq9^ini`>-G*#h%;g0^K{SpwKqHo>vmsYEfU?k`8k(dB1gi|w*iZ-v zQKcT>@khLF09qkk=U^a=W`W0grGe1S9uODL=DCA*0Z^37wAUbpC-C~yL;xj&1Ux{a zfvmvd=Dh>Yu!OuI99}1t1EJ8Nx}de59F+BODLA6yQ^1pFd?8S7u+@BAHL%kku9~pH1I|Axh%g|SHxMxTm$reu`-5=XLIVN41y}(()d4hi0TiSU zq4SSq0Tko{0}}cYbh`V#PX_>D%Jl;vRC%xoBViZ!D)7SZIJe&5NXAOB*(C6Wb9a-C zzKhZkZQ+cA*l1U{2EK_i2B0P1$vZeYIse6*j{vkFrAD(FW*E?U8pI2O&Lg^f>#6H$ zuK`R!YR_=hec@hkg$OYB;=^850FuBZ+iJhk!Fd|L+`7b(jZ6lKRDY%V0P4mF065_K zZLdIlH2|WqKZGpy9pU(zgjPZD27oD`Lje%HBE^AoSgV9!nMz=n5xGDJLG?Ia+ms6S1l>-_e{ZOEY0eHQKBOr7Rx&8}Y zfFIz)A^5}~n0m}241zVjAqBWuIue4_-hgLZL2-f)d_xIv<>K2Ayto>0l0^a`cxCTb zgn;y17mNn!Q~+4D>u&-N=FNbEQrD+we%Pt`pkVMuf=v$Darr^e7O=HX<*rZR(&A~T z1m6XFv*Un;r<-9P2mvpm-nv_;l&{^26BW2nBK2J zh;GT9?&8g*d1-gT{X;)-=q(V6YQzr)fZ-bmm9u#UnlKFtK8S?Iic+ferD%%d7IBP}!$eCp5tCpd!YXJjZfGnXTFhGmIRz9vD0=0zG zK(B0YRe@Kn0&%+*v`+AWq;T3M$cDx5Ic9DLXRGN}2_k=6Gsju)Aw@AvYw9W?&`)W+Y}f6m3dWVgQ2ng2(Zk^b%_-2Y6w%JuSp zQYro?uD3Jtt@4>`FiPSG{@?n4>;F&Ef9@CS|JD2dt^e2RKl_XI|LXn!*8f}oZ~edZ z|JMIo|8M>OdHT=)8vVxqTlW8-uKyREzs~+|+5d0-zxDst|6BiW{lE49*8f}oZ~edZ z{|D&*eg68b|F{0%`hWS~U;m=NKiB-K|5yM0{jYxi;8(wY@yp*o`PJ{={Ob3Qe);=X zzx@5PU;X|a1i`=d{X^)Nzkdn+>i17M*ROs5_V@Ms`fpxVr;N-_8J}Hw+Q#Iwi{ypK@){*+CFNDC)~Evh|LijU z@nvIu`P3z_l>hELKX2~;%mss=nNMkGw&w2bhoEU0Sb<0Y zAK4x&)gU0OxqXZF)zI!R+oOI*8rcOMn^yVV5?g}MUv3v%@>yt&=>^Tz%Bf3lpTClB z>C;^PnQW`tw>WpSXK`$AZo?75?$pO~_pTOSW9q(GG4kj^;bjW0FUOx-SM+&uRllEg zHXJ_3x^}N@so-^MzM{}R>(b$TOJvKPh4VBlHMU`M`6gft$1+FGyhELA8||*qvm7&q zA)I;9R%ifoeNH{}zE3^UL3u!TDGu!GO~*pRRSCDZ)+lJi^+&}Bn)ttq2o%o{f%g582L_FW5+Wb)6y8i0(?)fz9W zT@V|&KoEHW58(QZHU88%02Sbr=3!>MA@NWO>M9UQ=Jn!TzG?rK@kO{u^bL-+4-;UD zm1a=|A!;C-)DBsoyYVU7=<6{x=F(*%F)9UV>&0E%GA@H-J{^^Zc4;g{8TZpFsX`cesm&2CmISnSHPhA~o3c%+_Kq|c zKn$ZE5~R1UFX6}c^I#vKO^tEmLQu%MenEJ}Nwj|4ygHScMubzgs3Xp^uEK%5tUD0B z>T|(fKGp_!3N?(uy(aG%4Q4ulnYK;L!{k}dXakTwmjJ)UtNbWB%+yr4!Z<0ZQ8V#* zfoCKh%mnMh0zA8CIo~a)l;YR8lXdcT4dQ^+)x=9K!c3uD_~BhxWd-cyxvVN7Qb!Om zeDVjOf3=1p&EiCA-{P&QeFuw`rB3q${yc+2JRfghzJ2ciwX7^++R#r1boW(rLcWsuT8s<|c!$(XMl!0`2=2^D#F%=ZX zCuFpyEY!tkpV;LtO%_|e&^v0U<_7+^0r(m@x%*f9rOQrax%*QGXLs1=C0N|5cP)^2 z4et@lI^6}<LffNDm|;8ak_P%(}wXC zkOmJ?qd)POET#RA5>*wS-HpXY*g7K!GP*6@HFV#4VBrCS?EU!8 zq3mcXy}2RHk)eFq?(;FB0xOx>A6i?Z4Yfr@2D&H58{*r_j*S*Fuw{3}S73S&7qm=< zY1@WP9WXsEoH17hGJmE7RlEvtiEbgt4UXUlGq)|+}2vKHBiz@cyKCa-C zoFnfu^6rfIhBL%W+bfib9idUN4?_($U3QN6L-Ujz>9f_`S>;{Wq5C)HG3wu)S#s&! z?myqRpS!&A;PGQFOLuvux%&z0W*Bj0V^JxEx)Up~WJr5*tGOF}C#Y+CCit*qA9D7} zBa5eS(2WFfIoyLnhG3ZAcG7`Bjj-IyGLN4bwI%)WM=Zy!s zMaHGVFIO&cAv}57qROW>t7E>uZQsXq1M-uK=$O>fzI^n4=XKjP!thZs;A*+m)gzff%&DJNk&S$Ds8!xSej_@NB zt1^>#C=LP;??D{XCe)y-SAdm?oG>J&?Zgj6a}V|~MQqpjZ^t35n- zH&Eus6}-)!>%df&f%8OHM3Wcqk6uBc#2%5lb0FQl=59mzY>9PCSLima;_})ie0+dF z5aw0A)dtEYtd3*C<73^q1x}ap>a;&M@07W6#Y$r1&Bt=`uli3F#W6xcs_JTP1}y5x z?K^r-Pkd=he%N4p?_l|Y0NFzFpWB79K|V;Vb>DDbymF1+VLjK-zI>y3djry5=8=|P zRFCAc5_YZVU5Phs)oQw}LB#abwbJ@_zS;8mq|N7MC;1*aezpBe+0M=`vyZYgqkG5}ZZmzN!yX>Q6DLMOnQ-J9ouQmKybBYdFwpLWEeXS9|pH?oOMR;9O@`jU(c4l>Yirx1?LBoUz!V_Gq zfaQJ*|)LUS{cc=*DZWdVBzA{bzPLc8 zo0!7$_UUxF)>X}TH8^td}ZMPOF*>08vo{|ta70abavLCw#1YsG;WV}(`l~l zMCP^$ZcHpPzA}G&!?H82Hj?Xwlr=S1oBn@1yLD7l-}gU!XXp;4yBnmW8$`OKyFGB_vtcx%tz{ghMzLq? z`QqQ_#*H}!Hw|Ns_Ol=dJ!@)fbkES0jSDTmeb53C^ z2`oV{d8fljZoPI0;*I-57j>5TeG=2P>b`C}%o`!qyn*=!vrdI>yLG+rRe&>H16YM4 zXPEQM&C)wW3mQCX>FEMxyrKOD<%31jv-Q5;u1@<)4%!wrj7$qn@k>v_YkKrwmKvR? z?f;5n3!A{Yxw>(ay6YLl3`xgSMwt(3ou90v&CM1cYh$eY&^NRoP-oq!*Rd?prz--q z06xk`*u5_Z3m(zK)3~CDt}qBWV>wc_w|D2$14~PuS@L!)_G$dRilur3$nPC?N((=# zH;}*`93Zb1smXNwq9(*A`aF#|gL&p^v8(8Aaqq0*_tZ$EA-@gOJFN>Lr#*tciKs8- zL{C`58Uc_6Sq;(v!9VRKi|r+7C=yyGCY#31@GvLa+viZ&k7ujU>AmLTvuQr6wDP_Z zjpcLs_*82h=MhUvTQ=^&X1Mb+(~s6ryYA~@g`Uciokaac9-xZk_!*~@Xe@QwY40ug zj0~uQpde)U(La_q`?Z%aHIJr9VegFQf!NtUbh~!(4WgjjH&wKo6eO{HPJg!&1E1#@ z6)SzU(fi+$d*|l1Y!19FXypuRLRTKH)a2AT`B99J;Odt^+yB;qHl7W)o_*9Jan{*h zVxQ??iQr+rwrIs`YbW(3j+Kce8pm$UKEm&FK@P>SwjNY-K>>cT1s|ijl$E77Paiw--9Dxe2y1u0*2whN#^T8cj)1xn}<=issA zOhi-ne7p8u7W7FpFV*fYuh6Etxo6BiIYG42vcBG*GTWG{8A@armAT%9=>^_{?>>TA zUwJzD6FDWayOBD>28GumMW7iCTW8!%L9xf~VIR*>by6^FP!%+jE>Ms!*F`liB}vZA z{=E+>uCEVfqcN#0S*i_Uf2R>=w7Zx2x;=Z_H@Yj>HQd(VxELkiHr~o2)Zlm^g0g^B zm`)H06!I!SS6_4<%WF7&4Lt*?r!}W$l98uaSa)_iUQ*0ibo&_5$#5T^W`i(!(MY}~ zLs4UTzG`}4Xy{kT#X-ayW+5nS+&{UZW=Bs|4LYdEbnm*pT>X4Di>ADBW-Q?cc-J>6Ul!@_^8Oo#DmYEa)ba%-Jue8$>kj);ya@>PEcVA1sqxt`8*y6 zM)sqjq?$!eOa55DIh`WB<3DgHR%-+CMLtGZ`!*kT$7=pb$ZNMl-WC^WyD{QUDX{Nw zAlh4cKLxwUV~7Hhs9yq!4}275rvrc*vUt=oI=XjpR6}jt1twgs$Q*dLaxkfCM#f8? zDXU{WxlA%R0Kugr4(1(a#R{!(;tayq`iJTUJrjbv-QaPRSDe?-WP* zwUX_ngBu$=EicTZ#@}EQmRY#k-`czLvqYgCU|%{-?N5a8Q&11A8#&OA_1VutMq<6O*P6Wqer{+5{{d zh1n=EHjioO77?laq=ugBHRITFZNzq|!N?UJTk&x{h3+{AFtie=O9uM$X~~AkBmpc6 z_+~v-p!j_AYry+tv6g3GfbrYa=k`58zOMh{dy&iSq@&@Z%OdA><$Jn#LU{*wb8YuDOChk15MTv z0<*6dJfuaB1;a#w(NS`du?rIzY#+BDGntd5Jx;M{jZ2Ayv#@WUt(2Nw1>>~zmY5P zW$QO$5gln(zENnhR zAUr@L(}D+`DBnu#7uiSF>od{0{VAEJft~wRIsMtyyUH96X-())`m^WA4GD zin=;;919tP-A*QZ8_OE=cf_h^6;gRCNitHv(7e4_H;5#Hy zn?R#-v$b@XtjK>LZR#uN%@eYp@{yckZszY!lMA!y3O|kf?TNnn3Nkq6qOW(YxP$_xw}&U< zTAl5Om~VnJQ1B*`Ei<{bKZ--e^zJ0he_^+}Sf|(SB%zQ51_7c6i#RJ5qtr+>mOMJ+ zb%og}DmsKEL!%l?EC`M$ogC=D21UEjA!MJH4yd#~0mAT|P~v(^&v)x1wk>RUaV_=H zgfb$PFaAO510fqtFTSk9%7!JO^Y3(Fmc&Q!kT~K|ZVqOhC;Rc`FsE!e;v3`sd&|+v zsDBQh`}6;7B8+1Sef>rmY+>bAeJACA;GYfMAFAy4kM@4-19$hA)*oMAqQC54L?U2R z$6H&sx{i^e2a72*fW`)9t#a_TOx`FB062J%$WvH6O$gEB-mHjXTu@p%>hbesL#{YF?j zear1tDuEULxSgJwD!ym!7r>k_4c8%y0MLW zXNi6t`;~(v-)9$Hq{W3!pvIPBRcDOhz>yNQI*ri;5*xT|`G32^-XLhs_3z^C7P2yJCZUsV(W$9v z51gzd7NYCJ8PTa!Z(3@AF33^@cJd9*7@@3)is<#H{m|}33#5!(@LEe#w?86& zDS159Hp&4xjF`3j(<2H<0vS9N6Oh`_)DoAW#45t;nJC`3y63XMYk%Nj3-IFhW^KCg z9}>Iu!#vt+sjW@DT^v^qp`&5IF$fA)IJt~0H`p$yw>8F7QH}F+pBlm4I%8PR^ne34}^{ z6ajq|)@F_SeQVe&2TCVE^Jwot|M+B?HQ6r5McAm6_HhH3ISaa#sihY>n%Z6>`Zb7C zIIdjbZ9;-{iquYM#{GSxEkEvX^yWJZg%eT+2X9Xsdg_e%AS}Qt-F5xOF-9y3@Bm6K zGFz)l^Gm|yy*Z8DgRb-x>5Y8Y{=qdpZ$L&~g>HX2^s^lVu4#FTSW5EmRUHB6$KOW_ z`ERB;LN|zbJZERij>K(>Rjo9h?>kwhEt%kzzag)40Tijg{ybT%u zMU4&3j_A<+#O1~=rGF-xSvTLapx4=OT&6NITvQTDNCM`_*GID>X0~!&_m_fxEByD1 z2Qz6nxW&gBp&X}c2$lNqjDH?G@#)*2>7XLAJeBCl(D!@KSh`%Wi764t2W1x2E;lM^uLCJETNuyFA)6XK}&N{GjhvMdDkHd{ILP<7f1p)Ql{d#F5 z6kwNX!qN?zf2flR*+k&DFnAgAv2YQE&1+rB%jWpeDQOTZ(i&fRsN zZJOUA@>8pd0zsBzv`Czms+r-4Hq1wjf4@F$?Tj2v4ki?r5d35T;xfs^cSfk7=2zyQ zn!UaMXML|?NRISmkxTg8WREW4g8B+8EZ)w1d(8Q)nTw$=p`WfgWO8kzUdOD%3_y*o z@byr_x0mN=HcjADQsTyBwgfaMzd+fSsrU#HmPIT#@GxE}Zhp&*kk6Ug$<>3$n@Uqn zBQ&i$O#9y}wU>(_+^}vQLx37-v^$K-eS(tkek-09gBg{ZyV3vP?T}Vm%E}Ye#^Dpf z1}UOAxreURT2uS43K9~NDRHBt$F_yK#9Rb{{VnEL-7OY4G~&Nc93{A4!iwgK#Tq_; zMb&OpzCc9gXr?x7heebjm&>0)v8cN_dH!L=`Nc_ zZYyY}#LGo8OB=k7NfwLu-hSHC{qSanB@>nWd_l_H~u%$n#HFuo#LH@jGAw z1$TT;CcdyHHde)D1*)an{breivkANqQgHfD_l_0PT3bmEi|Sj6lVXXD_vMnR<5pT& zR20<7F}cK{L-9IYP!HW-$dM+cK?Nk5PbqSurWHMxzkg*ifUkRjx7OH&(fU}P*5Q;} zSWSglOVL`6-n-Or3A5%$XXtw__5Q%4BVG^;J`u@c$b)?6`;1z{(m^97_4GiO89u;< zS^K865RoU5bvy6&IH##CE-PVT-CU1(&l$ z#YJh5rYEonrKLC455BVg{i|A0kntP3iHS|#+%0YXeqjT046s@8x%;ameue?*eQkF+ zzg#>{Ti2ub&S^~*m667mHGniY*u?L2uy+aFm;l9TE8 z1qFMy9FWDcF0ZIzEXEQup7y8)ssdhbNWa^J0IsUk0RgDqmkNYJ{;g)rBDtMhap@$K z8J+Qlh#V=CFMfIgOt$0PAd$K%!&Nl_`ZH*o*epS!`zTQ{l3t$6y^mC!J5KKT4 zm)FG5J0cW~OfkK!jio**;7-PZg={cJ_W7E80$A4Bc=rX+;+r1Bz+&r=e;7%#u4dMi z!?JujMhJE$6$QO`CUn$GBSLUC@yTLA0e3Lbgq$C$)v#LFXj{!y9{mTEB|A~pkJDqM z5FrU095!!1yj)kPLStbB`Gd8ny!(=9EW%vyF##`iOk^46txWtMwb!QtTC+}wg@XUf zI9cGaGKx7(=b{s;I8ch3q>_8KmHEo-79C;DWgV7$MH2kbneF~4^pypIV@yU8jpfiv z0oT))lJ+!mpXJ!si65+|88*0KVxX@Q$lpdPnJZ?bh5tPz909YI1qb*JoJ?NHvBca_ zYavbdBfz{qSrSfmh;Un85M6nHT5jogFl-xi*xCB`pER~+moUxk-CSA`vWMT|cS6rx z1`l_p(U`!cbu=A!7`8BTUH5esbR?J`lpB^JRBajFvK%;NmV%@Sxy7x-O$CZorGAfh z3Eg2{y+1j>MShK{@4|<%R5;>A0^t<>K9xYUt``X!s9t#H(!-Di9EKRtpeqJq3o>b8 zc1Ae8W-M(lhz<_E#eeT=*KSWUT&jy4@;KpIh}BbvlhEI+vJO#gyxGg1PI8cC<_ED0OU0OU)n#)_m4)j9QJo`pc zt^k$^ju4=hE+nhJ)$3RPdKc~ObF8YiYEXKnFXiduOoi5Qo*c_T`N4(xC+N8M&8)`8 zX6pg3Jav&#wknS#NG6sD9Sb!wN0(z$p)4wRj z9xJ^ZMG!YTF|pSn@}N>&RN9lVJ+y7=&~B~aW#eZ|VQ*o1X)ol1Z5koQ`@<7}LSM!^ zu?s{*@?DP;vj(L!QGI=qQ`87?dJ4yjE9#a0SUMHce$_b(Y85yLG(_~qhHK|}i?d+S zn{wPtxu8pW(=&?RhR2*GY-~KD^DyKs6l1$O9P_+MwlkN%OS~ZR)cK|_Hf%QAiLUwA zOpdNN7^=j>2H_#EfmpPT+Xt3SMx(VDUj9`3Y@sfD1hUTf4b)(pQR)5|(S?qNf%N&EDqDs9s`hIjo9zjhRt*WUXeU&cI zq^D;);m-G?3>X>25S|0|w5Bxf4?Z4zn?HOc({*o>yDt$56QLHW2= z7x}Xp4HLZ^_cxz&P4!(<-Dj5S*MJ|Phh4LSOjb9@5KJ(G;BuU)weFSoSux|;r0Q8p z{m9C}<+2O)Qv@9;$}#uN`FAvU;+5(zYfl>}L%z-U5+8I3PdS~bPqB!WJine$LG{(HKb`!6`Hg<92Hr-u&|=s zguKly@#EPNG7Wd0DLmHL0yn1tH9oox&V`j8!e1qP1+gtgYz&++Mx7Xh($n>us?~)L zp>mEuF42)v=Av=S?BL+oZpvge@yAMA3iq6NW=AmIO1y@8=LlT7N-xQM@QoVd_NyPNOFDNH`Lbo>Y!P%6RNQsSNRn=?e1~S zYap7)c6o?xsxusM^3!(KXjJLk=D|XZ?^wV~xARq&ZE(1BP*de)V&N|7!0qN^ zRLtmE)if~fM?jbCQB(TJs~v5?@OZ@rOuE!x`73nwcq{xx}>qNq=sWKf z(eZ@NkKETP&HjJEuM{+SBZ`R%U1;#1%q?>n1&FL(B|HL=Y(V&*mcJs?8F7;TptPNT zcfjxMTC--QU`7A%eC)twydy88_IhP&gFEvhX)`r}Nn2ebG375ZKgAAX?E(`-V6Oap z%Fxd|o`4DwphG}_?d?}vgN6ffMN4i86H+?I7t+@a6z$1Fg%0K1z@=n%vvD?mF^MqL zY(gKJ4mq_Ba@wIk^EF}mwt1gL0z2_7P(;;bkVGB_nTB<4r4_^(IJ&#Fk1G77-Wd3* zOul#K8OtsOH{Tx1p~EA**-cC9KQW33hH*VV-{Z4H|L+~~;o`Nw$=FV-1P`m;`lHB8 z@_?P&869R8XC~-fX!DWnuh)I0;enw@Nu`u&GgWjCL&FVB!mq_?#Jr#^QqoEklwhR} z|6h-L6V$vEfz1yO^>?gorIp`Kp#-hrepUFD>?64qU%Do6@Erx&(V`n3m){I=!pr-8 z@jrwJi6xXOHZ}S9Q69Aw1|~uiD$g!1D4|~@%T`a|*Ciy}@v}thYqvG4=M2CG_3d4O z0e}V??o4uW*_T(oM{A@RaXJVH^1jna}ti2jV)k#7kl z_U>z6eH(%qa&st+Tc*dLuCB2$x;^xCbA8z8chAw`bw$rMGy=!O9759#feVtx0*@n( zFm`_-ixia$=~*2>x=~c@fe{te!UsWs)AQr~aWFztdqNF9 z5(T0nTr4q`C43Mr1#BnmY>a?`0qw1 zE}JtWGo{SYcKx=LwdE$YQbgDfSYV@&zQosE3{o@c*^1pb4V1DrA+DR7abDie(E%iW zHnxrFJd`71;;aPfdFwjK-6K>>HZ~{)ypd&~&l|U@vzl4<2@!=ZVZO@LTC2lf@biV4 zKQBx4%2I>Uk0;zGL<)fAS9K{W-{I^}+4(Mzd4S^4k*F*G$MW)T%PYpa8(=yfo()_~ z;Ixq5^X?u?lZVF>4jvn7^5zA2F$JWh1$CGu(LyjAJ-y>7#zd4T5zwing~CzLflU1Sa?l(a!B*i~xp>35JPD zVt=NDUdTVqkQ%mUH0E<_+h0!4cSv7jrEin*u`vl`1fQQHpdzX0+jieL)b_R-iX6q7i-Y zzB-m`1%p4j1jj}F-Pryzak(?`P1x_xD2?2FncWg^gAwR$;4wKYaP4zr(Vo~)^_)nA zN-yFB-c?Fl$9uVEJ6Y}!q3nyHVb7J0U*EGj*xN9fEf$@$!CLJQ`PpKIv@%tKHv~1H z?<<_CtO7y+VEo};Of9pnf#J$qh*_Jpl*Uo}!~N|V)$`-&eUbT4<7+sU?|2l!uiY%M zo`vqsDw}QvF~mTqUH3Y45STpCwW38RsgDZ<@B9i!ygAX}vbn2N|O69t@ z-6d9^nOWCxOt7G*@4QAMy4&fIOuU%N9PDp@ic^1!mx@EawSE+Z#c4Td{rZ4+P0U@4 z^MR>SgTDd51Serpjf*hIRJ*v_Uu-`t>MRcoR25I_mzJV7wBLbscg8GB{GUJH4`)l1 zmNz%|9)Hwf@x~xiwCuRen6|sI1)~^9BbVaUGyoy0^Vf%#@f1ZNn7ob6ah(&nGFO~q z%9&?p7G+t*OpK1lXT~K@f!bbt7aC<7_dd55$y;W^CbP^3MA(x#b|4B^u{Q7TKONd- zJnrr)T{3+qS>fI-VN=RLJu-!tcMvZxgv*7=N}=#PCYc2QegE#dTCV?IS2YD&y!PhC zst{>BP22DINL#~x+sEvAB=uv!rGo$VIEB~nSb(DGhnQbCBMj23qR&m8(`(O)&c~Bd z!Z$CEdaTU0ZJ-925Y;^sQ!EZwdL*LvQJ#dQu9f1Ch4r-<#=Zu_sf$N8$DfGo!|@ z`NX3CeojG)SWX_Ggfl9Dz%7wc?K z4PSnv@;JPIMtct~DHh*Za=46kXzR5%Y?|ayf}wD{y{3r|cyY0wL?BZxXl$G%D%3#~ z`#t9W;USvL!Sx~@{ia{92YDSUnK^g;!o2;S?DgC2^UJM#z_E@G#=wSSFeoXJb^Fl& zQ8&?J2i2jdW&+BQ5*a=*qt6|$@&8_i_aIk{w)RDJg)h|Ty2C9ZRi%&UF;PJwgq40> zd(F2ymep`nw&S(k)N;%iwV~dA`|xYz_CUZr$}yjna%AGbr?~N42SbkC-~)y=K2tWZ>43a-QD zn6Sh12!Cv~DL#o*AawLoVa?V!g{?2tf=!dXKtM_&3U%n{Bd-?X>x+3P1nJ2iDIad> z5avpa7Y=8gy3+;9c-Ae}-ac^&mZ0egFKv_Jx6)gDt&nD9fQ%zAK>X|Cd#p} zEbMkiZ~+N7?vC44pVDv_N>!P8;m{y3@x$|}wu~5vtizN2`e-qs_G)ykYXHeF!!szP zuU96ClVctumFKdxqGQKyKaonr9{IJVLozV)ZcZ;9rw%98=6gM-y2V3J^#f>VavZZaAk@ly;P}BJnmRo&)T9Wbo zW+M|Gj*KA*)>Ab(57w|tVs+e~%o~_v*Zy!*u3yTjv^J6GTgB5#qKdg zjFy!Af7`b{Fa|iU3LX$(j^`NVgk{IUVgv+iKyfMu9^=FP(|zl&N=&Z;#q-03h1T_X zb_3siY*ZBVUL;$po3IWlF*=77fCY5Go{C(c> zl3+OY=Uad46Gt>5$1n2+*biB8usmdB8#|l9>#J=M+4Z^ZU0@-G`a z#xkT->{%-qnS%9HKpF<<2GBpc~#a6v~3sWwqY3gO zX=?#{R%PQqt;)2Pkv?VX8-;Hjda;$4MIcy zL#H-M$1+d7wDaxYH95k^{!#ilKI84}KWnW7sW+#V6l(crFJnT|&=f5g&B!phw==EP zVTQm;!JdGAU3wq!zb|dX*PNX6TQL@9oXKF38*5=wYu-9s4Ee;-H z*@oy!>fyH=tgb;BFh%Qsc{$d!wB8j?%oB4(!WjxLDT(Qmj!p>^dp&u;QPvBC^{&?4 zGRXbQ5Qi)}Ssz9i#${BVoOz~LFebOnTQs?kw+6?OJHlgj?F2*r#SsM=Fi?Z>^A|qZ-rY2iSm2iBo3IikA^E$0ilN_N z?|3j9&Fk&iDOU0&R}mq-glWRdvvYNUKu22I%8lQOge2lau9%}4HI^mXNbbm5-a{j3 z6rkLIhy7rT+FFk8tWUxyC#T}|7mQ5yTKIH#dd&nhOyr(FSY}#>09>)|e1X=Lr~-A; zyFoEB!6fszoS*8bj@@D9fJP)NOf7uYp>Jp-EsphX>cERUES?g}5K|v?@$qaUb@f6P zHV0<{Q3k2Gc0VNkdv3Fq*DEw9n1h^QI53=_F~wkt%4nMM*Nn|Rl~|-VI%$uUR1+s) zKroyLQ!EW!w|9BzR8d)}jT0*v6!a&#<5>Y&uQl09TwIht+kC+$MpkMW(uoZQ4xf?nSk1Qc@+y0|ZZq^-QrbeQ2tj}(^eGNKe%Ek3 z7Ol<}*Fy_uljY2vkj~Ks0#H>|Y+0y4cV8!CJ%BNV$uoYBYYLWA@xP+4Zod!Z)YjjM zNU6T451K&&vU<=OVU`&Y=qkM%nK#4KOXiQ4mo?H06p%t#!b4_8*-74F?V%363*2Vl z^TmIhoYYd+)^3UEUX=Q60|zKecA}-5ve8z)OWPdocpbqg*B?44E?)HEik{4%G@b#E zWAdznDZoLA-Hc35d#3@G2(#tp+zIvR1*R!AD#FjlC@ zG@c))i7=C4lFXNvtKo<+h>g0&g!(r#{Zm3DrQblIn9`a{Ha$?$3aOp|1dwWl5{TL? z`Md+CO0u%{B}{+HXmO_TQ2Z#Gl#IVYh7CR)SKip$M~WU?3_BKU2uIvF*)~t~Uibk3 zUlF+);iTF?fldD$MwKbOhl|2=_P1J^k)li(?QiAv!<`|6A11QQg4 zSXC1|7J}sH?#A5`y@Le#e#Efa)wQ({@GK{LcP4T0?Hlm9qJkEhc_i@S>uKL0bRu^U z*1N4Y18ls>0LF#I#e?epNVYac@4=+1fv!r|aeCUxn6o&d-t*I+tR6`Q*ZFrTO-{MK z=GQj%e}+E)Rhn|=>Op%86H<3;1PkV@L_rd((60IOhSNeBDvT+ue=t0qZ8k8AkX^L- zjMyj3;lPSW1P(ApY2bO8k+LUdmh%UD+~ypTAZa z9pN*Ga#eV%26 zv|@05&c{wi7gj5X^GCs(w0Cm)bZE7enC|i^De*#X&3}k9iPb#s@x}?iv|^A9K^c_w zDIC(d_?_A_n(&J;^oe#QVVU%m6_7ZoT)d&~|MdxM4{1-tkc?z_jNn2ZH_vaSV}DU& z^Y}Gyy&+XB+&R~WwM5Npus`P%aIdTxN~~I(Dkx(`VM0)b&(edAPDlY8qoT5xnI;df zkRjg&1|t>)Y=}hZX@)&AZYz>B;41w|zlY!p}L zmy+5Q{poT^o_z(GgI=F!9r;8$diCpQiA9k_85e!X!CewoPfz16v&%M!>_%Z2&zS z*ldxAj83YlY5&DDbhMYsOTmYjK(xlfVbgIo)*%qfOd2X&W^$;B$+_WAzqk%F=;o7F zSHTi_y`E!cqWPlk`&d>y!|i3bfL_u(Twq{umdT&cGnOhHY+_P4F+G@;TU{7#INyWU&Bx$N^m$^b@+MCSwqXpJt^@wAPNP!TDZ6Zy5E)~luE-H3K9=j z6e-@)$FYfzQQ6cYnVGBY>FI{eKV~vSDsJAT!!*K?6_ha3q<$f5ud+o`s$O5ie?ztKK4`f@7TZEi0?LT|B@^D4lBNa1Zl zzWvcuRJbgZZK0^yF|4eEb7cNlyM>Gle;1&pOEE9My1LB=l)u=l0Wv~?VAOUlfFW(y zRvjHM>m_Ljs4!=#53j|-WQb|(!T+kYU~+Pc%&6TVE-`~G9`{WvEercU-fDPVS+y7t z&4TH%mq39u6tJu?@J44raJ6ea5j|!8=1+TzT83)DpZE8VBy|W|YP@QsZtj5?uqR$; zSBvP#8YyXF)#)7`&{hpjMqb|qD6=`7$5}bB|H{a4-8AhMN;lYt$i}u@{AA9hXN$G; zzabdXZi?G?ah`T9`btPoN#3x82ulLj@(r_RI8{1SAye`BU*}}5m+c1o|Gd*qD4O$0 z3iq<(b@8G-0b~gF?i&mdqVj_a6&pv>+$o$<)yB_LSx7Gs2i(2C5mKO(aU>MP_k*6V z3e-^3v9XyPEsiT|h7lDgR{hufSofKaiH)a4jyt7490dUI3;xvtd=hIS`Ns_|S&E8# z?56NulHCO)_QYmNQa4CMZ=p6aJ{#Eb(4WQO>T2d?~Ig>wYnd%mA* z;PqegyN|#f9K2Lm-L`*(M;caTLsg0c1gzs^e*nQ5Ud)y0i2(?SJF z3bu6fx2h2eW;Fb&Y2SLpmf50Z4`Q*4i(323pFNGK-n^?ooY68C!`)I@l4NBiZDgyRcLqH zm+SUxTNf>6paGMhR=GeS)WR1jm$2nHgCkHWj3e3^c_%7*D>w_`QwGL-e-Amw|Jw4J z=X^5Az7U|&|8sh_^W?kb26hobsx?KiMC99;_kD1E6Yy}^b4LqicTogf*4*brvuBUcR!a5-ODLHCW*TR5wtyss__HL=~9rlrO_l4iO_JG>DT$X*!#CMaK? zf+{ZVpQD&oEby^aYR7d= zAOoDmNW|mh_GPSQjM2FN{5<*#3Dsk&!UT?+Yr~HsK z{a3q8O8TyTxuUF8^5k}nNjNE8fUm-O;BtYU8@K^!{SG9vhj|Dnv>K-LY83_>0j{vg zz_u?r`k;81?Jo#$l`N9kqmVl5Ie$KqD){-)-Q6D=gg!U6C7BrEje&~j6prChlCN84 z{8oc+H%RcUIOK0wFSM43v;Z^=2`Uf0R#=)PH`G4<%U}9o>N<;((@R#ST<2T6ioFo6(bkW^`C9 z8Gf%#tm5&DhaLNUk`N%ZxjLrLb;)fpyK85oXE zVn`AlRenlBO%-W)E>*K)+Q$#Hbn$=0f(s>{>#j|2RyIuhjn{=BBQI|LY?@T1v7xissTJbGI$> z-0v$4uEvI<0LfeN_4l6dLYZ|W-}FUu66BXu6pOD$ykR!&MRwnfWaF(+_WPuVur2_+ z#)8*yz-|sjb`!8=8ACoe5FZF9DBp2C3CPL1@D(K@{5tM+X|){5rdsh0GkzCFYOefT zEi+)0wOp&~fK^X`yLELo&3>p@JVr~H0s?o6$&kPQYOO1cKWQ4;?M@)6>Z|@{BjNAiR8!rWZ1XV= zES*aL>R~)H0qt$bvRQ^d$|UQy? zW``OAH}`abU+_;~x-3N(TCm!ji}it4L4*)|T_=&KRL5WUlQUF=+>|EM^b;ZsGVZPW zv};wSWehCz<6ee-c`lQa(?6AjtDc@_2hgUKfBm`-$3j(*jq|f_Q-6<)a=BJrV;w)J zD5Fv!@;HqCXpeNpXTdmDZ&G-NQNpw+8I1+7RRFB5a`MlAoBzV|3!Xv3 zfAZH&&O3E|r}EzICo5TDU?}F|nTy*HXbL0@!3?=NFgIy7?fYY4xAd^QYv^fG>zK{o zYW1B&DQa01{j4}Nc18K=*9?wbejgH$ECJ!$i5+2==?;M7H<{2_uGC~}9!q0*j3Uvs zKH?Q&8;i0S9Ilp5?Kc1D z*?2ndzmtgd6YeGefreOr9eX5c6B-bS*e%9O3gmFS`J)LYlxy+S+J zJ-?vD<#2APYD@%$dG0JUs8uLSwXEC|t!M(gp2zd<4Hyn}yidcIXg$}z@F4s{v=yI! zYq)~^kMC7g{-*sI=fnJT+%x)j+ez!~&LnL8_+QeNJKaQOQ~G+HhDx=o*TS)Ks&;|9 z>csR76Li}J6CHPrvTD;zLwH}7bs7-S-lFU;mgZ0{@ZShnbrGC^@SJ`P2cp(WC4)n^j#fQqcnyIHg?bY z`KGyKi@X1Ei}dZ$#1bBxJDFbX$CiNm-UD--Gm^8EPz-SPnQ;k|fwWBm0O7+*GbZ+6 zsr&iqi49-3YJ1+PVxh)-x=@9q*6s6Jy@`^P+RaAqN$}5~nrY|m&M?M3!SLp|j?K(H$3W9xE1X z_N^cOq{iHGg+D>SqnuHz;iS0UsUsWlPPzMYXE}%Rn3jH3N?{#%eH)H^z9%Nk#uJ-p zF-kI?wl+ghyQi;z=*I8yA(|vpz)Llt!6JH*9XiNjYtvx833M(j2J6WVk%r+67E|e% zx5g|wh=yaAZ7c%Xm%AlT=0it?=}ZXq02{KFA$*>aE_9-zYcN17c}9$Bu7nQ_DDXB z-r?-clsXO$@#|lN^g6SM$Ijnh-0O~>5L?liryL)wqX?(n4?+OF;lrJq=CXH|Fi6So zb4#QVgAh=&JXBTlsy4qu{hIl%VnUr!;Dgsd+#2_Ht1L`OP>gva zB9hXPq9W`ozn^^DE;nOm8mz60xtNB^6Vu^3m%#qszhc_--4uaNSfrOXdV~+2q2Hq5 zedjRLv9R7sPJO46ifTBXpE`KZ9YjV^Sd#k?%6~l}-CRxTLC16U7!Cn+R$VY8-e8+e zk7sjGbG**+WVi*RLRja8kTXx)miFDk*1}ed|ZiJ@!DWBKR;Cv=`Qw3U|&>SVc zgqpo>e4)tUQ%yrfbi&pdW%}ZoP!^>9_!-K3NyQWrc3ZS@2oAx5lK{cpHF(fKkl+Lj?rsgio#0L&xVuXN1h)`e z6WraU&uWr)@Aup1*1dKA-1Fx)MN!q=YpyvT8P6EcoUGW`cI%#{m)j@n2i`=qAN0K&hvE>H8?ob{ zuc7ewKK-PkQ`i-gXJgA=9lk5m+`0Mh&M-O2_~VyqO#3rkm$rFabo8_=413MZ=^{15|WsqB%;>x___eht$(@{`3LTldp zWtTT8>KdigKZyZAcslk3mb&|c+q1VW7G=XPd6PrfjO6#+Izh7(-O^#2ma)#b{ZwXJ6_!wrng)YMw^r98FipwOAy~S=tUNh6QoLTt`oxBC($9fjY1F;6$50 zmvGnr4t-aL*P_!=PrB?;f@VJV({}GlR6UU{;a$_ox5|F@p$t)7To`N|v3WM5M&}Lr zS!=+KmCCt;A^}T@8FiLwHWtP7Ivq*nZv#_d-mi^IF?ox5^fXDS}7pSei)Kchyv+gbm(J^`2HFfw>~hL=fwwrjSi;@$;;jGkr=Zvvu?ED|F>^m?UU3dVY((6Kjj@|lc=`ASLq zxw$5yG0}8pT5sKc2Q1ysnpvzaG~M*^EN5F=aa7~cnd9IZX}KJ zo;_?Uh+@<&c7EkI$)Ew!_Tz({f*0HV2xKBHFRUFx01N~j`9tx0obT!jL?!jVqe!>Y zlV9E{CQ~qklV%CpiQ4KksaPw>O_*@k5zR_|?31~9@gjs0mv%rs^YAN>9VhD+%XilU z`H2~DZhI}y6opWA4r-i^f}evlzOovW@{x!9G&R0E=2B9qIE zs}f8&e5)G9tq4rp)K1trmNba*gdQGwD|{CJoh^sO7&zZ`naS|er@P*$y8On<7+W5z zH@g!*epXGEj8AD>RO~r7>(n;xG6#*MQhWCHTt{vv;^9}@u1Y0jq!ugso`lv@=4->2 zBIv19?jJX^CFRc9!FM7q!7gBxMt}q{x(&Eo7IF}*4?FaM8hjf`%23AVcviU7>`}M$ zDYN{^{&qzP3FQY8+%9mp1e?LxhuNQ}FS<13FZ&J_EwoMZZ`^0A8OXAC;CL$GPU9~i z@J~eyoh6Z^L3?XzMhsD%FVG?AA>F?r_6D0HPEan~8+}P6Fh!_+9P5317GyH`Gb#d2 z*JmpxLGFe+TY)&obcmI0v0T@?ep~NHHGq~@AM~a=-w&-VIwACuJCg0r20aIHpAwGY zf8h-NhzS$NR<#PS%V*0DsBJ>ly^&N@%zWfW51i>Nbnllh_APX!f`l6#^3;Mx;|g5VlInZumnQuF$k*RuD6QS08f2}L02bMM09D(6h$IYYv7qz!ZSIBXWEt$PVj{aSMTyF4$pDhOEATR1qJ zC4GGIED>uzylOC?kXWcSuNEK8OsL=6ySiPT%sg{at9LA5ViFK-1~)y4;=R4w{rDU- z9oqsH7`_(899rz;E&Uz^2m1ksK-vjF8lQRVr0yt|2NZe+W*XaF^*Z6_;^Zf>)wt-y zKV0_SVJ86!ZP}{^?Sx>0%cO{&hikHS@15`6J7li_qLC^~^hOPB-SN)@ys&T3Tj4na z5C`1CGCOODG;8pJ1I8S_!9z_Ev9}EQG;`du2^UzP7<(G+TZm3aw{sSRp3U{^BN7KM z-RtiQ_QA;3OAD7eU7v7#21dA<1O}7zleG=}91Lo}8c$1^Tn(Ei{hxy-`%Xn!1I&}b z<{Zt~;q|}4_12;30I^m~`E7BXHdCd696vuCDjs~6k16~{%Mvk?m{wa#>c)DO@8bT_ z@Yqstzi{}ZJf=FU;!<@xFw0WP%!V>4}czNNuTSav_xrzAu0)^bWI_HMjo2Q5n7G%xyG#>d&m zH1-GqO6R_*SjY5SoK&;wx9cr>i6}xPX>#tbxF;{&2X?|R>VG4PqDvT}9RiuIy7Ef? zb7DC(sH6G&`;P*SS_(^)EgtKp69Id0Z@=|*?%Icsh3IGe$T!l_dfs7Mi_CO<(=;M zuhdm!QKsK`6rgA3Z(Sbn!B!%ngYJ53o$iRFE&1u78=|>^F&MZHM#28pJ5e zzW5^>1d^X6(YOWTX~Ubc4!()rmFCzh#N9}-WUrBN;r0fkw7v9 zyQ97t8$<5`R4v@~{mgM-A}K*Bou3MAzP2k6U}UUFc0@?OURcjXG}~Q!R`}gNTf(V) z_pM(<_mE)6Zqc3$ZVGM+wEwvl-I&f%`|x{+D615*B8)jKS!|^#(o+%r$cpJ-H@_BO zesYk(@~3d;60Q&pvG@_dTM6yVxbBidF!33JuJm$T^`Xx`el4jeQ7&fS|9|Qk%>U}(u=pa0Fx!^6tO@%a329`67D`QQIvy#DtmeZvB# zfDL|p(s!1yLk{o<(NIoW0tA8nWVaQ>0q>yL$!IzPS4=~HVZ>ghxdCq?IlWepL|T1< zkB{=S(%C5azn&33x3}o-^;E50_+eAk`9cUD_BDmS=sP^v0Iv6H%7ktHH!a!v(nnFb z8ZfWpz|#Se7oxO{;GE|>5v$x$TZJL~U>dMh_4B^=Lo5nPOO1?Wa>}it5V2Kgt#25?aEh zfMCn-R%KBbpLRML`Js|fQyGFOsiIkl#;E*$;UuF_Ts(s`oPzRu;ZVsyXi?9w**dY5 zGx`x!;A2oJ*7=qA(-b;0F`n9;g@nKag;-1uih2>TD!_J04v$c0A;B7DfiN66L!qB7 zSWsf=JQ1YxGXn)QUpeH#y7glwU%z-WG)_&0NJv$!L&l2SDF_NxZ!d?BvJ{;nT&aMK zAu)fPPZA$Eihm_Wl!YfNW=aEgo2XMOivMvck*)AQOF)?jM**O-xhoE83WTF55RD*u z`tJf!2{cv-CtZA4AL`Ck5DjcdVQyDrDNGY=9}#-|>03(ZU7Kl;#`H_(@E7OAG0ZDK z)mexSBTB&`ga#p7`hu9XtbTl;gOf3FodcwqELfML2`cDCpPbkD;jX+nPSHJjS zTFpVYy)b6i+t3-sMyK4py@qIlp1pLrvXT?+28m0w(-3Txsac1&OCC2=%fYVx@T<5g z!hwD{$pc1)6{k=;B0M_?-eY^75wBBjy|eUK6kEg@dUKU{ z`0mqAEKm*gShw`jDGItU_sKnHS1bTG7zr!mG z!-(DaIVB80Zi9n!9i@VnF2<$nvXcoxqO;ehGY@l?8$o=I5n*ykszeV@P+GN6S1j=#^mT_QM z=bCDq0&c6A7&84|`UIk3h=PJxFAp%R9)bV^3+}ddQBs_cIQl7is9i%2ib)*1%5^1E zyFT;Cziui&?N4FSHuhVzAsHUkpu?(Uf`Jj2Nc;2`F#D_cwSUcJAzBI_3-&Kb6a9f z?NjZIQJ(41baU0GbTvQMsu9=lVI67UOwxOxkt4h=dkxV6DNOQeBXg4TtIA~vX`@;$ z%=~cdUB{(eD=uYpoSwH$dr}%*B+ZU0Ba&ZI}8b({5yi4|O%1 z(z2n8hwYZ->8xKHy;M^2X#NDmnl24Q^#Q^MVxuRiIXH~Ih!!b#&frzXM8>R$Gb(KL zA|gILi8yq0kT*+Vms1#lOZLHbb9YcHd`!~wHJJN1=Z%GB^t}sKM+UKpX(hqSPI1!d zmLKEQq!qNV2cM5(P)OfP;yB1eHT-J~*WBhBz}4eWRCgwvKrqeK)*(o*{3M%Gv&iR!Zwk4$Y<+8}&$gfI=zg)} z&$#*($ul&1*s<(>wOf(Li6%4Ay&Xxsjv0=hf+g1Na=@sA@>*y?DtD7 z_E1H2Fp-LjR=Q=oyoC`3i%ZvF-nbJ4^@?hd$%@01 z%SBSj4gZ};2QY?@+PRL38sA2Mu(t$| z&%L#_w*8lPKZDTKOdh67?FWrg5&Qe0CS3Kns9kd#wOV34-FI1i_X_3@NL?rHoIpUC zSYdl}s0uPzLInyFpMo$Oj5Fk{d9+6LLX8sk4ytWrdl zb$E<|lr?p9N)CJQp9Wy$N||TS%8%WPi|hKd4Sd3}(yh!^T#{3Go&5$h@dsG8nt8zw zT9d0e+!kKp2&tH)#d+&%A3md?=s8bQy6OJx(cZ9-ex*9=5J&qWkqoqu1%BwF7b#2rB&}b}W5F`L{)Pz8|AVC5wT0xZE-6KQ5jT*_!4&m{$5S zl2OuIYiXuXsa=&*Trp8^En7#83}VlMk2=y;1W;Jd_`i7$FnM*2LM8w!nztt+%TV!? z^Cwzd*7eGG1wHHWpW?2bxDPw=SDltM3{B$FKFc$Ur|bDv55M--2?NHxMbO|4^$`k~ z5_BhY@5Ut}vT*bB?Ob-p{V;x3D*gY&3a6eYbP6mw?3C0aHjDJW?`r!3u&C-C&3?&l z;id)w5uCFhg59jF>^HIOTk);&S}xla>j;7fyO{{9eZ5a>`(1!_t&T)gn$%7vJBhy6 z$~|erwmlZXrG-6OycFl(P~k2A>tL~(;&~VERS&^HL@ubE4aSqdGSUnVh+&mZInlN! zE1EA=AC`Ae%fnDr)Q|&^k{H=Ks^*8~ZZC>(jO9UxJEAl|?g050e4}{{2?bF>5w`H9 z(?H*tKm=LY_CvYIqKcDTrMCIM(I8-VBFAI*+BJ@b2rud9OQ@xw!ScC09x{qBrWG1q zJRHRRT1 zio)SVH8r1kZ$_Z$V%oJ$s+hb+sb_v?P@cxtRmjM^@x{(>vW)2Iy%mtkQ23<#he<}- zCe;li`4#K3{>78uOa!Qb-94dt9Ht*0d4}D6ZnM{2qfSCb+1z4PBu$JBlDeZ5)anSu zgAh2kHwi{I$)BixI5?gM(a|M(^^W{EvV9CE?s3_E{7g!>MeC#~L#IP;qo9D8cDmf; zG1X7-Q2kceJ8fWzK(GKxu4z%Owuf@6kN6 ziWw?~$S>aHz+nKnru1DMb}f`v2^#^;8J7I@iVcWcNyM~c#o$FWY02XCh(P^}Vn#s8 zub#rv?s^S9Hj$P?;mxW$uYSqqy4}60GKYDfCge|q0#i>lExCUBRE#3u+jIP&s@F+~ z0z^Aq8kl3iC>ZIfL=K(ezV!?N3J`e6frS?Xa0}vK{<_=PU zDc%l8+PC3I$Q{?FszTy7MDx6*F zl|3#>af~SZ#L$yHVcdM!-+a}4!8s?4%3{n!&19)|V@Oiw;wCCaM zGv`C*fQ`9Gs)_AxOxxD?K0c89kz59K8S`rR;7$Fu{|z=m@csif-V$@W-FeW$z{6~j zBQLlT+pRDdu+Sn-j_bTA*8N8q6gvz-!@me4m~6bZh$|Yi{aOltX8-%F_54+%%zJfL zY?ixYY0a3}_ar*aswwW2U=w~;m#3BC9R7p`eGE*XoB^#&Oi-(Aj!fd( zb}W869O${fT?ZI!9=_cVTT6BWFtqsOYS&el8vNqf-rmT&zny(7b~^)WSp$$!#5ekZ zMi>!MQqy}@ZTIAmtsnSvC1#g{NmXntqcg0Y_2%(Ojw)`HP!kCr2TXAZXk&(i*j=AT zggvqH-RC-Oc^wDHiUDJPTu}aZI9owbr5zyeVwyKV-d2D(@}y=K<0hVqApGo{#V&~% z7HWTe{w03q{-9-J00lQK;r96Xwa^d)9H(zY` z3pZ?KG=jQ4G$rZQ5h%Wb^2I)%Kok(su!vNCPb-_-=|>Uh2R zcTw`9u0%>nBnfVe4-&DG36@PkPv((iP56BObn_n*WD;h z^bB%!Qa)=m|3WGIHYUILnFhD2l&skI_~d*!vN7);F)CX4b?BxaB~BmA*gL?O|4G)E z5B`vi&cA$Q==Cd&S%3er_dj2jon9R``@T!2cC=OM^>-D|!Kl`kb8u zG=O?dmNkjewiVy`x>D2JCm0&HnU4JQC+4iQn(hl@GaAYf4|X%mx2$fS-CSSoT`%6V znmoAh-i6;I+N%Jxj;aPeY^3Z{21wReL9~n`?^*K2K2yrA8MkfXwM&bAX*T$4V7azc z5;GMOkB05fx)SQsqYpmqjFt0|9NP7OJOg-}?x1m}2<(;74AwvA)E*g71VNApois0V#KoWAuaT!+AwLBB{U=jjnKI%~0!#Rzn|`W$zKA z>+4V9PW^ah4K@k$dft{v`{`!F~1=mY+=sFr}aV1-+5Ab-{tg2ySF@(ansoMNJ+r| zbzgpUF}ag?zCYA!V&|Bcfy|l#)$9oFM;5$`12klsUJ!&J#^eDJGXpT3DFUZm)BZc= zg|?PrkzoRT*2b85u7i1vFZ?7P@+~e?XNv&Kf5bOZfp`nKH!$)kAe}X6Rcxk=gVBaR zLI!Vwx(n@wDDCaH5;Mvgh}gs&>)vvL;_>he7tgl8Pa&YnPi(J!$(|En)1ReF;?OfGNqH^X?!Yagt%OKR@ZUaxPdN_#Z$O(>rl@XE%te^g*|# z<{TV?oTNWmSlD?nt;f-k#yej4l3vAx@R1^TsWFdfswO}VH^OQ6cXIR@XysX%vjqE5 zUJX?75B&!OaZWa3(}C|~DKe~40Qf~}MegSF+r}YeetLaZ)^6?dFX-u5ka1TRQ51p# zj*=2jRE6H~~KW}DMXa10+Vz~Uf z$J9qENYiUAgkB%No*G!XZ5$F>@eSs}mv6^fZO*mTU*MqyaC$iTy(&I|qgc#zb@La| z^Ji6$%>m66dV)G3#F+O;iFQ(~oiRBion=~+{7I_RG)B(H<+C-=*3hntW(1KDJ}G~< zHuD;X*zeyG6+|42mU>!Vd&$r^Y1(D+RW?l`o5ul0@PDL2VlRJG*4TIWP&psy3=R}z z&9-Vn$xg3&xv?E(7T$cGoSJrIxh~VS9_jsswkE4hy1nTj{-a{39ue!T_)=`9%ng>o zi{i_1cN}+|<1D+5p`0ppELwV9^&wU^K`L~?Es@~E`IxvCFqhhunRnCEy*jgBHDXfC z9S?P<-YBrwdY75nZo($L+McI5BLCzj|DcB@6~&va?6PW%-t?YQu`GY!`sV)3E_8zWqx56D2|okW5|iPoaGP9{JZ* z#!GkyOH9xUKI(gYT@iEo`0R3@L4_1!a4LgT^S{BvTrL~t^d6j|1iO&g2NFNv{;$rn zdZ1CghqQ#V^x_}k)c^XG>IACj`ACOmO>OqgIg@*Q%l)LrFjpKc@j5|*CdXhsJR0ko zO_S(A!U=>9zz2OhRvYgfy0X&%lxE)#g@YAl{24RXQ`#Flp}3JhILvq{Ll_O6_w#-@ zZdUqi$QupbUDGq=>(lz3IT?_e!NZ|xu9;A@qb279sA&2TDSYX4WBa{A>N`hIkDe!w zQQ$Jq{UAo=fLl_cpEX-83FSKDcV2mOILHRyCOYXxkP!)sKL?81(H(t(&xFA${>H{5 zqlga$1D$BH#G$hA+si>9M>du)MK}R^Xc0Vl-;2SlX;@D9UnueH=-UUd^$wB2mXr=1 zLuG7Z54<(<|`|!ei=Y; zh=ynHh0SsVl4i`-4n*qQN$IC2o3Tct_!I71m#$A+iDdO7ML))1R@Ox=*1)9G)bzOR zC2v^k4GmLJL#UMhvw!fM&|qu%PtQG2Y#ow@PR0oMR4B*%t=z_V5jwH4k4Lk;;qbF^ zN6HgcbbgnoP%gM!lEk%qdDu~L)9!mo3Z>E!VLs{)zEogjAZ41>7-IR&q7vPDNvGl= zB0f4$%DqEC6kB1z?N%u>I5^RTi>qrZM?vkq#MIOfURMs?nN8;lRcKs1Hnu$0f1`MZSsZ;`)ULuo9MgHKAhV~Nzn|zoX zt2g#<(@7>Y)$<2>9BXi8$dO9d07yP28iiw$H^2b5sPgI!n~JAlKd(J_o4@snjV-Zt zw?Pk;3NR!VZQImKNQ_T7(wWO3i-?L>NdoK-qnn(uf1+^*->@u&5@*6+jx<) z+n)NT6%5oc)W~R8Z||W5($H%nq5;*V#7=v3Xm1~pup$QaY^u0kayjSQ@l9Y56`zpq zZhGwJU6}IAkkW(5lf^HurF!z@(y=7;Mp$0J_q()AnJ@4z;uCJ2>?QyOJ-6$U-ahO?rMSu2A-TRcdWwEu^mfSZK>pFQX03M2! zOy*a1atFWlW@@DIjg1MB5*Z)qr+qMxH$(oJ(X)ZE zua6bO=NRE5YHYOSLPLd&Gr$5}_Di?J>%E%pxP=yZAzhfo>H1+@6iOgIE4fb4YU~S& zOr#)CGLs(-FrtiC>lT-Hv*{#;fAt@VU<5=<{DUsgxc?$3iPj|V*i0idowj1= zUu_72x1ol6%WwjI1tI~Z7TLA_i_qbw?uxk3hlN*}F9{kwHsMCjKS->lmXPj4Nec4x z{8v6XIVg?J(~3tns6m;T@PmaKZLkf#wiJE?may>K@y^4;2guc`R>SK!#%(nfUDaZP zJGb1mr>^igv2}lYxJwVmy<7^@08ITCrwF|l#3HZFmPd8!3YIAMPC_~AsSA||;dWWL*48`fhgc`qZ6*NCBp}P~l z+~Au5uVX-QuD*TCbgjceF2bx~Vpej28WhqBP7vw-PkBdw`~V0}n0zUyAXMAcnJckt zRbTcfW2E~EaNBr~AbE+U-hUdjz0nP8%5LlHgEPrV1wWq&Ly@bAnFWM`$coqb5z1u4 zm%lt}Fin6F;FAgubt_4bQNCctfObjC=$qZ`AwE#;mZBSv69elO3?*z2T_hCU(Dts^fZ1Cl*-1Hf;wT!pk`@L9}bxzreh z$Wb7P8sSCF?!dlDQp$|CEKuZfWz_m2Pc27vvR;x{hrm~%j+4bZ{!++MDnS`w;rbY? z|7?Rnr%v5i;u-42WBy6mej7(AOybMaKb`BuItjWzolmvh_4)CVu|LFcaU@2~Cu*T$g)fWXzX`-=d2LvbEm3E;Jy?k=_cR5> zL39)idU$uuUoY{v$lNh;JJ(uR$BKD;Pjx z@0c}f5EPi05$BnC?~G7kUsr5A^8||FoAtJvt5kSSD?0z21)w^4t$sN7n7m3#8bu2dMIb$TB-2Qw zFhT>t8RJfT7(v*T$2~JgD6!hH+lp*bWyghfi+q;){IAmgH$MA0Hp9I6w(+PO|M zfKWh*mT|w(9JB#6SiAwW196|umtRvGZ$?H%g{tFSE8^37K)&IT@m6yB1^slQXej8E z3TqQSU(TTM%}R0wGk)6R&ZO&ON9RvY77Z1&Mq(mAF=BsPA?-2k7GbEU@*exDBp7YV4L0psNphj}@MOe~ z0Sadq_aw^&z+fup5fY~3C;>*gWT(25)!mA;AI7fwxV+4Hf_jsi<8!!R6+Ta|vkMLV86kQisoTI;12K>N_q{E!ucOLRvpfGU+|t zSJ;fTMiHdxR84{)9R+}#lpvg3Y3Tpj#(Xz@&nW~XrmqN)nAq+ye{1z%>K;BcE1?>g zS+{uLx?K#mLLD|vFpud~22ye$SpT)!XpR*qmfkB&;pUP6V1IfQ3dFy1aZ^J2XdgQW zkNYRKhjAi0)OKQUndbrZ@XpT+0NsOb2l|lv4T)epCvc0;xp>N}4@(ZGF{c41G{h@) zjPr%iRd(V(ZGvfK$s~-Q?%MwRD6FS`8|$5_Y6Fnl|DY}e_i9dTz})ZUMU7wZo0;yA zN<~jO`T8d5E7c7XJ1-_?tHTX>Q9zYT9>7ut4!9ii@fWiFDr^d#Q|0JmPgdv2WN=8g zY>x;qH3|3vpbCv*68$<^fRqPzruU1cXdoo_gYi+&k~-x^Rvps}*R9h-D=sy%j>p1Uvbmc=cW&-?r9 z_z2;pd0=D5a{aUQ*>?2Q>i6zNJ$xck_JFE#$7ML#-$wv2^}i>#J^gVl8!{GWh!Mb`oJ3RIk-8=m_2Ar!h9|I{jx& z%pt}HH2oxdkj-Lg5l6k3yIMxoqZXwA7ZLbL#`zIr=<^7E0Q|EF`=RU`NV36(=}#}Z zWjNKDIZRFV1r-&hi^=oXT8dHlsWB@a+WrHwdpD<93B_m3;6v&dVf?ERCYTNP>_C(u z7`vn=a5#U|Nuu@px3wAw*w}QP|C33pUCzw|WRMQMYjwG!)B^1~7QK%UouuwX=Ne2b zY+p<#A?P7f7+E76*~DZUCU%OmLA^}-B{p^u9Vg|hvvh6+xo5%)pMco>SCeYGj=Iql z{LhJ`!lUvs##J;>V2i7U_mNx@dm|RMa+x`lJZA`KM4K-!ecDa&7wNu4U76LllsgKC zi~BEO&{EqRtA1YA@K=l5;$UM>Htz&|E2=Rye|5gw(k`6uLD$_KDkZ5LOW$QTTn`Un zrznP&`GlrzC&Nu`Te`ZdPym3^Ca3ukcyj-1@B4welM&v35Y&QV3_?CTb2W6PM*u%( zP*=4UnQzaC4i5?GTa~D@qEm5ns7*U)9{f~*Uch4$f4#l^{dlrOZPrEiCD?q@8m0TR z(+)0~63mOYB)Zz}{a9gYEzMrrDOZB9u(7XM8Kyne35NVoF7oljX8tYPJi5T|OPxHitt?+v}8=K*xqiMs85L zL|kEr%Lsf&A4j!dDi zL>-psjm<}%T4NI4tH&b5-r4=HZMU}%kSqHpdV%?c^NV?!7d5B=5*IuMcB`O}Alvx) zIoqTXBRfarr-=e010Mw$o%Ag(qo65=8CC`4>6*bwGY`j&X>IcKuIy2M0xzCJJ3P$Mul zP5q;F0Yjz(jKXPfWNJQw@H5Kr`8^B4#X$lC2S?<6miGqs^dvtf>woNl+K&VEulS;_ zLaS#*3_uu`ddJOT6Qadt&9^+(*C)lz<^nE1x1H-pVC6rq8ADBDFXX9JGa}hG;4dK| zQRh@g@IlzAFflPMH<0E<<5FVwKOJJI9y`vlg(oa&@Y3DiXZ=G#Y3Z=B$GNWlVB?@{ zTzsZL@HvOsGw9i=y!UQq;Hu^=jBI091;88pX3q9A9NP7LP#>gb>03^(YN4<~^-$aC z$ywo-7jk3-cn?>(k7AQqcL2HoRdE#Wn-D0@KPJrSpR-)Osgg(-jrTWuQy^R%0$Ll- zd*`;-kcUJxdFXZmhe=q~y^?S7xwaaxq$Qax{<-^6$OkCkeKa%#klW0hZfZ2$+^VnN zem7OM0U;SM^6|3e)D|T=u~zlF5AzHa$-DUq90N~K`Q}4HLKyK0@dBaUjuw#z<%#<{ z9iO(v!wy?!@2mG+x(LSSexmgPdRI|AOJha?&JNeJbDt~PKV>buW>xKGxW=2aN=it4 zd1j_bgyDUiw*YXQh{kJEZ1>Y)=0$Mfba_Uj+Y!Zx&EifX{A!{A>#OsfU*oyb_d2sC zPVYy_9{2CwRR=)XT!@9{#H)`IJL!BL#-|%x80^p!bcdH)znprH%@5qhLpFvb6}sfE z15w}c`LrIp1Y;-$5dem7wqH3NUDp?IvMVPMY5!iQmos0BeZVi=01dz~bcnzY&f`^q z!(?Cc<#q=ny-ag;b%zTejVCE{b6|;2Plg&keWGs|%Cb%6Y4rOJC~vHTe%4f4w6Q9G z*lWE8n-Lar_wJW`&S4xu0Dydq&k%{W?TzAEdadX}c5`DH?Z&UN31iw{`TqOz?WJqx zY-X+i{Nt}_JIX+I+JC83e)ZPv-}aCXYjRb3wXnypd+ufV zXsm!cp(h?CB-U)WF<`LW7g!k5(9z$jNPHa0kc6I;s+L5>&P+xIG|`Oz$3WkAgh>6t zYKifknkrNb;o-_&dxXq;v(Hg4_hL8et>b_K6`#=4L-GQV5FmWmSVW|3|Mx;{q1qls`a7UiQnF1Rm$CMmfi8v^RWL^z||p` z0S*m2_WZZU85XqdW%GP3;RG$xTR`=Y6xtWjdK^hcHqgOi;+y z_rUI+Ur{{EKZCu_6PP}`+J43UJck7oJ!V{*4;_$W>5g(-S_=Q-~B0>?m3|B3b`| zGKg8*bT=cZVE5sH1Pf{?UpyRwU?la5`Z^*u|4rhPmtqrkyKzbu;)zT(0Q5SDLPskO zpr#4CO=M~4skQ9YK3}VP=DbfIRHkcLviuotlMb-dwU?XuoT}iPH`&shmfyo+-CKby ze6&Giv-7H#37C>f9}fWhgZn)Wp)c>n_0VL9V6d?pZzq(jt8|;~me@P7Vk^e)?~hxQ zgsXs=ehmlF5g8s_pS{&~O5;xNfFAFa^B75n9vc1CpB0Y>*r!G0S^~3JBl_c4=t<#~ zd_TCJvRtX-R z^2qfM{1C^*N!IHtIZNYwJ(0?@S@#LBbgQz&=|)c1*0^9+j7Dr>a}Dp&dJ@+~l_@YF z%TMa(;zoQfC+a+x2Tacvos-nRe}>-a5SxTJJh3b2SVv6HdZpHU&RqdFf#eBb>JyBH zheOCteWxe}yn9{H{#@u($882LDso&GbpBzuu&=v<9e*)j2bB9>ecXVz!^isc_{mP# z;q2Q0S{nAwnCa_0@DGPh5OzXxhy!R7G;+&tx{8IRtgz^H*k%L4R#jFF@D3+PlU6T{ zfx?N2+33Iz$4%ZVVMYon*soPpRQcja<6rbe#_!s1Yr#i$4Ui_WiI}@F@ww{liD4BG z0Sxx>pk^@O^u9Riv+dP-{m(!VEY0E?oM|@j)ATu}LP{&A?{LFjCtw-)w%D?si7DI( z?dwD-iIh2y4E^Lv^JK9sJ7^SVOcN#r*`a{R!3I7roc*I?LJFl|b90p|thF29lcAU1 z3VHBOkEZt@iFJ^EVAknO?T;IdMntnq%;a005};COcEbKTKCS_|br+34eGWCQGw05f z0`l<9+rAz+q&4Y=>*d38-ejZu;tZ zqK;{NlF=m+c_WkDPutlO0*E_b@l^K_E_D8w_*mHQw|8{~?L;#dn-fF~`f-BW?|xXn zzuF9UgXp4wsW3#KC(D^3m8^35hu@+_*jr24^NWBuusC$C~rTcK$mvhYopG8avhvOxo|AV8Nl z*ujPvAM<7+Q$xz>3iX8Gd8}T-=H_5w5urc|Ut&KcjRY6Iyb2CJC7>QhZv-Ke#=LqA zeTQRstfv86>SYqDfJUdMLwO%b96omChMgJ%uKXSu$P`kbMO7lBYF%Lik`ci`0%oF{ z1wb^^-JE-KYT@R~WaHLzA(b==3qO=oLwq!yS9{-y?vP*rgWo89MnU-vB)_E2XlBm) z>2j)ScSqq9%I2WC1#06v#_l7zevtUuX+U}It6+@Z`9RGD>Tc}~DSyZ^eZ8cFbFPP{ zv;4j(E!12j=X3RVWn^A&EKhHj!?SPBQ{IIP!>18mh!1>{kgFT}HKxC_&g ztzqHYnAn%X90r2lZ!i$x&|-N|!$Q9@L2f(d%9MnQkfbE(T<<1DI8quzd>mk~e86Zc zZvf13Pg|LJ=LBTSd=yEM<|0CKy%;L?=2ji#uI4eM))WHrDYw5O)%{E-5d!S2hZfQr z?@ry_4f`n&9q>&2RJM`y_+}3Q^!ORseRrT=VBfP52FiTlM^DkcMs^zM8*5fb$+2wS zOlUSVpmfM`c=T|rzrUfO-EErf9FA?rVy+MPSYCE%0C&@c4lD=yc6|&?u82aIOAXEI z)>`O`axOn63mT(@^DY&I6&P*fjSlYg6Kr>|3jk0qhe`T#JM^u6zPI5aJ4-;0IuZg? z6I9zAk}o@yW7$qEyRZpiuf%e1-`Ss3#OPu9{rp8vGZj3bM$V#)zW*G+L_x%(I=^f6 z<1H6$X!Rury}RRL6juB%U+8$?k=ioN7xvWRLIS_v!r|G{@|_~XvD-q|82I-b3O36 zwB4_x_wEm4lsbYQs`y!aA3r&6+FdX3X*wK`(CjUhNq6_2rU=r#ruW&Kj3jp^e?TKL z2w7l!!HnVB25B!xf_Ga$X*e3AbpNogMRNb(>2A@B;cl_1=>Dq@+vkG>*@)=m#SWry zYg;NzP+z2zuP@ro3Y@k~R}k}JQ6+sV^sWzA>q#fQ01rjds7RD7P&^i=Qc3|kw;g2JU==M0S0;EGUU9%VGxPDFHXS4jtD)LfKGh!+tN#N9jaa+x@e#* zU44(Yc(&tZ)oD13@k6Wo#)EA~f{K=}4F>}Q02lxODL$)?(3e3Dz_PhkHc(aVBwa2_ zrAJ&rqKF4-qYku~+i2Iy5NHjb$|)#CYeODfug@JvQwm%ToOX%oTN`J7OryFSvk{MX zcp)wFW(_dwo-|&1{*t}i5rsm6WJi+zl&g>7~u}aWdORrpchidco&On0&qY zdaP7L^VD?Fwd!PU>jj?6@G!vx`$&mNk7Pvf*=g)(va>-5qswXAr3DXU+IRA*MJbQ9!Q0nRC;5+wiBl8w~i<=_ZqR8<1(((>1h*-(sj!F`li}?`j{XaFAVRmJo|P zgZ`IOE-cma@y+W^OQu%U#Q2r_*yoX$WS&E%j7(*dmmW5UdV^gm!3CMW`9gK@0nV`@ z9@J>foZ)i1s;QxBTX7MH*CwcmrCB&Vl;R=7RJQ(-&lRHrgXDu3ZY*)GA6|V}`%|=8PP=vcSBXqyz8`a+s-b!U z!LX%)q9C5y^;zF?K0o2t`j1dtw>*83hC}unreL7lNd=yhY62+G9mCS`lh}FpJC-=l zmmWCG59J3Bw@i3REUPO!ld^)J>BJ`SEuquO|AIvR(@?;*d>r9YY9t^pFwo8W$Y6EB z56;;Kwv3UfCl;O9La%s3Z~oH(@d8Hd;#&T~g!pEtPn zJaK;;O=i>dHs|*Gv!iLg3zVYXLXI&{kE%^heg>gepPiX&dR#ElW?}*e{L0R%G(_Pw zc4)&QP3od|L;mgU^gz~q*C%S(vgq@T{Yk*_%scEpUXl0*OIw;paaBgca3$*QKl>d| zZx07yMum5mz=SydU*31s0>8Yoee2;(4D@nxRp%cu;~7+qe-|7~E}hK;0<1;{D>3;c z|IcjQ&d5xe>9&XFrVAzClSbUlZQYhHw2RnO4h8!FBcl!slqG99l?^%0X91)|EUJpx z=#-Tok9zB^loCaO%U%q5H0f?t$IXrfF^{sf_Wb~Z?C80J+cY#Za-PY`$l>y6G44u@ z`ixYwx1Jt#<z5P81+GfPf)xVpvUuO? z6`Nu0aq~R2S}v(_qi%YpGej_zL7&Pz^&P+Yr|F^NaPZ6bV9FDP*O2>VEvo`W9w&wi zDW&Y->GA{yeJ|zEIMc7EqiH4tEK^%KCzih0?*5Us9oA&at+OThYXI~EMdun{+knDD zK5b)4T3SjHLD=ig{%yj@P)~upq4fOxJ8 z{1)-}Q;o;Y%icx(k}f?9O&k5B0`bkl6&}Zur$f;qQ#WjKtXna+jATM{Z=5&BZHo@{ z$}ISez?97}uh`hO(o@_QE%hxNeziK?HQt$ykgSi;NtsYDd9PtlknST`aBQ(+Dc4P& zZl=wPJj|4c*d#P)Oq){*P{K=Ts9qgg{!XE1(GRNmBBA~i@AFn4w$5CKzTQlSe&$l; zt4y5+Md0o0h2$^BCfk5yu|Z`49nD@HoA#^^%0`Wj9|AZgbeZnHi7ssTHr9gHOW%f3 zEpF7p_m$rrC&vUWenAr4OL&P|!->=cx9!wBF|ic_94h~vX=#ZXQ_;gEjZwe+_bUta z)(#M}tdv`PmP9k}>|{+yL4EIn=wpsC*x!thvo`y2=g`0lj}h%0W)4JWLZ+p6e5gkz=WzD13K&XbrKQ z=bkT963V*{4))ylR2&?hbnaMgfB$X*HIP%`uFHlePgMX_cA{IK+-r=t-u`)3?HGD6 zqwAgX^Cy_3pHOXEhF=PM&uxB(z*5K(8T3s{P*aC4H8tJzeMGwV7|tw1nk@NWe7$v8 zRBabGIy3^(DUF0kcZX6U-5rwB9Ycdsl1fSnNJ~qn(%sDf(lB&4XAjTo_df4;u5OzYz z2FLdyq}#)H^@la{0}`tj7{JGDSjfcALRnT@#{*n*kW4>oH9I?b%20_aB&2$lCQ#ehuI>1|QU;LKq7*_? zx6s2s(g2O!sw$@ol{@G9WZ7t$-epT+Oie3?09qA;eeDF-p;2KWGt&WG;f?ajXVnN4 zijfpdiXZh{O=&X?8umV$EblD_?rbPn`SpAwmAU7;@YcSCOu=hUT^f% zx+zRsuTIVY()crUSn1M>TMvMKrbq;ZVXY!7EM+<=L?RUqT9}yR-d?U#$;pm)+~4|K zEr#KA?P``pCa|@<*L2K)T=HjIi$vxpoSD)Y7FA)p4CiOgiSEu%>o{$Hks;T+>82P@ zfw;tM3>})NYp$FetzKauwE_IK*4X;cj6+NjeSQJSuWr1t2mGT3;>Tbo$E^^J#Ke`u zxoYQWEu-GSgBIvGkHHUh$R!71Y(pp+9sbUomz{CLGg9iJ$t^1CDGe_oR6bAj5-7^q{->{f|yI%S7$iv4#$%$iE6-a+55M+xEw6Lj){?( ztuRG(ZHF=}`ZW?C&e?dq$&t>kX$iA=IAw6T5PRsARg^TNUJT5#c`4wAmd|JR1=fDW z@;Y<&)X-b`TL{*Ro1w@8RK>0CP&e)avy5;nX-vyAg)?7{a6oRy3rkw_`JLijp zLR+riwk$O_o-BW%OEie}XJr2gr0F|&eurNdMNMgScx^XQ?s#p~MYR1@YK5ZctK0n>8AEn_bxJ zSt~|U5EE!XP0uFd88@;HT2^zO!zOWzIL3as{yc`bQzoWiedPzB#jJ)i;0qeiSDOO; zYgI1xvxm{yww|9KTtInT@+feLJPbUXe)v5X^E*qpwb<7e6{MkY#yfwV{ftq_pQ5;` zYH)tZGp8#`)}MvD!)=So?{u`Cm ziZyBWr}U(N@v!6KX-(q3NWPx0DVT1k9SFs zB-4VS5prCuuF&94pj2k`KpB(&x8|Hi1*m!2b@GxTIH`IXe>(RAGQc3b~xQ7hU z$)*=#^aCX~ zEDKa1p?OBQvvn0=whP2|2Q4?&8AX7G2h{3XuigCG(cZk1>zxBt8UXPE|$q{jQPBHI2obOeMTmdv$HkwmCg8Y=9|M4=1^~bLr`;bnE z%ck}4J}}79QMXqp3I%pe00HKk{rz3ZMD^vC z>QpFUv#Xj=M}9n(MhZ0$wipyfHS+$)^A2Ylch?*}*s$j`v~|lAz1dwf5Uz1${DAQ| zPQ$AWEF+(+ZUzRf9_-KECgjA&+BQbsg9|mD6{lEF0{1sjT9=Kt;NX6R_& zQ?2m^O<|Q0L@J(Jv9~1>6L+`RgrpHY^a_%mInt;xF+?~=M`86>7Nb;*Pev6|(I87p zmZCDP->6Re2PRZ0z>+sBvzAd${qL*dzZ5?v;#LxZGPwb5RNq^DelL8YXo`esG(lie zS?}g+Xo{@VMhg^3x!*%{Cv2uLRKmmIe+wl=f8>21aAV}HZ~)}3zOZ#X81Tk<#IWU2 z?ajqwa0CSG)xjTnpctHL7hl4J#p;?_2LnR{vaGBjfwle4s6?brqoz@nV^+QE7_F%0 zV+~Pg-f|P68J_k>d~!5ie+xEV?<1 zcN1Y@Wko|vFWq}Vh(pOHeZNY1T@xevg;M0|yVKQzfTBL^M2#4ZRggefM|( zYRu8I#~HjiCm6gr#TgtM`{@5BO!XlDE|!|6LXU4=MoGl{_Hfp+iBv+;zPmZwOu(?& z-mys@uba;y@d^yy$oAgn$m{47c<_0+>&o+3vQBO5Qv=dOn(~;}5D>z)B!oZk%#>=g?9yQ0- z*6Qkx0cBa=%dv|My?O@}6nPDICi}HvJpjOqQhlS zFW;o27I-}#{LlA=MT>U!DK9tEgyIN#q^ZPF!?1tj^6ctiW87zMtgu!q2R9l%`)o8rGVNWWt_IWotdUig$@TWTZ&h6}_sP{eidA?rl4wmHr`+d&7+NzN)GhyUcJ|)HL zRm$ASrA(AaAngi{T*-vajZAwWRp#5da=Xj($~wBAqU4gEp*OmXYu)c?d5!-1KtW)( zf{VAVmg$=p?6%VZga%lMr^ESR7uTz8C8!1XB*3*?;%$K0`;$ zC%+s-uitn-6y`_T`QPUJ%2_qg?d%A{{D2&;IXe2D0Pnf3`##2!#h~%o1<^e<^)A(M z8c5cd5%taUV+aQr(#0<}Sdvf%u zmcvwX_v4e}p?B?)5xjOYjKE26xB$57<~2+)q#3o<*Bj>vK7H@o^V7Yg$w(ejr(#2Z*WTGoPk@aZ6nb*Jb~>0^ z-RO6%MopVfX%di?cN9lSIhfK}jY(0ka_!cXo?P%iN7p&R#6(&`P7S;GRbo^I0UtDD zaL|u$618F%8u?j~oUX;GzJDh45h$(CT%n|5HUN^7E;J2Q*?AsGt>)r9KP}Ez-G%6r%G3UR+Gv^ryiUMUZZ7AJ%F(7g?tHf(;KOZ0INg%m#-~?X zw26W_5#zA9@Sa-w9Rc~GQb4f!4H<7#FSESE^^f7`2c+VvwBf3~qUxxp$fx4kX! zwtA^Y5QCV?572`fc*H$JR0j!>0L)h7tKF{y-8`hzz6g8 zknI~%FxPL<7!mq>huQ4v{i&#!_-6sw@M7Lq<}9btLOT;nLH;QNlz>OgQ(*it*vqka zeKo8zp7*4fnei7Ck6|Y@iOpf6TA{?mq$4gkc+LQifwN=T zWeRBp4)Ju>=C7Isp{%p%((z1>Nc>S8!VF*DDOZTVMhtXlt zelRT0wr5+ts{5djMz19qN{)KZufrMsi=H-Pw9Q37f2z#m@PRASDtsHKoJOb?=^U#< zGyM%u(9uj}Vm*+FhpZLGgWE$Vi&wj$k4pr#9IljTn%JcD`Iabl7~preP%mvKvqkO^ zw#H-g6D7l2(OQ!UE0WapQw))htE3^hae-C6>uG`4K`+Bo81AEp-X~wh9}Xt6>~#M6 zP(18=Wu6m_l4VuraBh2bI#tp{x{CZf6TDHgiRCT|ct#oJkU+r76ngj_p^M~ud-(SE zvyu8prL;hg`IeSDvm``lCTjLaC1}eGitk)!Ikzdv20plu3SvH^6^tSNMfQ4;)cEpb zp{b~^&(RYics9B_EA5`IILSoeDZX@Ou>VkaT{JQs!$~(Ak05$ufZzMyg)dm8HLMC7oL3N8$ppU-Q3{8tHM$o% z)Yz&_5)kat7U2PlM3g$n?{P>)G1MP7HddGPZ371<`4m9;Wrj@kV#{IPX#1JAB@MCP z0GEk$MVW3rKfq*%ZzD5W+EH!Mm0Q!`WiztZ7j%}SYdMMDcoO53eSJaH3!Snux<4y> z`GDom{t1&}O{$R4L+tp?hdoyxcK}#V9sIczOO47(eNUoZGQA8^(dhiJOr4jQq!(=4 zl_>(oX}Gy8_E4DE)eTLGrZ`J3A2D6ve>dN(ce7n-&Pn_76UsJyLln8* zfrrs2_XADJXcDzMu@5L(4tnKn{8iwpmjb>ie}aXX+E76(aO?f1uh!g#{Ld1+-W?j> zZCPf5<-7`75Qan03o1-+kz3?Y}z@s#}8%*J8 zLYK}UH*O&{siO+*xrx`W3n0J}{^p?HFmd?Z-Aa>bgh8tdx3(4F%6?A4+9N}D#3W-TBD&|EEb$iXHK zI3GrLnABpN*wv(WeIYNzM=YzGww7_gVo&>>Mgn9Wh#TPTFdEXDnW z@DmhFPahTz8*%YwAN#BIezLWRQ+NyzB3vIxk|T!bv)0WHKo0`@^)gD@<>KczgATMG z1(H&<@9sw5wSj;wz~48p@5>ke;FNLi^MVs2-(Xl2zC;kE-UpfskXRSNA%k9nauKp4 zyCZvw6O0-|G+J-cD>j=iCWaH)l76YED46{Ep=3<;h&`CkPMZ(ZytZ*!$wYs!Qot}m z@FO}3RuQ^P^zz*H_|A2`3mJ9?$Q1cqKm#bunSzg|%;Wvwv-P@73g1(g;od-5*(k%= zh8Dz+Av6I0;!Kt;Jv_1YGN=1AoT;Uyn9*_Ovgx=t!RWTPtD`UE_SQhmpCXrtEqk|* zAl|4kudmDyiKzzEYit{&AY~iQj1=)4P{<5+hHTOp`JAdfpQg)&J)uTQ>*!U!j zfQN7O{`y114J^=Cs{g9<3|h3iqY>|ag93V4YM>TU+CJhIZ&a+~rmbNZy>pzB8M&^o z%<|GC;3y2+1rvKx*iRC1d0;cMI7vEkq>+I(EVJn_2*Y|hdj1V$H|St96ac^X6gbq@ z^-Z{6L%3~nboj!ARkaqQ^a&TM^XSt)J++#*G=TU^*yXquR#c=OdsCX@}6 zyoge#HG?q(7}aH=AhiQqLbCeGqMxw(_WtIK4gqc*1LRc zjyCQL!X;!9nruC%y#bQ7hx?1Jh4a1Qr3_&mu_kvGqFY?xPolBKkq&2YRmjz~)QyJ$ z0o1uQdYwI^?dxk_s-myn5lw9pV5OZEaJ+g%mp!lSdibsHp`9{vSLon};Z?EGwvq2~ z_*ik#42L8|$C!F6F)-=R#YO%76*lW{tAR~~iWU)qhby_;5zgtg_9pA{y%5A8dy##8 zhPManLi}!@l?6V-ZS^D_yWM~yte{0BDQWev!EFcF9vaquz8^>Sz@T8>2VB)p=%k$F z`Tii%FW?BVeQC(|2n-I%2~?Oc6Dig#1U5#{;S&tW)EVv31{o}1c}aCIwy1SIp!B*w z?fQpkOaiW2NZsOCPohL=tj!YW==fW}Re~+xlM6pJKmtC`mcbe=^7eQ<5J1LQOmggn zmge$Hrz9qth+4lR3lN65fjMAWvDDqy(Eu|425g7^_Jn*6kY@lI(A4>QBg#mHj}*K> z^w^?$ot-_Btw4%1Q%UzRepeD$=^|aw2pm3u0-wY6#XK;lhtt&{LcQbdh_7M_3v0#InN7-*rw^>+X=k~C@X#f{E0!YV>3@RE2kL{TXud4+iTwJrN z^F0z1Af+HFaHu9g+}S+ti_3P_1>YZCbdRKw4aszX)F^d9%YtB<;~kL8vUszv`(`+v zxkF>R3s8O&p~m7!<)mRfa=ukym*&NAiui=wvzvBGS|%$1Cq+<^@S#<>pZNr99Woo- zH{_drTd?5~IJv4beU8I(-IiMP@gy+V?L~gIHONY?rN^uCH(5lfEcq*~HD7#ssD1ar zd?ke^anZdoa%)-%vBnPFs`{8}q_zAs2Az6?jH+msTyjn7yyc-~=WHvdmNMvmRrgwA zuCqJB{pe_cINkn}hq3+^e3N63+2)Bcr9eYdmYnt!;o;k7f!OTLVTHaP4`wR&MwsRBX z7JJ*obJ$T1N?wu8nIAIFmm zyXtlsCONp<_Xsi6=)?rVlotSlK0Vv3g9qM3h*3=V?Fy$x%4xfF@)H7AR0DUYT81D1PdvzyuT2K zideHZUzsmJ_VZyXVDNV3sSwEC6HV*2YBXJ zjg}ElP4o53?|E5+5RZrgzdK3K&7t=sv#4-HAEcJX4g#NdjJ2 zYGHp);&dg4bvuA)Ru$N=M z!qN}6Qz(G}tOe})+1LH$ivPU0{r6qQivRDOs~n3=;&a4*MnMdCJPWuG`LMq`;s39l z(7!w6CXZ)9Y~16DB1oo82*Wnmq~04J$SUALAu`gYdUiqKmxDt5 zP|l7qI5_DCunwK`ma^#Rd&I$CKtW5Mw!;`viIC7brs??8lrYW823+?kTo?P!ZP~{q z-`dMwvHN!idIP_ zD&NN#u2jC_pm_W{Kt1W(&VevMn{XFF!YXM;s~U?*jJkGK;dYcIBFHslWpT zqky&1G0SkSC<=KDy83|)u;MFf`Pe+x@$rPyFAuq6BJoA?4G9ShpYpfshI3T0^n ziI46>tRM6o3Ih%ue?~^RZEHqi!~cQ(5SRarp2EplXFZEvyo$k~ik8xv$7>7+ZyX#R z1;Fn9QWBx_zseW0Qn|Z9cOr%Aw-gtBN1S(YKJ~x7p7zpFQMtRHDJ_$E^H6wq_=jfk z&xr2%?sg&)3t*25qew`)0{NEK6oS0egHyU?cg<+B^XLF^$05q56ymYBbG%BEi;r2V zZ{@@5U1R8cZu{Y9>o36fpfZl~aHw>#X;a;`w?lBv6#cFXUzX3FqI+K)OTQ8+1Sxk2 z0SvD2+SB!?=LKuFZ7esHyA3o=aeQu7vAO=S|Vo#it46@P5xF zL0R6=7{#z#gkE4jb6?36WL0#ZcIT^xv26}pSyeB!tS zI#ULDM>$8vxn@0r8Qbf^->+l7Dv8jyEi6+KhWJ@o>DsD(iMKCMF45BX6G6ZfIr#Of zSLb9g*`&QQ4tDM?G7U}43LbHow;iv*f_)O9m{`&Wx!KN$8D9UE7Rzl_iR}g%U#%E) zcD|pVBJhqdL#OO}uxo`&57#~zOYh8Mt91c2VSU@Hk9z8Ns=`6f)X$QTJ$SgfWD0~N z9T&G_q)E6$DiqWH38xg`W?!c&i0LS|b-%So<&X*}Fb2dOPYS>v9sK!fQ<{torGGk^ z``Ls=fjDfeewg`AD_}fCHkc1~srA{Yxb-oG0EYZ5M~1{qA0{~@qn;Po=|v6>B|62? zPwJl5vHn``%aSN!=g|;L$#nPxRv~@rs@`Vs`@<5mN<(y&UQNNBL$moMuLJAvgL;`d zU0TjMIU<~!%hj=bDRd`$sAlJMsRI|>2N*Cv`!cyid6D`&VTn=gR1Pruw-;JGSRhR_P!EC^oFhE3S;&X!1|>?4iS3Cw4C3X)k;$3VBW|S0 zf_l96NhwLmvwQ%8JUx$0t|X9%90X8(8lTv{vbJuXW^v9*2ibB3JY5kAmu7~e2Wb}s zycmAiW*Y&oND6Q>$nZu)y2`~0)SAi+y7#2=a&#^r!?ZyW<(}6W?kYLvtka=!?GG1@ zcO)5HpbbML!@(aq&4>Q22hLRA$jV6q$a$1dgj0B^K+U`Ev-9@T*52knSfAxkX{h~% zMRFexkoqcCR?fz%U+}AKSyYpjReg@X&+%JEe?_C#Vl=Kt>PbV^Z_GWo!yPFlOU@7I z{f#J82Fwco!{%VzXdJz))^s6f=06R@jhGrl1|JhStC&^InX<_9ghmi{;W9#$t&dVlYlEvy`C{$nmQvDUkNCUxL=&(2D)))HfQ83jMW^eE>ut{`drPrSZKM|kOSk4_t@sRLi-dbo7 zrqTu#q9r4@O^C&8yP1xkS^xFv=W-L`3vhtrva zl#;0+N8o=!(DFS;Eq%hg_xxA|6D_{w{5ovKdse5MiQ(?W+XLReyW25M~HnZh)6_5oDb zw7G5dU5ai8!b#d4KcY(CX`9qY{>s0^|KeL?yL z_QJXj4$1cSY9PGnz*E&_X7$e?dFjE+`>1f&{|iCYdpep)PwID9q-;~gjFzfg3$t8@ zmk8N)&NC1DWx;K(l+UMc6R z*^E}?=v{YwtUY^%@n~VfcBYjgUHHw^AMWjSHl0oObTy2twuxGA$M8=+!7Iv9*$E!j z6zIquZoK1ytN2sL6v5oN{*F%l|@` z>_jD(j{*G>Qz+JS6MLmswa&(8PPnG`NE>2L@TaGZ#;8&wSy1NUrV zEXd#UZ6Flh@^1&v)`jVPt4kJPQj~{I)88KhNYv6^O~-0?0snBKNVVfkSu< zeV4)L<|pTSkTE0rg~fV9*yO%yG#WN{c!o;2lL^nTK=l;~@nMX>Hdocn4Ao~vqiQ5C z-^Ka%Dv6hO?t29)>M5Km1{Fa-Wujsk!dnC@`b_M3`fsP*ZSRWOw*$_D%!?#^#^(~20q zeP3XpMXi4z8kfjlMg&Xe48Z#mo%WyPzQb4DI5#auws-+>>Nf0X&*i>$1lF z&uiPcnBhZotf#s=QvQIXPoWGUg6X=Ft$y~~?Zq-NMNfx?P00+a`-+VQ9^I?@C?E`+ z6!UEf@K&z{iE1{8X2eC3Yh^~$=) zP*Z))jR+l9l1kXvxIym<3pxGfxC^f?>x9D-(?p7E2GVVOuKJilIOUzHAfWQfXUPd@ zo(oWAistvnQdA9S+K9%HB+;(Qn?ojtP2kFtk5BApp?SB*=DV)^12rfC^Fz;I+22LQ zLU@|aDJ2Ss|J2~nMq%(yLc-PAh-QUTX2O2R6usnFCyNUC>qi#W;WV9+@kAjH2f0%D7|2y$? z%l#bwv;$lkV(bz3Vd9fHYs`K)8^%~fDg^OZ5?r4PMzysz%gls(7QKet%zx>vO`caU zH(Egbv*|<;&^B^iipk4~%g$HDW$IawQp%e(yej=NIojnW4CX#W`6I#j?Q@7H4r(!C z23#yNXmETUN`xDa6G`ndjMLzn)KPhL1MQQ!&IpTl6#}yQ3Tt-vF<4e+(0v0Q;JU2!blqRPeu%BhGn+E zeEdUi(4cU0^O$v~L2qv*Km!}3YZ>dp-Nz?Uut)k&$51+qoe06&-+O4*^Ms~VRptxd zWpS%_zZ)h+^iMvQnFu*`<+2mkEes&gXiL-KA<&mEkySus1KAY^G9$?o(qG!&zk9cp zl$h5^PbXVg-;$Q!@B_m;k(H-rFw-GL>&zYn7+u9c`|ggzY)4(dnm2GynYFr_XT1|@H=(g6td)aS}B&84d~Ci zhwX7|39p8)`|n};50sG#r*GBQJ!dn8BaF46^K<~OO;RoGquu-`>e*RNuQ6K2kI>LU zz)}jG9LsA|-f2FzQa)Q$n;1J+Hi?NCTu&Z5OB$4Z*T~JC*>>F#B4pt#>K{1bk_Fk& z8mA)fo`jh0yP;E`1mM8;XoxFu{j7CcYB4DoFRU(HcWZ5ExIUY8-7qb$}F~Y7;-LoHcW3G$^*~ zhc?tzWVcZ9Xs|K8`VtJm^>+VAVzyJ^S%A0k8FH8;h?$(Ougt5Y9dCJeL`d9F`L4 z9O3KQG4|}leCoo62PbvAx*FE`4Fz1^5ai|U$ef%g+-buaRw)@n&!xkh>gzePEtP78 zSp^d_9e&i#M%u_kC$FnIy#;NL2i8gr-k@Xr+zmSDNAw8_U;qukjr_)FebYcs-*<_G z{@vfR&U>o+zwl}~7xxi1bV#DdA|rrQy)#en7I5`hDTNEr)YQ&QDgA8|8>DidEsq2) z;0H8Hv$x&W34ePU;0kI*rV?pxZu#|Vi_0a?eHcp^uQYO4E9<) zGq0?TiZLp#pM11}x*eNqJ<+D!4Ro#v22EjhC!0_hn#9|;tXBXfX;vvK``7f!*-+s8 zIqoo5*D`&8mXX3N%W36rMT9pMaHIk>#K!sxzfGR7!?nFelKh%A`0q|ZwA1K5q^Qke z9DvxA{X$s9e3kf%ualJr8U}0@3{xe=v#cv8!-LKcK?LJ{jpfOK6uzi1xGs@I1i1Bp zL69okCD_Y5ck)x?mpJo>pWK6d{4*?>;Qw|PoYas=U?rpf%5L5Sb_G0@TXuzBC}!F% zoAXaddIFmEJ2=jKxM_Z1vO9xv;*HM68SwPzc&AxL?_XT!=i5}s%BoJOl743`>hCKD zNXir-D?<%^+fSxlK(Sl2R5nLnr<;R>rxI7gzcuwNv9|1@pT_C9c*6z^{_2fe8uik$0vlyq3 zQGx;JMBQ9xXE>~F$M0FLH&vfD-_pEsT?MYvp|CN6k98yPWUR74a54$7(g%x|gH#FF zpTfXX>*VN_t?HNE%+Fa@HIBZGq+ECKCJ@@}5TbwCWj=7c!E|qrtw(?go~Ge=Acl}* z;PW83u2p8Z24ZncYxlFW+laUGHN>$QrLdnuLEFAgo#xAUb8LLhA$xJ?ik)tGgo2M{}V) zM}i!)WUwvJo&?Xr6CKuf-qAYk`D~Il&ZyVfQD=AK&((~?81Ni4mVvyu`rbHzBVj$D z`e)vl8({8+DWAfpGbqL%p%e9O?9DgkGyl3imQeZ4L25dB{r{a|$ZY77Zzug6kapwDbz~AK`eC!3zY#--8 zfY*}vh2AaQai9jT4n7{VSP1VYhR5Fz%Lz07fJSo#ogh!3^2!Z_IB1#Vq?J-=gB^Vf z;*DA&(=kI^0D_h%`*B)u&<703Do?AL?O~El+-Mv)1#8Lmc12dtApXbJ!J@>i1Li^Z zIRUwHOL#xOz95oFS7ga{FshAAdTh;2sNcQ!YmtGRzCd>Tx{0Wg?n)u55A%4E!x{Ut z_x^jjXI4P|SS^WGsYi&i1peG^o6ojrWCRjqE-j!HF+;V@7Bo0`h+b@Cl1;|x--7Xe zvQGqRDt!356PRBueVwm&i;T1<@k5Y%Z&%mkO~Va>g!qw8v#B*5nT;44#+xC zN_&JU8YIaS0H!V=3@a`!)#Vf-3!I6<>u$0@K3vzH``&y4>L_w&X$fZG{%Pk5yL$(x z>SO)2Z~-?)oNdZ>gm8hP;-BEY!ylfUp1+Mig5=A8M#%KlyoU7=IM$z#Y67kh-1x1= zj)PZ7uS+3?)+vq;2kKQxlqp=uJM`6*%=1K{YL`+cH())Xt*R=p7>3fW5g8~nZpN$u zl3YKh*|_oV#>cB?7&2nVOq{Mx{(+}4X$WVUTU-yR&R?-N#k@V=RNs#ms`EDTw%bGB z6iGD$@f;Sz5j$N(jH-!vx-cFIZwXTq$=htH%60^-I&)unQzAP6iH_+Zc(@&~uG3i7 zhyIv|0rj;rAd?@iSPu-6l|(mI*pF%=F)~Iuw=7~J{l~LeC?w#R1W2G4mB8KLd% z(`13CFIHd+>vc|pZGglK&)$WxcjhpQdzS&0j!<~}Mb)L5Ox;vO%@RUu{gS(w03j}J z{cd}EjO|6wdhegElxi61B}@-ikbehFkp{3JU8VuR7V<0^q3&S*`Yi-NaLs0~aDdFF z+z*XwBb$qj{7YbM_E4=7>+*ad;CwBJM4Z19Z@Ttra&Y{gj<;!u)7_Senwj^1JQ<-3 z0s;n4Hh@d`Z{TC$sCqE$_Tyuz_6?e}Z72xV|LU{mU*`$N5L(Wh|G}i(_rnw#@2j>M z(9s5*)hZ?7hx*&H2U19jIzSQ`%TiQ7a6OU#15lkylo#^pFK-4iO0KwVHjXz*CMRbe zuAyCBk&(!=vvEMmFvGuo&CblD(WR71&qGO>!~m}}Cvc-#kkZV!R0}E`x884o{dyD) z3U)pmCK3jRgg3%`4S_^umHFv+Syj~OP&0`sO~CjcZ=pB+qr-+W%Xn-i`_`Yd;n^fX zg7#o-UIkbpo8f}nK7a@jwt(t|^$}J8AXi|SPngz_P_H!yhEPur#UffI!~Bn*P1kPJ zgtY)V*;={#ZAL8-*)LumT3ZaJO2e*ZR+6EB$p}j%MCe zGW**8)O0R4k!_|@{a?`w3&>!6sC4mN07-8fM>Hxjv9*bFU<*tE+*`bN_;;s(QBFBC z0!xQ4{MkAUE25X!bpdf)LM~5CnB&#!vj4f*v&al7mqD?0{}uqt$CUB`|0KF(tZ&sM za|?bQs5qIa#nnI7!F~n=dy6G#w!C-h@3Qn9BC70hdA7i#wPnNyu6+f%Q&E#=W&%3O z-_Y!Mn}H;%5@u~cq$+*{uzYf0kt3wUzhT9ifVki;y>5*Ya1HSA%x{B`#>9jdSWGXp z{aPyQuU%KKk5=s)je)TzYyTI?E_S?}@iPT;c`eL{Q5Jp1ncHjL!u2B^E?_L9$shvb z7v_p@q8XQh=u@(q{ivz8(o>2cYW*36Zf>UNr+`rP(r~KKo9k(iRj2%Me^1QmRz${O zlXz;kxUi1yrD4VBE|~t*@JoBAtW6Z6?RbDMEU6?x0m8U)OKC(IWZcQP zx>%s53kDyffecTF_41CuV9xInC`pt=jQ`t_vVHJ>1IJ|vDi(Ma1{ZQ4Bj1LLD2%); z0Ad*&*(mt@yb};v=q0(Oat7)1Ed~VNzi(OcI=El`9%_(XD{^;oGD&NvJ|O1o0Jvf3 zV4)CARrPe7lrM!&&*(pvsbD#b3Yqx&l_C|scuGNGh1n6n4aEc=bPWCX+uJD)u|P(} ztMb=5=N`@O&U*FERz6(g9f}5@Yb~ZDl~n0oS=na zo@`PW0cV^GvJiWkwhH@Uan3FadH~-fs#^^AK#Nzx5fL`N?fC++sX>Y=MrU2_R%UY0)k#r(Gkq_}RxH*!m)cqkQ)ODg0FnGT z8HV~e0q9Vq0K16sew2oU%OX-QsDHhzMK##H(Qh|SX+X8MKplZhFg6wb5T6p>s|jlH&avT5JOFM^-XNR|GG+uzd;Sj z&Fj0=twAh+A~oEO(b*0Tl_sUqlud7gaODD?p!L9wEMnN%L-J#YcU-MM8SJuxKzNO??*iB%V>tF-wmNSq zD^xGu-s-g&3^&Lw7M~pcf#u?JYsLtb=~v*#rhP4xsP*zUvyJo+DA}99lc#D!oysI2 ztE&pYP83_@ShTj`6PXtA&2YT+kuolyI z_?-3NR8xyUa)Z~O{!oQuViw=vUVa9fe5?$ZB5WeC9xa(!p1tJ<9Nd<9ZU3Tsqs5Vn zh{v{u#-&Lon(05zoU&EA%3gK+Uy6^9)YMHx_Wx>4`9d`H0^$qXRH9K~zdpEuxStRp z0q5~Gt9g*-dFL|t#OxmyQi`ZVCn~r56{M#t4@hu@)0LNq`zib?w9LA+ALgp@N)3Gy z{*i&fRTkU1n*$YPsi2l3&L1K|eVqQlE!D#e>-lbK4(!Ls8j~ zMvcJ1yv&!(x4(P<>!Kj{?}nfoYd#t}?0urWMY}|5=f4-$@^d8t$`k#syXwxwSIz#H zdS=<|dA!7Xy4`iQ+HI2_pv~8N8#GtbIkRg^!e{lRLt%ey5`6P8oRL-cYzLYI z{U5tUY+N9#4e!cfy{PFm0@V9cOzF(8T-C77S4tVQzW8r1(83a`(b>s&X9s`z@pWrQ2S{e0z<+7I0)h%f) z(&6jX|BJ9|^o=6Z;PePp{^MUL(tifNcAYu2aCEW|!I8nmo^u~k$RGeI9#>0No;ao6 zFa*Lj3*nWCB4d1%-TM%T^J3b6LH1q@j{r&!Zutwc1-Xlw1}ME(294@jz-nCYa#j6s zVf-AR1`-$#Kzm%pvSS)-%_qVLR63v(z|88FY~9b8IxklZTf=(Yx8S#oWcu}Em$v7& z&1<`}{tpL$x>6$ex3w+wG~9G!wHz*DaoK!k^#8Q?C4f;A-Q#V!3xa|IUKkgoEwp=| zEk&RdTA&nL4xz0yyP0f5x0@x&_J9_O2!6_a$f+PIBA48Uf>0F^5JUk51OY`v1r$ZV zg2I0$$?j%%vjs|p@Av%~1)7;RZ{ECl^RAhsTmE=?L8Hvgedw@f2iEy}L|fMk#P}Uc zPla8Ej#~RqU_?4%!GfRW&wKZij=#S!z4^G$<`3wX@%(EgCC85(8SS3dVVoozSf|c= zrJChu=5=nR#T`o{GBQTR@#^Hy$9<6-^2bqr;Ja&Azh#s;|6Ivm_hj6;!JC$@c22eb zrPdf{?0BeihQpHzdl(&`;+Za6##y@&m@C46Lq4hzc$`hUY&6>01iK~Cv*3_Pv z(I9qR#D)3GN>V2xw4cV-`(}E?VKS!Y>y>|D(6(IKyW@+}thKJn3sR+;-S-7{+1vxU z0j{O$RUzwN_*(m!rq$xv9M1yo(N{Y?5pE7|q~_hrPs;z~mS3G7laX@p_-5tS(ucFw ztp4-y&t^PqU%GUlX>mu@e}rH-VdR#tm-TBuQ#I@OeG5QxGWqk^ocP=|wdM~+(mQ3` zgV>C)mm+u6y&oTI-0 z_?gYle7zWDN6%NDCZP-eOxWRbZ@jvA5i$Sp8pC{YPxiGA z&{oVHuuOfeqkZBt&Zz@ji4)Ruv0v96{=u~=XVBk&XKyhdJKL|gS+B7CWu10Ss~Ev= zgCU(7=WeXcgl~g>)~Ivey!7P2fnvUT(cs_5G<F~8^O z6BFzyi;8~hKXTpS@hciOtbF$8dTW0>GGKgBJP?kL|42H8b(j*N?1^2DT-m1CJ3k;- zMbTtsqxy?$pN*W=xZ=~3=^gn?Q;m0iJ|ld2*6~a4{q^l^cI1dHS6o-PfBqP{rSeKn z+&61K9DU*RXB$(ewQ(}1mwtZa`t_8~y_*nW&n^zvEecQOnfb%0=W4&Pv^+U%`>X|? zy!8A7ebX*nbX&IdePxFA&g$A4e=mN+x{}=^kJZ~)ctwA0-n@5z zD?SsqaQfxMfxpa~jBP)CYUkv}j~`wC&vo?M-p_nGY3>`kIOlXx4%~=em!-9~z#xW!)#m&!2CaJ22gG{M~DFrdl5}?To)~z`Akcn!)&} zNW=v%j)!iGD^;9xORHQ6Jc!{b_&Ww3|w^K z&$rhs%Q&Qp`O1v8_1Zp_x`0v+KD$f#+_v?V7cQb}U%P74 z#f#@8UEfkC<+c9o)5*dy#b>J=<<*0(Jj&;zs#r=4l1Ta{*_oxl6mZb9aGSG z%b4xkj_!N!s%_2rDHqRtHMqcda(wD97mwb5Y~eWJ*382vXPjV8eeoo(8Tafp^?Z7I zgA<=b=6)D^B7QH4zVOgR6@G5ls1oG)xO%7f-230sTFpLS*wzxp-Pd5;eO#v8~>fozUwb)|64zvJo!hR<-(EipE=`NJUVP4b;+G|uHNpHx)Xmt`xF$t=bQZ$ z75-wx6=-jyXMU7&Ov|w7O{EWC-?2-JZll9t=D8P4ZTdm8W}h6Yys(a3KIpyDCo{*6 z8vWar{0HB9`xlV>_ThsClc4b_?=o*W`qsnoX_ddNu6-eVtubkC*2Q0*LdVTVJ{&z} z>63NCUT)l~@5r8MhQ_6Tuj<~R_s<Xt!ccu^6i1mH}&@%#eFw06{*Xa z*#7q-X0)w0fGda$QW#86b*)3u{Rnc+Y7)1DnxF#*bE5cuY5sKcS^~+mM zeJ$?IsI;kF>dzeAYo|nazOyLp+ZXQNnE!p(DU+wQ9<6AdGa~z~=^uUgO8W_W$-Q6q z?6taNepus}+#eg|8urGckLhgKQ9HJCg)MAetuOW=&mM;5(6cYNa=GX;+rs^DFK_+E zvHhU)SpThM$G0GBlz?v3c{65LW~a^Fz54T0FNZZxJyA(@s2gzd|ny1MrL zyeUd*5jS__hZTqQ0QKv)h*h_^85ljg_Kmk$_rWG9q8GBQ2=Ao~5b85>*&-yGiM`Ihr%MkU2_ zuFp=sVXLg%j(&INneLP3oErLNO!!;r(COJQV*fbwt(K#zX6GA3%nMW3>(o%U_C3$7 z-ebhbSB^B$My;m@j7&?_Or(#M?jN~1C;L?-%n4%~4Mo>U*K~jA8^@KM&qu5|5ZCUj zuunnmGj02PzGf_B#||6s_6YIh-*r0m;L>_Qlixh$`gzyP(c`s^&W^a8bMno@YbKmI zzNJ!nvCwo_v+>;)3s#S7v8v!&Y1!U=3&-wD968w3Z-0RpP!l5@i* zKl}~4LIE|$puJF=&iQIs`)PkPX}5LQL;1~P)zdRtR$e{cbL-p#jwNS4>AqswHW+83 zcoW@lB_EDVxDWfJuH%P+o#93yA|vnj#gUC)n%Mkzi)Ho6L#zI1zSTB5o9n$SXDP}Q zeLr*X9I$7{!(r@-h!y15n<@0AuC70>_C<(|3MM{c$!O#@ul>UL?a|d8e=JlP2Q+@7 z|Cq&#uYCE{(mhSH+dZ`MqX?pRt#^n1*-TS$|LkKII=$6+cb&<3W4)OUikd^a&QH2_ zVb_Efb6##gU}bC5faB|mS1lOOf6l4M4tj@;bU5zWK$z*ysp zg=gBL=%VqP-M;$FeUj)rs@>Ydf4-48d^gl!P0N=pt>`(slcBo-_MCEXN3G}UOkPs{ zb6Dx_FMjOZpaFjt|I?u_;|@;xK6BB5?c*Drte8vB0ju&2F{`kkO{{GjaW68=infubLNX!+GCqCR_*qOWHiXOL6zj}0Ae zjVd@|?KJHDuRoY!9dCMb`bSfmbW}%XWKQ_LSyZpzH>QMj4|^-|zRjOL(*t!ht%5;R zL~58etoG~$dnD&#PZy_Iwz7-(Yb^B9Jg7jRZxD&uAL;Yqmq>$lefoP}j(8Hi^8Wv% z_L@F=&1xcduJQP$_58*04j0A`J#lWsebJdji&_;u!gr5&#Qf=(DX6!5daa|jO_q@5=4t+f+>xJocU(S1A!M82jJox^Q0b^pb>nr!AZ7??7 zGrrmWD=n5!7}KU%Q^V8`zJK?Gf_o}%?YJJ}tPLY0-{{kBdF}hwS88lI_ zGkf>uy`=Hu*VwJ>>GMO$6MEz7lGC5RwRquEVSkUfIAk;XbH-xxrg)<|;%{@k*^g!a z{`0h0_0;B6{crZQFwX8)nfzDWsE@Cn=<@8Lm*|V>L5fA+O^7IcU_s(viO-Gyz3!o{Eq;A?3^8iT+FpOGY~86<@j?By znfb{(T9yAcp$mc!f8Zl^>4OWJ6o1?Gnr`V!VP$*N??3u-TgAZKHp^FzD5mZsdQ7hM z^_(3Y*ax=HtN6XuEPdmh5v>=0G`?a+#H)=~ex}DNPSxGPRiy2o3~6h36x%$w-slI8 zE&j5;^Pwk;!nRzZCND|1*3NM6`p7it^@skdUEHVr<;TCn%af*kVJ(@mWM+aoBfJ5&fFH_c?btd1{?*8F7!ka4vON?1#f2ir+TB$K;(K zHTir-8;G!E?CWtAt`|)0@eU9C8s*A+BD?<2jmNiv6#TQlO5xRY>rQRN$OWS4mv&Sx4OXIk6qc(m1Ji=FJXHtI3^(XefzwHTkVwbkH zj?aD{RVSYrL)2Q^-CRfi%7t$pXdCgT;p3m2(R0?Lw$k zAyg0TZ+LM<#itbwa!=}xU5f5BGNScs>ii){s@ipF^<1sSy6ewA-_*4#tR8#*#h6rx zX-Uc=JS)6z`Su8cJ-=pgO1ni{!|U7YEV}yZ^21@Uq$c<7`fiup=fm!m|MKF(ZTYwz zs6a7Z;Bvr!9l*vhw3BquMam&8?W}<@)M~X+ugB28umt|AGZ?fcOrtaDOlrNxs8M5T zjlpO%!uA>%`-a8MaySD?xm`SgllwnXvLZ29hVy@;qM!&xJf_fVNTY_(DoHC)TYz2> z>jU6QTmXS^xKz^%Z6>bpV7!88iKr7Tt+y+Mmx)H+h9#0i6uw8^1&Q-cFW7Gpz*6q>wOUU2!(gO5+S61*2@V6M+$OjReKwRtG>tlDLBflBPV0Ab``;Q04S= zYG5>INhM(+fDQ*Cre|kpx2rl6?1MXj1JnAUg{-QYuQWpd2Eyq5XX}Dh9OITww1^_O zJcP|y^&;YCV6$43Hlv!<>-6TDo@J^N>LJ2y<0!aZ)tag%c&dSm>Yb~u>bY921gQgR ztrD0?@GmW>rh2o~*4Tm)7AvkblDN`HXsw!13u?t#e+J|MeilA-esklS;~bPdkCXJ` zLHNqPvfYK*01|gQIE1COT5ZuMB?n;Op%6Vuw1Z}NI5SWa8dE5^ZnTp}mqfcxBR5^C zKcvV5eB1}CrSXV@^ltSIdAg3`2uJ{-(~WgNS{>s(>%?qD>!f6@TC2`hbo3~r4k`rD z(WjF-s34MTX9riubSIC2L4#r?v>Pj;91e^H0K+jmgS+xD+)2QnZFxAuVGi1Er<`^S zDjysp8M=V)%sQY-V^|C-QouL?&gCgPs9YVT$3RCDDNtFVl zmKPYmYHxBeiC?+CD4g-zR;aqKI57w1^lL2kiCaoad_h4x%lhR5og8!sXonE#A;*I9 zYj@H}Km>CLg^rU(APR!!WLCGNfN}=Sp`-vW=C`%lubKe`bRkH01anBz(ubx*?;u3i zeol&?pwSPv&CStnF0h-M1?f(2>>NltZ0*-KNv46{k--uPyL3T8wbq8KwYH#Yi3=Rt~qtY%vBS(Hl+HAlId}&0tj%2A`Ld zBb8V;=W_ELm#zp}KdnVAT~t(~R{P2IZS7l=#X?wg8ncolbY?@S%(xwQ+iywZSGjSk zNLR}x8NEAKe&hNL;i1`%`_s!OBv3X zkkYJHTMg>KOp>BCFao1YwGG#qb!K@PVu4)~$Piek4Xl%wDve%Ns;ZVABdIZ4p*$*$ zMk6kJYJ(EEZjSR$so$3LRN;(PB|U06;gMFlaF*rr7`Kcn@=Avba)sp`2i%eGH(eN$ zaFi>MXivV*uhMFlt@fM~k$7Ao?Qj=>IDe#r%l5_##u-2_G7 z3Ds0cQ#KG}W%lO|v^Db-LF;~}OixQn+tU#~z1qq`L?t-sBE77)V7 z%H_=}Se64W8S{CwdhSLN9cU-3CD8!4l3FWaQj&V0wuO@DJGaC)_MrbSuJBFyN5Lx` z5W!Syf%OK1+Dw?uN|RoX8)OY4>2?MkF;{1O5gt^hQeid*p!6aGgH0Gzx@eX{17tf3 zaR!5729}5!G+28q4aJrMP;?B|4pS?&2_g_QB8ga>MyWT1gezd}O3|z&4u@Fd;h$L4 zGamkl#Sn?{*$UnuWh-JaWX<4n0qy|k(akvEQwJQ&V*r_$ot>>vF@R9HDOGEg8a;MQ z?UIJUNGiXB3h$V$D1#$1fO9iW3=W*&Cz`UZvXcf36Cg(Nx>;|omUtLUM#5syS(Q3q zFcE=~0}rCH+6-!|QE4M>8XIY-o(LIjxEUgVds1z+g*y4KVVA0kG}piGQVqxh42WU{ zSLRlHr`8q?y7?5sg+hWC!h5O-M@d^lQWdB$swFa^Mbj%YMKt3e3UF5($KbYn_I4$Q z04`nv{Mg{YOL$R%D_3BpoPNg!JlFK5Ag)!<7}v-~Gi&s?#b!1rfswR^ynJ%UH=6F> z+GrVk_9l3rRWo$CtJ^OqPSI8_q21tPh-M&Hj)2U=wUH~@~2cNwbzPEA>X)6v|$sLnazs zfmT2NlZSiQVRO~{&tByAS6 zQLi)@2@vvqp*t^Y|5}8f?gGxcEo(HS;jZbm>LvbbMAia4TzOgZWZ`Z_+HNJrl)LYA zL&=gqJPNv6;RqIjVKiM3+*3>f`bnF^&2quj1$Z&KrV&u4R;VcnBVi%628&LM<7&0VqF2LZFzE?{jVsPiRFvIqTJM#b zFM<1Ce6FcaKk(%S`(LBhdA|RkRcp2A`wx19&Tw!4--#l4PF|#=qx9VJR}g@;F_eoF+mglpnD^Bo+~tDi8b<&aVm0(TuzZTcNSeV2PzW5f z3wjrv46$0}EIK{JB@Pc5l%dcbs zO}HI^Re8{=1j~-axiKXc^vxG>jL5RcyDgsg%D-GZ`XBnhwmc{mc8cYglA0X@>O+&k zP=)^oA2fQ6#%NIMh42693~C5(s97@P%m3&4-+%qx9ObC_F>Yo34F7JsQkb>G6X{wZnGU=NgYhkHX8>&DXhd)kLvfVT9*eOw$ra%Y zKxhcG-4Iv(_~juF&RPn~tYuoahC57hnn~7Og0Y1O}mTPz4mnO9dM|FEmg)Rb(W3 z)q!NOL=P9EqewOiN`O$0vhvb4^o&~hX2$L0r~)89iOH)B7$hTf!^;w+)#!tisM_gv zIA8~yEpgf~&rLDR4mcj58$%cLfkQ;2abm=9njZ?VZU-l#^;8z(4vOdoB@!Xd$`KmG zOI{?abU|bk6dWZ3aDt#10jU!5z!^;ny*f%Fc7)N>MS>3%io}E-F##Vv;Va?pW0Ik` zMti2i!v=zSh9DsW`UqSV*sB~uQ%;_?SiWC^Y&WPNdA7oNInd9Ukblu0TrzzS$$TFr z#dd{DXM-xEBsxZpDq#o@E0r!cn-?8|5>&iwR7SgG2O>Z2^79g%=Q{4|BU?h)05cWroTq+CZ!(<3vzw^CRUiY)N} zDJiIHi_^*IsNo7y5f9f2tz4W2_7=xXkjy+lKT03{xhrjv%*UTk36N1 z5eAV82jzs@TTTWf#zPjB6bY1xWC@HHpC~fY{#AA4#YsjqB@FT7c#NN#5bc=HM#yy$ z@U~Y7DPt+uMFif-2_2Ns<)9gX8v-qmU-A6kLN*(2E{U|n%WSq-5j_$vKTuhD6QBba z8Xs682Zgv72#D(b_cG%0@xO}Fn4PyD_=%l03{%m!xSV`H=)VmUWDqGO$U4CC-3q8;$jnaOgG|&q z7^y4RD#n!PNfJ3K&@(9J6rSKQAhHzhe|h6hX$#4EJBiKEXTl3_kM)`BdOW_d}r!6$oFC!)!Q*J7_yAh&ivA z1xA1ZD`22NhvJ3A853}e-=j+s5k`A3OQT&$80u+O7T_+QJ1W-7_zUvGcseN26$9u| z*g&kO1_s97pZUm2X+u^h8ZZnWx0J>Bd`rnVvcV7UX9V&R4`kvk^DrP;5MqkHsi7%J zLvWE~$&v?n_cDBRf+Eixqoc(DGL`|zX^ruZ=fsG|BYRn1I*@lh97ER>AVKknC|-TW zqrYM?httlY%ZdT<6X{D=@YC>+2$w_X9+ZRdI+P3(D!TUsz@bBO`F^3&8==PWkOC(G zis2fue3ruJ!16N^mL_B-qH2~Z5!=KxK!_XwKP%amvJgFZQAF3Rdwa%VCDJ4-C34h; z;BcssLnj(yq|uyDgA@S9C+#HMc<5`xu>q<8nTlwnL-LWi^FRd#uAX{j9?qs0Iia9K z^TCxw=Landf__pQBP%~gjt9P0l%EnY!zbCaf+V9M0Tpr^G#?Yn<~C&K4m-w5NDG-; z@I{Hiss!ir6VVRj6F6CEfTqfN4v!m_9hak`gd7!w@na8{$IwN*qDW>Knu%7VI{Ac$ z*E+{ziuR~eKq%~IlCqp^4vL3^Dzjiuxqwg}P?Q)SkNvg}>xT$Bkt`>8azZ*p*qi}9 zl%nF|HB~GY*cy<86L2E;6gW|u7B9ll^|F8@EYE5|{VCiWX;w%u1al=(rmnOUljcO^ znE`w9nHd+(KY$<=dBHY^U_(x2I}Wz zfQ`00DHOSQHLyoY_#KQENi_UOntDO44SftxG6QLrc;Peb!0EX*DP%ajdp?>4Od<4v zVE`qNxZsT-cs)Skl!L|MI$|7C;srrs=!1&}O3bdr zqDUqRauoVsIDrB=_#D?QBML<@Q3QzM?GOARu4{5saBdxyo8D#8;$^AWlV_{INmSES zo|~Sgm;j&F3x-^#TlIuGdp)r&g36E_wF8*6KM1Kj?gE7C<8@AJWNCB zXJ;YrZ3V1@xVs^Yl66~!jCZs;7Sjgl0>9iN3OY&j(W8Xm6fFxl6p8zp+$SY2x|BvJ zx;+7K2`LC1{*Of!!L^U_1WKrmqg`1t+aBt7UWw|vcP3PV;_0j+7|O{99>MhNBopC(G>uMaMq&!C?@$JKF)5CX>o`_9auMh8UM6Mfpy_pwQn4N-55OH<=h8@_G7{iT|RQoQ9%?)G*H2 z-RKQ3HpX{-is2K?yv^a1=-i|vnrCz%tWVAp{`Zbv@0EMyUb$E9YWaWFvzbx=5C;I| C<0MD` diff --git a/main.js b/main.js index 44dfdc5..bbbb4ec 100755 --- a/main.js +++ b/main.js @@ -39,7 +39,7 @@ const path = require('path'); const http = require('http'); const express = require("express"); const electron = require('electron'); -const isDev = require('electron-is-dev'); +// const isDev = require('electron-is-dev'); const Store = require('electron-store'); const store = new Store(); @@ -257,24 +257,24 @@ if (process.platform === 'darwin') { } // Add Dev menu if in dev mode -if (isDev) { - template.push({ - label: 'Development', - submenu: [ - { label: 'Reload', accelerator: 'CmdOrCtrl+R', - click (item, focusedWindow) { - if (focusedWindow) focusedWindow.reload() - } - }, - { label: 'Toggle Developer Tools', - accelerator: process.platform === 'darwin' ? 'Alt+Command+I' : 'Ctrl+Shift+I', - click (item, focusedWindow) { - if (focusedWindow) focusedWindow.webContents.toggleDevTools() - } - } - ] - }) -} +// if (isDev) { +// template.push({ +// label: 'Development', +// submenu: [ +// { label: 'Reload', accelerator: 'CmdOrCtrl+R', +// click (item, focusedWindow) { +// if (focusedWindow) focusedWindow.reload() +// } +// }, +// { label: 'Toggle Developer Tools', +// accelerator: process.platform === 'darwin' ? 'Alt+Command+I' : 'Ctrl+Shift+I', +// click (item, focusedWindow) { +// if (focusedWindow) focusedWindow.webContents.toggleDevTools() +// } +// } +// ] +// }) +// } function saveFlow() { const file_path = dialog.showSaveDialogSync({ diff --git a/package.json b/package.json index 7deba21..66fe138 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "electron_node_red", - "version": "3.0.2", + "version": "3.1.3", "description": "Electron Node-RED application starter kit for development", "main": "main.js", "NRelectron": { @@ -29,8 +29,8 @@ "electron-is-dev": "^2.0.0", "electron-store": "^8.0.1", "express": "^4.17.2", - "fs-extra": "^11.1.0", - "node-red": "3.0.2", + "fs-extra": "^11.2.0", + "node-red": "3.1.3", "node-red-contrib-play-audio": "*", "node-red-contrib-web-worldmap": "*", "node-red-dashboard": "*", @@ -56,8 +56,8 @@ }, "homepage": "https://github.com/dceejay/electron-node-red#readme", "devDependencies": { - "electron": "^15.0.0", - "electron-builder": "^23.3.3" + "electron": "^28.1.4", + "electron-builder": "^24.9.1" }, "build": { "appId": "com.electron.node-red", From 5312ec9dd446c9327869b0dd5da5812bfdb28138 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Tue, 23 Jan 2024 14:12:26 +0000 Subject: [PATCH 126/127] Fix import of is-dev --- main.js | 42 ++++++++++++++++++++++-------------------- package.json | 2 +- 2 files changed, 23 insertions(+), 21 deletions(-) diff --git a/main.js b/main.js index bbbb4ec..4caf991 100755 --- a/main.js +++ b/main.js @@ -39,9 +39,11 @@ const path = require('path'); const http = require('http'); const express = require("express"); const electron = require('electron'); -// const isDev = require('electron-is-dev'); const Store = require('electron-store'); -const store = new Store(); +const store = new Store() + +var isDev +(async () => { isDev = await import('electron-is-dev'); })() const {app, Menu, TouchBar} = electron; const ipc = electron.ipcMain; @@ -257,24 +259,24 @@ if (process.platform === 'darwin') { } // Add Dev menu if in dev mode -// if (isDev) { -// template.push({ -// label: 'Development', -// submenu: [ -// { label: 'Reload', accelerator: 'CmdOrCtrl+R', -// click (item, focusedWindow) { -// if (focusedWindow) focusedWindow.reload() -// } -// }, -// { label: 'Toggle Developer Tools', -// accelerator: process.platform === 'darwin' ? 'Alt+Command+I' : 'Ctrl+Shift+I', -// click (item, focusedWindow) { -// if (focusedWindow) focusedWindow.webContents.toggleDevTools() -// } -// } -// ] -// }) -// } +if (isDev) { + template.push({ + label: 'Development', + submenu: [ + { label: 'Reload', accelerator: 'CmdOrCtrl+R', + click (item, focusedWindow) { + if (focusedWindow) focusedWindow.reload() + } + }, + { label: 'Toggle Developer Tools', + accelerator: process.platform === 'darwin' ? 'Alt+Command+I' : 'Ctrl+Shift+I', + click (item, focusedWindow) { + if (focusedWindow) focusedWindow.webContents.toggleDevTools() + } + } + ] + }) +} function saveFlow() { const file_path = dialog.showSaveDialogSync({ diff --git a/package.json b/package.json index 66fe138..1eb3889 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "url": "git+https://github.com/dceejay/electron-node-red.git" }, "dependencies": { - "electron-is-dev": "^2.0.0", + "electron-is-dev": "^3.0.1", "electron-store": "^8.0.1", "express": "^4.17.2", "fs-extra": "^11.2.0", From 3ebbdd9bf7c613fbfeb39e77e1ee8b85ed51b469 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Tue, 12 Nov 2024 18:25:08 +0000 Subject: [PATCH 127/127] Bump a whole load of dependencies and include NR 4.0.5 --- main.js | 1 + package-template.json | 14 +++++++------- package.json | 20 +++++++++++--------- 3 files changed, 19 insertions(+), 16 deletions(-) diff --git a/main.js b/main.js index 4caf991..0cedc17 100755 --- a/main.js +++ b/main.js @@ -39,6 +39,7 @@ const path = require('path'); const http = require('http'); const express = require("express"); const electron = require('electron'); +// const fetch = (...args) => import('node-fetch').then(({default: fetch}) const Store = require('electron-store'); const store = new Store() diff --git a/package-template.json b/package-template.json index 7594c4f..0fc525b 100644 --- a/package-template.json +++ b/package-template.json @@ -26,10 +26,10 @@ "url": "git+https://github.com/dceejay/electron-node-red.git" }, "dependencies": { - "electron-is-dev": "^1.2.0", - "electron-store": "^6.0.0", - "express": "^4.17.1", - "node-red": "1.2.0" + "electron-is-dev": "^3.0.1", + "electron-store": "^8.0.0", + "express": "^4.21.1", + "node-red": "4.0.5" }, "keywords": [ "electron", @@ -46,13 +46,13 @@ }, "homepage": "https://github.com/dceejay/electron-node-red#readme", "devDependencies": { - "electron": "~10.1.3", - "electron-builder": "^22.9.1" + "electron": "32.0.0", + "electron-builder": "^25.1.8" }, "build": { "appId": "com.electron.node-red-app", "productName": "My Node-RED Electron App", - "copyright": "Copyright © 2018,2020 D.Conway-Jones", + "copyright": "Copyright © 2018,2024 D.Conway-Jones", "buildDependenciesFromSource": true, "files": [ "**/*", diff --git a/package.json b/package.json index 1eb3889..04bd4e3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "electron_node_red", - "version": "3.1.3", + "version": "4.0.5", "description": "Electron Node-RED application starter kit for development", "main": "main.js", "NRelectron": { @@ -26,14 +26,15 @@ "url": "git+https://github.com/dceejay/electron-node-red.git" }, "dependencies": { + "@flowfuse/node-red-dashboard": "*", "electron-is-dev": "^3.0.1", - "electron-store": "^8.0.1", - "express": "^4.17.2", + "electron-store": "^8.0.0", + "express": "^4.21.1", "fs-extra": "^11.2.0", - "node-red": "3.1.3", + "node-red": "4.0.5", "node-red-contrib-play-audio": "*", "node-red-contrib-web-worldmap": "*", - "node-red-dashboard": "*", + "node-red-dashboard": "~3.6.2", "node-red-node-base64": "*", "node-red-node-geofence": "*", "node-red-node-random": "*", @@ -56,13 +57,13 @@ }, "homepage": "https://github.com/dceejay/electron-node-red#readme", "devDependencies": { - "electron": "^28.1.4", - "electron-builder": "^24.9.1" + "electron": "^32.0.0", + "electron-builder": "^25.1.8" }, "build": { "appId": "com.electron.node-red", "productName": "Node-RED Electron", - "copyright": "Copyright © 2018,2021 D.Conway-Jones", + "copyright": "Copyright © 2018,2024 D.Conway-Jones", "buildDependenciesFromSource": true, "files": [ "**/*", @@ -113,5 +114,6 @@ } ] } - } + }, + "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e" }